当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【开源库学习】libodb库学习(三)
  • tinygrad框架简介;MLX框架简介
  • 密码学基础-Hash、MAC、HMAC 的区别与联系
  • 《0基础》学习Python——第十七讲__正则表达式(requests)
  • C++版OpenCV_02_几何变换
  • Spring Boot应用的配置文件(application.properties或application.yml)指定应用连接MySQL数据库
  • 什么是dom驱动?
  • Docker核心技术:应用架构演进
  • 服务攻防-应用协议cve
  • Thinkphp开发文档二次整理版
  • 子查询
  • Langchain 对pdf,word,txt等不同文件的加载解析
  • C语言-栈和队列
  • springboot 配置 spring data redis
  • spring-boot 整合 redisson 实现延时队列(文末有彩蛋)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 【刷算法】求1+2+3+...+n
  • 2019年如何成为全栈工程师?
  • 345-反转字符串中的元音字母
  • Android开源项目规范总结
  • Android系统模拟器绘制实现概述
  • AngularJS指令开发(1)——参数详解
  • CSS相对定位
  • flutter的key在widget list的作用以及必要性
  • gf框架之分页模块(五) - 自定义分页
  • Java 内存分配及垃圾回收机制初探
  • javascript数组去重/查找/插入/删除
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • nfs客户端进程变D,延伸linux的lock
  • overflow: hidden IE7无效
  • TypeScript实现数据结构(一)栈,队列,链表
  • windows下mongoDB的环境配置
  • 第十八天-企业应用架构模式-基本模式
  • 二维平面内的碰撞检测【一】
  • 如何学习JavaEE,项目又该如何做?
  • 微信支付JSAPI,实测!终极方案
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​ubuntu下安装kvm虚拟机
  • ​比特币大跌的 2 个原因
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • ${ }的特别功能
  • (9)STL算法之逆转旋转
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (floyd+补集) poj 3275
  • (pojstep1.1.2)2654(直叙式模拟)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (南京观海微电子)——I3C协议介绍
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)linux下的时间函数使用
  • *2 echo、printf、mkdir命令的应用