【XTDrone+Ubuntu20.04】XTDrone+ Ubuntu20.04 + PX4安装 实操版

本文详细介绍了在Ubuntu20.04环境下安装和配置XTDrone、ROS、PX4飞行控制软件以及Gazebo仿真平台的步骤,包括依赖安装、ROS包管理、Gazebo设置和XTDrone源码修改等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:

vm17

ubuntu20

参考文章:

【XTDrone Ubuntu20.04】XTDrone+ Ubuntu20.04 + PX4安装-优快云博客

仿真平台基础配置(对应PX4 1.13版) (yuque.com)

https://blog.youkuaiyun.com/weixin_45291614/article/details/133657158

Ubuntu20.04安装ros noetic最简单教程。(换源下载只需2分钟+安装解压3min)-优快云博客

正文:

1、依赖

sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python3-pip gawk

pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml 
这里本人没有pip2 直接pip 即

pip install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml 
pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse kconfiglib jsonschema future

2、ros安装

Ubuntu20.04安装ros noetic最简单教程。(换源下载只需2分钟+安装解压3min)-优快云博客

参考这个就可以了 无脑装

完成ros安装之后 进行

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 

--build之前需要进行一下操作

sudo apt install python3-catkin-tools

还有一个什么pip 需要安装的 忘了 基本上是 缺什么依赖补什么 即

pip install xxx

3、gazebo

需要把gazebo11卸载,再装gazebo9

sudo apt-get remove gazebo* 
sudo apt-get remove libgazebo*
sudo apt-get remove ros-noetic-gazebo* 
--卸载ga11

a、添加软件仓库 
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'

b、获取密钥
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

c、更新软件原
sudo apt-get update

d、安装
sudo apt-get install gazebo9
sudo apt-get install libgazebo9-dev #一定要记得这个

e、检查
gazebo #应该要能打开gazebo

f、升级
sudo apt-get upgrade
 

还没结束

接下来的依赖

sudo 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 

cd ~/catkin_ws/src
git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git
cd ~/catkin_ws
catkin build

--这里会报错 错的问题是 

  • AttributeError: module 'em' has no attribute 'RAW_OPT'

  • pip3 install --user empy==3.3.4 解决办法

判断是否安装成果

roscore 

--另开终端

source ~/catkin_ws/devel/setup.bash
rosrun gazebo_ros gazebo

📎models.zipicon-default.png?t=N7T8https://www.yuque.com/attachments/yuque/0/2022/zip/985678/1670494695523-2a18624d-545e-4552-a3b1-714ac5d649c2.zip

需要把models放入gazebo中

--执行

sudo mv models ~/.gazebo

--查看是否放入成果 若有蓝色打印则ok

cp ~/.gazebo/models  

ls

--检查

roscore

rosrun gazebo_ros gazebo #会打开gazebo

3、mavros安装

无脑用

sudo apt install ros-noetic-mavros ros-noetic-mavros-extras  # for ros-noetic
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh

sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步需要装一段时间

  • 测试是否安装成功

roscd mavros
ubuntu@ubuntu:/opt/ros/melodic/share/mavros$ --成功将进入目录

  • 查看版本

rosversion  mavlink
--2021.5.5
rosversion  mavros
--1.8.0

4、px4

使用雨雀文档中的PX4_Firmware.zip(1145.1 MB)【v1.13.2版本的】完成后解压

使用命令rm -rf build,删除build文件夹,然后使用命令mkdir build 

cd build
cmake ..
make
--重编译

cd ..

git checkout -b xtdrone/dev v1.13.2   --会显示已有该分支 是对的
git submodule update --init --recursive  
make px4_sitl_default gazebo
--编译

一般不出错了

若出错 即 

make clean 再重编译

make px4_sitl_default gazebo

#配好好路径
gedit ~/.bashrc
在里面写入:
source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
#确保文件最底部是export,而不是source 
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

关闭文件,在终端执行
source ~/.bashrc

cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch
--,此时会启动Gazebo,

ps:官方文档里面会出现说 

rostopic echo /mavros/state

若connected: True,则说明MAVROS与SITL通信成功。如果是false,一般是因为.bashrc里的路径写的不对,请仔细检查

这俩信息不予理会 后续随着XTDrone的编译会自动成功

5、QTGroundControl安装

无脑装

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 libqt5gui5 -y
sudo apt install libfuse2 -y

chmod +x QGroundControl.AppImage

双击打开就会出现地面站

6、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/

--重编译

cd ~/PX4_Firmware
rm -r build/
make px4_sitl_default gazebo

--注意这里会报错 

  • ninja: build stopped: subcommand failed.

  • make clean  之后再重编译即可

注意,用ctrl+c关闭仿真进程,有可能没有把Gazebo的相关进程关干净,这样再启动仿真时可能会报错。如果出现这种情况,可以用killall -9 gzclient,killall -9 gzserver 这两个命令强行关闭gazebo所有进程。

解决之前遗留connected:false

cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch

--另开一终端

rostopic echo /mavros/state

最终发现 connected: True

背后机理不懂,但不做深究 这不是我们的初衷

!!!

最后,你可以开始你的学习了

ps:

--ros版本查询

rosversion -d

--gazebo查询

gazebo -v

--mavlink查看版本

rosversion  mavlink
--2021.5.5
rosversion  mavros
--1.8.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刚数学的木头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值