赞
踩
- sudo apt get-install git
- git clone -b v1.13.0-beta1 https://github.com/PX4/PX4-Autopilot.git --recursive
- cd PX4-Autopilot/
- #克隆子模块路径
- git submodule update --init --recursive
- cd..
- //执行.sh文件
- bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
报错与警告1:配置环境不兼容的原因
解决办法:
sudo pip install --upgrade python-dateutil
报错与警告2:配置环境不兼容的原因
解决办法:
- #新建终端打开环境变量
- gedit ~/.bashrc
- #添加环境变量
- export PATH=/root/.local/bin:$PATH
- #刷新环境变量
- source ~/.bashrc
成功界面:
压缩 PX4-Autopilot以防后续编译出现问题重新克隆代码:
PX4固件编译:
- cd PX4-Autopilot/
- make px4_sitl
- make px4_sitl_default gazebo
成功界面:
弹出的gezebo界面在终端使用ctrl+c进行关闭(防止意外关闭导致后续报错)
鱼香ROS一键安装(安装过程中不需要换源,选择桌面版)
wget http://fishros.com/install -O fishros && . fishros
成功界面(输入roscore):
- sudo apt install ros-noetic-mavros ros-noetic-mavros-extras
- wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
- sudo chmod a+x ./install_geographiclib_datasets.sh
- #最后一步耗时较长
- sudo ./install_geographiclib_datasets.sh
成功界面:
新建通信桥接工作区间
- #推荐使用catkin_build取代catkin_build
- #因为多个功能包编译的过程中catkin_builu会进行逐个编译,而catkin_make则是整体编译,相比之下使用catkin_build能大幅度提高编译的容错率
- mkdir -p ~/catkin_ws/src
- mkdir -p ~/catkin_ws/scripts
- cd catkin_ws && catkin init # 使用catkin_make话,则为cd catkin_ws/src && catkin_init_workspace
- catkin build # 使用catkin_make话,则为 cd .. && catkin_make
成功界面:
添加环境变量:
- gedit ~/.bashrc
- source ~/catkin_ws/devel/setup.bash
- source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default
-
- export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
- export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/sitl_gazebo
- source ~/.bashrc
成功界面:
测试Mavros与SITL的通信情况:
- cd PX4-Autopilot/
- roslaunch px4 mavros_posix_sitl.launch
-
- #新开一终端
- rostopic echo /mavros/state
-
- #若connected: True,则说明MAVROS与SITL通信成功。connected:false,bashrc里的路径写的不对,如果确认排除以上情况,请重新编译PX4-Autopilot文件夹
- make px4_sitl_default gazebo
成功界面:
- git clone https://gitee.com/robin_shaun/XTDrone.git
- cd XTDrone
- #子模块更新
- git submodule update --init --recursive
- #仿真模块的复制
- cp sitl_config/worlds/* ~/PX4-Autopilot/Tools/sitl_gazebo/worlds/
- cp sitl_config/launch/* ~/PX4-Autopilot/launch/
成功界面: (cp: 未指定 -r;略过目录'sitl_config/launch/px4' 为正常输出)
再次编译PX4-Autopilot文件夹
make px4_sitl_default gazebo
可能遇到的报错与警告(概率不大):
报错与警告3:(根据日志信息我们发现缺少iris.sd文件,可能原因:这是由于git仓库的模型丢失导致的,)
解决办法1:关闭所有终端进行二次尝试,若失败则尝试方法2
解决办法2:克隆最新版的PX4代码进行编译,根据报错路径进行文件补充,俗称缺啥补啥
- git clone https://github.com/PX4/Firmware.git --recursive
- cd Firmware
- bash ./Tools/setup/ubuntu.sh
- make px4_sitl_default gazebo
克隆完毕后进行压缩备份,用于后续开发
再次编译后:
解决办法2:根据语雀文档进行相应模型的增删减添,暂时没试过,后面博客会对xtdrone进行其他飞控的移植,到时候再做具体解释,对此感兴趣的朋友可以点一个关注
- 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/src
- cp sitl_config/gazebo_plugin/gimbal_controller/gazebo_gimbal_controller_plugin.hh ~/PX4_Firmware/Tools/sitl_gazebo/include
- cp sitl_config/gazebo_plugin/wind_plugin/gazebo_ros_wind_plugin_xtdrone.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src
- cp 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/
成功界面:
6.仿真launch文件执行:
- cd PX4-Autopilot/
- roslaunch px4 indoor1.launch
报错与警告4: 这个错误是由于缺少xmlstarlet工具或者没有执行权限导致的
解决办法:
sudo apt-get install xmlstarlet
如果已经安装了xmlstarlet,但仍然出现权限错误,可能是因为xmlstarlet没有执行权限。你可以使用以下命令来添加执行权限:
sudo chmod +x /usr/bin/xmlstarlet
如果上述步骤都没有解决问题,你可以尝试重新安装xmlstarlet工具
重新执行仿真launch文件:
- cd PX4-Autopilot/
- roslaunch px4 indoor1.launch
报错与警告5: 打开gazebo后卡死或黑屏无法加载模型,这是因为gazebo缺少本地模型库导致的
解决办法:
可以按照教程进行gazebo模型的下载(十分耗时,但可以获取到最新的模型文件),也可以使用打包好的模型文件(新的旧的也差不了多少)移动到隐藏目录 .gazebo文件夹
重新执行仿真launch文件: 运行成功
- cd PX4-Autopilot/
- roslaunch px4 indoor1.launch
成功界面:
注:
1.本教程仅是针对XTdrone的联合配置进行整理说明,针对所有功能的测试并不完善,如有开发需要,请结合语雀文档进行适当修整
2. XTdrone本身就是一个模型的集成库,仅仅是对gazebo功能的一种拓展,所以不存在只能装在哪个Ubuntu版本上的问题,如有需要可以对照进行自己移植,推荐装在Ubuntu18.04的原因只是开发时在该版本系统上开发,配置步骤简单一些,环境及功能“兼容”一些仅此而已
3.提示:之前如果你按照其他教程搭建失败了是因为PX4版本问题
4.不需要gazebo版本降级成9,若测试过程中无硬性问题请不要照搬语雀文档的步骤,笔者有一定开发经验,可以进行一定的操作,如果是新手建议按照你所在的开发环境进行问题的解决,避免造成ubuntu ros版本不兼容带来的问题
5.如果在配置过程中出现其他报错可以在评论区下方留言,但是除上述之外的报错多半是外网隔离的原因,大家可以参照我上述的方法进行新旧版本PX4的互相补充
6.本年度到下一年度(2023-2024)我会尝试针对该仿真环境进行其他飞控的移植,以及其他飞控、ROS、控制、视觉的知识与技巧,感兴趣或者愿意合作的伙伴可以私聊加关注
7.最后感谢chatgpt、国防科技大学XTdrone开发者肖昆,谭劭昌老师、鱼香ROS博客、CSDN码友CH3213
8.参考链接,一键直达
https://blog.csdn.net/weixin_42301220/article/details/117845212
https://www.yuque.com/xtdrone/manual_cn/basic_config_13
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。