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://www.mzph.cn/diannao/47451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构day2

一、思维导图 内存分配 二、课后习题 分文件编译 //sys.h #ifndef TEST_H #define TEST_H #define MAX_SIZE 100//定义学生类型 typedef struct Stu {char name[20]; //姓名int age; //年龄double score; //分数 }stu;//定义班级类型 typedef struct Class {struct …

Postman实战案例:从零开始设计API测试流程

Postman实战案例&#xff1a;从零开始设计API测试流程 API测试在现代软件开发中至关重要。Postman作为一款强大的API测试工具&#xff0c;不仅提供了直观的用户界面&#xff0c;还支持自动化测试、环境配置和脚本编写。本文将从零开始&#xff0c;详细介绍如何使用Postman设计…

php在服务器上部署可视化运维工具详细列表

如果你的项目很小&#xff0c;可以用宝塔。但对于并发大的服务器管理&#xff0c;选择适合的工具非常重要。 目录 以下是一些免费且适合高并发管理的服务器管理工具推荐&#xff1a; 1Panel&#xff1a; Portainer&#xff1a; Webmin&#xff1a; Cockpit&#xff1a; …

实战:详解Spring创建bean的流程(图解+示例+源码)

概叙 这篇主要总结Spring中bean的创建过程&#xff0c;主要分为加载bean信息–>实例化bean–>属性填充–>初始化阶段–>后置处理等步骤&#xff0c;且每个步骤Spring做的事情都很多&#xff0c;这块源码还是很值得我们都去看一看的。而Spring中Bean的声明周期其实…

GEO数据挖掘从数据下载处理质控到差异分析全流程分析步骤指南

0. 综合的教学视频介绍 GEO数据库挖掘分析作图全流程每晚11点在线教学直播录屏回放视频&#xff1a; https://www.bilibili.com/video/BV1rm42157CT/ GEO数据从下载到各种挖掘分析全流程详解&#xff1a; https://www.bilibili.com/video/BV1nm42157ii/ 一篇今年近期发表的转…

捷配总结的SMT工厂安全防静电规则

SMT工厂须熟记的安全防静电规则&#xff01; 安全对于我们非常重要&#xff0c;特别是我们这种SMT加工厂&#xff0c;通常我们所讲的安全是指人身安全。 但这里我们须树立一个较为全面的安全常识就是在强调人身安全的同时亦必须注意设备、产品的安全。 电气&#xff1a; 怎样预…

IDEA 调试 Ja-Netfilter

首先本地需要有两款IDEA 可以是相同版本&#xff0c;也可以是不同版本。反正要有两个&#xff0c;一个用来调试代码&#xff0c;一个启动。 移除原有ja-netfiler 打开你的ja-netfiler的vmoptions目录&#xff0c;修改其中的idea.vmoptions文件。移除最后一行-javaagent ...参…

分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法

前言 树形结构是一种很常见的数据结构&#xff0c;类似于现实生活中的树的结构&#xff0c;具有根节点、父子关系和层级结构。 所谓根节点&#xff0c;就是整个树的起始节点。 节点则是树中的元素&#xff0c;每个节点可以有零个或多个子节点&#xff0c;节点按照层级排列&a…

有效应对服务器遭受CC攻击的策略与实践

分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;尤其是其中的HTTP洪水攻击或称为CC攻击&#xff08;Challenge Collapsar&#xff09;&#xff0c;是当今互联网安全领域的一大挑战。这种攻击通过大量合法的请求占用大量网络资源&#xff0c;导致服务器无法正常响应…

数据可视化入门

文章目录 1. 数据可视化的发展历史1.1 古代与中世纪1.2 18世纪与19世纪1.3 20世纪1.4 21世纪 2. 数据可视化技术基础2.1 数据收集2.2 数据清洗2.3 数据加工 3. 图表库的选型3.1 常见图表库3.2 常用图表库 4. 数据可视化实战4.1 案例&#xff1a;使用Matplotlib和Seaborn进行数据…

AI智能名片S2B2C商城小程序在社群去中心化管理中的应用与价值深度探索

摘要&#xff1a;随着互联网技术的飞速发展&#xff0c;社群经济作为一种新兴的商业模式&#xff0c;正逐渐成为企业与用户之间建立深度连接、促进商业增长的重要途径。本文深入探讨了AI智能名片S2B2C商城小程序在社群去中心化管理中的应用&#xff0c;通过详细分析社群去中心化…

【DGL系列】DGLGraph.out_edges简介

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 函数说明 用法示例 示例 1: 获取所有边的源节点和目标节点 示例 2: 获取特定节点的出边 示例 3: 获取所有边的边ID 示例 4: 获取所有信息&a…

中国机器视觉行业上市公司市场竞争格局分析

中国机器视觉产业上市公司汇总&#xff1a;分布在各产业链环节 机器视觉就是用机器来代替人眼做测量和判断的系统&#xff0c;机器检测相较于人工视觉检测优势明显。目前&#xff0c;我国机器视觉产业的上市公司数量较多&#xff0c;分布在各产业链环节。具体包括&#xff1a;…

LeetCode-返回链表倒数第K个节点、链表的回文结构,相交链表

一、返回链表倒数第k个节点 . - 力扣&#xff08;LeetCode&#xff09; 本体思路参展寻找中间节点的方法&#xff0c;寻找中间节点是定义快慢指针&#xff0c;快指针每次走两步&#xff0c;慢指针每次走一步&#xff0c;当快指针为空或者快指针的下一个节点是空时&#xff0c;…

4000厂商默认账号密码、默认登录凭证汇总.pdf

获取方式&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1F8ho42HTQhebKURWWVW1BQ?pwdy2u5 提取码&#xff1a;y2u5

react页面指定dom转pdf导出

1. 使用jsPDFhtml2canvas将页面转成图片然后导出2. 自定义创建iframe调用iframe.print()进行页面打印转pdf导出3. 使用react-to-print插件打印pdf 1. 使用jsPDFhtml2canvas将页面转成图片然后导出 缺点&#xff1a;页面过长可能会导出失败&#xff0c;并且由于电脑分辨率的问题…

音视频开发入门教程(2)配置FFmpeg编译 ~共210节

在上一篇博客介绍了安装&#xff0c;音视频开发入门教程&#xff08;1&#xff09;如何安装FFmpeg&#xff1f;共210节-CSDN博客 感兴趣的小伙伴&#xff0c;可以继续跟着老铁&#xff0c;一起开始音视频剪辑功能&#xff0c;&#x1f604;首先查看一下自己的电脑是几核的&…

SCSA第七天

防火墙的可靠性 因为防火墙上不仅需要同步配置信息&#xff0c;还需要同步状态信息&#xff08;会话表等&#xff09;&#xff0c;所以&#xff0c;防火墙不能 像路由器那样单纯的靠动态协议来实现切换&#xff0c;需要用到双机热备技术。 1&#xff0c;双机 --- 目前双机热…

Golang面试题整理(持续更新...)

文章目录 Golang面试题总结一、基础知识1、defer相关2、rune 类型3、context包4、Go 竞态、内存逃逸分析5、Goroutine 和线程的区别6、Go 里面并发安全的数据类型7、Go 中常用的并发模型8、Go 中安全读写共享变量方式9、Go 面向对象是如何实现的10、make 和 new 的区别11、Go 关…

破解反爬虫策略 /_guard/auto.js(二)实战

这次我们用上篇文章讲到的方法来真正破解一下反爬虫策略&#xff0c;这两个案例是两个不同的网站&#xff0c;一个用的是 /_guard/auto.js&#xff0c;另一个用的是/_guard/delay_jump.js。经过解析发现这两个网站用的反爬虫策略基本是一模一样&#xff0c;只不过在js混淆和生成…