本文主要记录gazebo+px4联合仿真流程,及过程中出现的问题。
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
由于px4仓库包含子模块,因此最好保证可以连上外网,且网络环境良好的情况下。
完整下载后,安装环境
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
当前下载的px4版本为1.13.0
安装参考官网:
https://classic.gazebosim.org/tutorials?tut=install_ubuntu&cat=install
Alternative installation: step-by-step
安装完成后,可以通过运行
make px4_sitl_default gazebo
检查是否成功安装,安装成功显示如下界面:
在启动终端,通过命令可以控制无人机起飞、降落等。
pxh> commander takeoff
pxh> commander land
当然,要正常起飞需要打开地面站QGC,不然会被判定Arming denied! manual control lost,不能解锁。
在这一步卡了很久,不能正常启动gazebo。最麻烦的是protobuf版本的冲突,导致异常。经过反复检查发现在环境ubuntu20.04/ros noetic/gazebo 11 需安装版本protobuf3.6.1。若系统之前已经安装过其它版本,可以通过命令卸载并删除相关文件。
sudo apt-get remove libprotobuf-dev
sudo rm /usr/local/bin/protoc //执行文件
sudo rm -rf /usr/local/include/google //头文件
sudo rm -rf /usr/local/lib/libproto* //库文件
sudo rm -rf /usr/lib/protoc
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
//查看并切换到版本3.6.1
git fetch origin
git branch -a
git checkout -b protoc3.16 remotes/origin/3.16.x
//在protoc目录
./autogen.sh #如果下载的对应语言的包则不需要
./configure
make -j4
make install
sudo ldconfig
protoc --version # 查看版本号
sudo apt-get install ros-noetic-mavros
cd /opt/ros/noetic/lib/mavros
sudo ./install_geographiclib_datasets.sh
上述安装完成后,测试mavros是否连上
运行:
roslaunch px4 mavros_posix_sitl.launch
在另一个终端查看mavros是否通信正常
rostopic echo /mavros/state
很遗憾的是,mavros有时会莫名连接不上,可以通过以下方式进行查看。
在px4工作环境下,先完成编译
make px4_sitl_default
配置gazebo相关环境,这一步很重要。
make px4_sitl_default gazebo
连接gazebo master udp 地址127.0.0.1:11345;端口可以通过INFO [mavlink] 消息,可以看到端口为24540。
所以运行mavros后即可连上。
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:11345"
目前实验,发现:
(1)roslaunch px4 mavros_posix_sitl.launch,将launch文件中mavros configs改成上述地址和端口即可连上。
(2)roslaunch px4 indoor1.launch,其中mavros configs配置文件为
运行indoor文件也可连上。
实测发现在这种情况下,只要端口24540正确,后面34580改其它数字也可以连上,目前还不清楚为什么。有清楚udp协议相关的可以留言讨论下。
https://gitee.com/robin_shaun/XTDrone
https://www.yuque.com/xtdrone/manual_cn
https://blog.csdn.net/weixin_44917390/category_10037523.html
https://www.zhihu.com/column/c_1450193617147654145
https://zhuanlan.zhihu.com/p/377419124