Ubuntu20.04从零开搭PX4MavrosGazebo环境并测试

仅仅是个人搭建记录


参考链接:

 https://zhuanlan.zhihu.com/p/686439920

仿真平台基础配置(对应PX4 1.13版) · 语雀

 mkdir -p ~/tzb/catkin_ws/src
mkdir -p ~/tzb/catkin_ws/scripts
cd catkin_ws && catkin init 

catkin build
cd

sudo apt-get update
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras

# 下载并设置 geographiclib 数据集
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh# 为避免下载速度慢,直接复制(假设文件在 ~/GeographicLib/)
sudo cp -r ~/GeographicLib/ /usr/share/
sudo ./install_geographiclib_datasets.sh

# 安装 Python 依赖
pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse kconfiglib jsonschema future pyserial cerberus pyulog==0.7.0 pyquaternionsudo apt-get install ros-noetic-moveit-msgs ros-noetic-object-recognition-msgs ros-noetic-octomap-msgs ros-noetic-camera-info-manager  ros-noetic-control-toolbox ros-noetic-polled-camera ros-noetic-controller-manager ros-noetic-transmission-interface ros-noetic-joint-limits-interface

依赖不能装在base环境下,详见:

PX4 运行 make px4_sitl_default gazebo 报错-CSDN博客

git clone https://github.com/PX4/PX4-Autopilot.git PX4_Firmwarecd PX4_Firmwaregit checkout -b xtdrone/dev v1.13.2git submodule update --init --recursivemake px4_sitl_default gazebo

可成功打开gazebo

gedit ~/.bashrc
######添加######
source ~/catkin_ws/devel/setup.bashsource ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_defaultexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmwareexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo
######添加######
source ~/.bashrc

在文档末尾添加

####用于测试是否安装成功#####
roslaunch px4 mavros_posix_sitl.launch
######Tips######
从百度网盘里下载并解压!!!!!cp -r ~/models/ ~/.gazebo/

语雀文档里面有:

仿真平台基础配置(对应PX4 1.13版) · 语雀

######Tips######
sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libfuse2 -y
sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor0 -y
wget https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImage
chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage

git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
git checkout 1_13_2
git submodule update --init --recursive
# 修改启动脚本文件
cp sitl_config/init.d-posix/* ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/
# 添加launch文件
cp -r sitl_config/launch/* ~/PX4_Firmware/launch/
# 添加世界文件
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
# 修改部分插件
cp sitl_config/gazebo_plugin/gimbal_controller/gazebo_gimbal_controller_plugin.cpp ~/PX4_Firmware/Tools/sitl_gazebo/srccp sitl_config/gazebo_plugin/gimbal_controller/gazebo_gimbal_controller_plugin.hh ~/PX4_Firmware/Tools/sitl_gazebo/includecp sitl_config/gazebo_plugin/wind_plugin/gazebo_ros_wind_plugin_xtdrone.cpp ~/PX4_Firmware/Tools/sitl_gazebo/srccp sitl_config/gazebo_plugin/wind_plugin/gazebo_ros_wind_plugin_xtdrone.h ~/PX4_Firmware/Tools/sitl_gazebo/include
# 修改CMakeLists.txt
cp sitl_config/CMakeLists.txt ~/PX4_Firmware/Tools/sitl_gazebo
# 修改部分模型文件
cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/ 
# 替换同名文件
cd ~/.gazebo/models/
rm -r stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/
cd ~/PX4_Autopilot
rm -r build/
make px4_sitl_default gazebo

报错:

0/4] Performing build step for 'sitl_gazebo' [1/1] Generating /home/leaf/PX4_Firmware/Tools/sitl_gazebo/models/standard_vtol/standard_vtol.sdf FAILED: /home/leaf/PX4_Firmware/Tools/sitl_gazebo/models/standard_vtol/standard_vtol.sdf cd /home/leaf/PX4_Firmware/build/px4_sitl_default/build_gazebo && /usr/bin/python3 /home/leaf/PX4_Firmware/Tools/sitl_gazebo/scripts/jinja_gen.py /home/leaf/PX4_Firmware/Tools/sitl_gazebo/models/standard_vtol/standard_vtol.sdf.jinja /home/leaf/PX4_Firmware/Tools/sitl_gazebo --generate_ros_models true Traceback (most recent call last): File "/home/leaf/PX4_Firmware/Tools/sitl_gazebo/scripts/jinja_gen.py", line 96, in <module> raise Exception("ERROR: generation would overwrite changes to {}. ".format(filename_out) + \ Exception: ERROR: generation would overwrite changes to /home/leaf/PX4_Firmware/Tools/sitl_gazebo/models/standard_vtol/standard_vtol.sdf. Changes should only be made to the template file /home/leaf/PX4_Firmware/Tools/sitl_gazebo/models/standard_vtol/standard_vtol.sdf.jinja. Remove standard_vtol.sdf (after extracting your changes) to disable this overwrite protection. ninja: build stopped: subcommand failed. FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-build cd /home/leaf/PX4_Firmware/build/px4_sitl_default/build_gazebo && /usr/bin/cmake --build /home/leaf/PX4_Firmware/build/px4_sitl_default/build_gazebo -- -j 8 ninja: build stopped: subcommand failed. make: *** [Makefile:230:px4_sitl_default] 错误 1

解决:

cd ~/catkin_ws
cp -r ~/XTDrone/sitl_config/gazebo_ros_pkgs src/
catkin build

##########替换比赛文件########
下载赛题文件!!!!!!!!
cp -r ~/tzb/zhihang/standard_vtol/ ~/PX4_Firmware/Tools/sitl_gazebo/models/
cp -r ~/tzb/zhihang/target_blue/ ~/PX4_Firmware/Tools/sitl_gazebo/models/
cp -r ~/tzb/zhihang/target_green/ ~/PX4_Firmware/Tools/sitl_gazebo/models/
cp -r ~/tzb/zhihang/zhihang2024.launch ~/PX4_Firmware/launch
cp -r ~/tzb/zhihang/zhihang2024.world ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
cp -r ~/tzb/zhihang/zhihang2024/ ~/XTDrone/

roslaunch px4 zhihang2024.launch

报错:

解决:

即可成功打开gazebo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3248259.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Re-labeling ImageNet(CVPR 2021, Naver)

paper&#xff1a;Re-labeling ImageNet: from Single to Multi-Labels, from Global to Localized Labels official implementation&#xff1a;GitHub - naver-ai/relabel_imagenet 背景 ImageNet 数据集是现代计算机视觉领域的重要基准&#xff0c;广泛用于图像分类模型的…

中国社科大与英国斯特灵大学合作办学双证创新与领导力管理学博士

中国社科大与英国斯特灵大学合作办学双证创新与领导力管理学博士&#xff0c;2024级火热报名申请中&#xff0c;不想脱产的&#xff0c;不想发表论文的&#xff0c;不想长时间出国的&#xff0c;想短期获取博士学位的&#xff0c;想留服认证的&#xff0c;把握短暂机会啦&#…

网络故障处理及分析工具:Wireshark和Tcpdump集成

Wireshark 是一款免费的开源数据包嗅探器和网络协议分析器&#xff0c;已成为网络故障排除、分析和安全&#xff08;双向&#xff09;中不可或缺的工具。 本文深入探讨了充分利用 Wireshark 的功能、用途和实用技巧。 无论您是开发人员、安全专家&#xff0c;还是只是对网络操…

前端面试题(JS篇五)

一、同步与异步的区别 同步指的是当一个进程在执行某一个请求的时候&#xff0c;如果这个请求需要等待一段时间才能返回&#xff0c;那么这个进程会一直等待下去&#xff0c;直到这个消息返回之后才会继续执行。 指的是当一个进程在执行某一个请求的时候&#xff0c;如果这个请…

PSINS工具箱函数介绍——r2d

介绍工具箱里面r2d这个小函数的作用。 程序源码 function deg r2d(rad) % Convert angle unit from radian to degree % % Prototype: deg r2d(rad) % Input: rad - angle in radian(s) % Output: deg - angle in degree(s) % % See also r2dm, r2dms, d2r, dm2r, dms2r% …

电阻有哪些参数呢

电阻是电路中最常见的元件之一&#xff0c;它在控制电流、分压和保护电路等方面发挥着重要作用。了解电阻的主要参数对于选择和使用电阻至关重要。本文将详细介绍电阻的主要参数&#xff0c;包括电阻值、功率额定值、温度系数、容差、噪声、频率特性、体积和封装等。 1. 电阻值…

C语言中常见库函数(2)——内存函数

文章目录 1. memcpy使用和模拟实现2. memmove使用和模拟实现3. memset函数的使用4. memcmp函数的使用 1. memcpy使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num );函数memcpy从source的位置开始向后复制num个字节的数据到destination指…

MQ - RabbitMQ - 消息的可靠性 --学习笔记

消息的可靠性 RabbitMQ 提供了一系列的特性和机制来确保消息的可靠性&#xff0c;即确保消息不丢失、按需到达目的地。要实现在 RabbitMQ 中消息的可靠性&#xff0c;可通过以下几个方面进行操作&#xff1a; 一、发送者的可靠性 1、生产者重试机制 什么是生产者重试机制&a…

【Java开发实训】day05——数组常见算法

目录 一、数组翻转 1.1示例代码 1.2适用场景 二、冒泡排序 2.1示例代码 2.2适用场景 三、二分查找 3.1示例代码 3.2适用场景 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo…

node解析Excel中的考试题并实现在线做题功能

1、背景 最近公司安排业务技能考试&#xff0c;下发excel文件的题库&#xff0c;在excel里查看并不是很方便&#xff0c;就想着像学习驾考题目一样&#xff0c;一边看一边做&#xff0c;做完之后可以查看正确答案。 2、开始分析需求 题目格式如下图 需求比较简单&#xff0c;…

【ROS2】高级:解锁 Fast DDS 中间件的潜力 [社区贡献]

目标&#xff1a;本教程将展示如何在 ROS 2 中使用 Fast DDS 的扩展配置功能。 教程级别&#xff1a;高级 时间&#xff1a;20 分钟 目录 背景 先决条件在同一个节点中混合同步和异步发布 创建具有发布者的节点创建包含配置文件的 XML 文件执行发布者节点创建一个包含订阅者的节…

视频号直播回放视频下载教程

前言&#xff1a; 随着视频号的不断普及&#xff0c;现在用户在视频号中观看直播和回放的人数逐渐的增多&#xff0c;但是很多时候视频号中的直播和直播回放是无法直接下载的&#xff0c;今天我就教大家如何下载视频号中的直播回放 在这里下载回放需要软件 地瓜网络技术视频…

解锁Vue警报的迷雾:攻克“TypeError: Cannot read property ‘getAttribute’ of null”的奥秘

在Vue.js的广阔天地里&#xff0c;开发者们常常会遇到各式各样的挑战与“小惊喜”。[Vue warn]: Error in mounted hook: “TypeError: Cannot read property ‘getAttribute’ of null”这一错误&#xff0c;就像是一位不速之客&#xff0c;冷不防地在你的代码世界中留下一串令…

51单片机STC89C52RC——18.1 HC-SR04超声波测距

目的/效果 独立按键K1按下后开始测距&#xff0c;LCD显示距离&#xff08;mm&#xff09; 一&#xff0c;STC单片机模块 二&#xff0c;HC-SR04 超声波测距 2.1 HC-SR04 简介 HC-SR04超声波测距模块提供2cm~400cm的测距功能&#xff0c;精度达3mm。 2.2 时序 以上时序图表明…

【GPT-4多态大模型研究】

1.概述 GPT-4是OpenAI最新的系统&#xff0c;能够产生更安全和更有用的回应。它是一个大型的多模态模型&#xff08;接受图像和文本输入&#xff0c;输出文本&#xff09;&#xff0c;在各种专业和学术的基准测试中展现了人类水平的表现。例如&#xff0c;它在模拟的律师资格考…

Android 12系统源码_存储(二)StorageManagerService服务

前言 在 Android 系统中&#xff0c;StorageManagerService是一个用于获取存储设备信息和管理存储设备的服务。它提供了一系列方法&#xff0c;可以获取当前挂载的存储设备信息&#xff0c;以及对存储设备进行挂载和卸载操作。 一、Storage存储模块介绍 1.1、StorageManager…

Android 10.0 Launcher3拖拽图标进入hotseat自适应布局功能实现一

1.前言 在10.0的系统rom定制化开发中&#xff0c;在对于launcher3的一些开发定制中&#xff0c;在对hotseat的一些开发中&#xff0c;需要实现动态hotseat居中 的功能&#xff0c;就是在拖拽图标进入和拖出hotseat&#xff0c;都可以保持hotseat居中的功能&#xff0c;接下来分…

阿里云短信PHP集成api类

无需安装sdk扩展包&#xff0c;直接引入类即可使用 V3版本请求体&签名机制:自研请求体和签名机制 - 阿里云SDK - 阿里云 模版内容&#xff1a; <?phpnamespace common\components;use common\constant\UserConst; use common\models\bee\SmsReferer; use common\mode…

C++从入门到起飞之——类的定义/实例化 全方位剖析!

个人主页&#xff1a;秋风起&#xff0c;再归来~ C从入门到起飞 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 目录 1.类的定义 1.1、类定义格式 1.2、访问限定符 1.3、类域 2.实例化 2.…

备忘录删除了怎么恢复 备忘录误删恢复办法

备忘录作为我们日常生活中的得力助手&#xff0c;帮助我们记录重要事项和灵感&#xff0c;然而&#xff0c;使用中偶尔会出现误删的情况。若不能及时找回误删的内容&#xff0c;可能会造成重要信息的丢失&#xff0c;给我们的工作和生活带来不必要的麻烦。 如果你也担心备忘录…