1. mavros不能正常通信
失败原因如下:
- 用万用表检查Tx,Rx,GND的线是否断了,杜邦线很容易线芯断掉。
- USB转TTL的小板子是否工作正常,使用
ls -l /dev/ | grep ttyUSB
来检查设备是否插入以及硬件绑定是否正确。 - 打开地面站GQC,检查飞控参数,搜索
mav
,一般mav0
设置为飞控硬件接口Telem1
,mav1
设置为飞控硬件接口Telem2
。我们通常将Telem1
用作飞机和地面站通信(接Xbee设备)。所以一般用Telem2
上接USB转TTL的板子和机载电脑通信,这里forward参数设置1,Mode改为onboard,波特率设置921600或者115200(两个波特率都试试,因为是线直接连接的,波特率可以设置高一点)若mavros采用空中无线传输,波特率请设置为57600。 - 使用
roscd mavros & cd launch
查看mavros px4.launch文件端口号/dev/ttyUSB0:921600
或者/dev/<your bind name>:921600
,或者波特率改为115200
成功现象
终端出现 High IMU detected等等字样说明检测到飞控的IMU了。已经可以正常通信了。
2. 飞控不能从T265获得xy位置
正常步骤
- 下载mavros_vision_pose_cius
roslaunch vision_to_mavros t265_all_node.launch
,此时应该可以获取到/mavros/vision_pose/pose
中消息。- 确保安装
mavros-extras
这个包,方法有两种,最简单的是sudo apt-get install ros-noetic-mavros-extras
,复杂点的是源码安装的。有了这个包才能将视觉位姿信息传输给飞控(这个问题在kun飞机中很重要)。上述问题根源在于vision_pose_estimation
这个包在mavros_extras
。因为源码安装的包一定会包含这个mavros_extras
package,所以可以顺利开启这个plugin
。无论哪种方法,在开启mavros时候,产生如下输出,说明vision_pose_estimation
这个plugin
加载成功了。[ INFO] [1682320781.289735374]: Plugin vision_pose_estimate loaded [ INFO] [1682320781.347487110]: Plugin vision_pose_estimate initialized [ INFO] [1682320781.349274770]: Plugin vision_speed_estimate loaded [ INFO] [1682320781.375493995]: Plugin vision_speed_estimate initialize
- 配置飞控参数中
ekf2_aid_mask
中使用vision,hgt_mode
使用vision - 查看
/mavros/local_position/pose
是否有消息。