QGC地面站PC桥接px4(QGC+wifi+机载计算机+px4)
用px4做的无人机,由于手头没有数传,需要进行无人机姿态环和位置环调参,通过QGC地面站PC桥接px4实现读取飞控状态参数的功能。
1 在机载计算机上安装ubuntu
根据自己的需求16.04和18.04都可以(20.04没试过,应该也可以)
2 安装ros
ros根据不同的ubuntu版本安装对应的就可以,不同版本间安装过程大同小异,可以参考这两篇博客
https://blog.csdn.net/weixin_45810108/article/details/109112673
https://blog.csdn.net/weixin_45810108/article/details/109849828
3 机载计算机上安装mavros
1安装mavros
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
注意这条命令是基于melodic版本的ros
2 安装安装mavros相关的 geographiclib dataset
cd /opt/ros/melodic/lib/mavros
sudo ./install_geographiclib_datasets.sh
如果安装速度没反应,可以打开sh文件并自行下载相关的文件,解压到对应文件夹里即可
4 安装ssh服务
要将运行qgc的电脑连接到机载计算机,需要让这两个系统连接到同一个wifi下,并安装ssh服务,将机载计算机端的ssh服务设为ie开机启动,安装可以参考下面这篇博客
https://blog.csdn.net/weixin_45810108/article/details/112783548
5 连接px4和机载计算机
参考官方教程
6 地面站PC用ssh控制机载计算机
7 QGC上建立通讯连接
在地面站pc用ssh控制机载计算机后,运行mavros px4.launch
roslaunch mavros px4.launch
如果报错基本就是fcl_url没有匹配,打开终端(根据ROS版本置换melodic和kinetic):
cd /opt/ros/melodic/share/mavros/launch
sudo gedit px4.launch
找到
arg name=“fcu_url” default="/dev/ttyACM0:57600"
问题就在这儿.因为是USB连接的,所以得改为:
arg name=“fcu_url” default="/dev/ttyUSB0:57600"
然后就可以运行了.运行过程中运行指令
rostopic echo /mavros/state
会发现问题,显示connected :false;mavros更根本没有和飞控连接上,这里主要由以下几个原因:
串口有没有接对
波特率是否正确
机载计算机是否设置了串口
这里要去QGC端设置,QGC连上飞控以后,
设置MAV_1_CONFIG为TELEM2
将波特率设置为上面/dev/ttyUSB0:57600的57600.
现在去运行mavros就可以显示connected True了.
但你又会发现一个新的问题:
他会显示:
TTL的速度异常
这里就再次:
cd /opt/ros/melodic/share/mavros/launch
找到px4_config.yaml文件
sudo vi px4_config.yaml
将timesync_rate:设置为0.0即可.至此,就可以实现QGC读取到飞控状态了