固件:px4
控制:通过对mavros发布mavros/setpoint_raw/local话题控制无人机飞行。
获取飞机的ENU坐标系坐标有两个话题:/mavros/global_position/local和/mavros/local_position/pose。不过注意这两个坐标虽然都表示飞机当前ENU坐标,不过是有差异的,通常该点是飞机开机时的位置,且飞机静止时一般为0,但是实验发现有时会漂移到19左右。其中z值是高度值,前者global的值起飞前就算飞机上下大幅运动也会不停慢慢校准为0的,也就是相对高,而后者z值则会随着高度变化。而注意的是仿真里两个话题的xy坐标偏差不大,实际飞行发现有时偏差会达到5m以上。而且在起飞前就算静止状态两者各自漂移都较大,但是起飞后各自数据都相对稳定。估计起飞前主要根据gps数据定位,飞行中则融合了imu数据,从而得到了更好的数据结果。(注意:发布目标位置的话题mavros/setpoint_raw/local的坐标,是相对于/mavros/local_position/pose来说的)
仿真来看,飞机起飞前,不停刷新home点位置(可通过/mavros/home_position/home读取),该点位置和/mavros/local_position/pose历史位置数据一样,而不是/mavros/global_position/local话题,也就是说home点坐标是基于/mavros/local_position/pose话题的。因此要返航可以直接发布mavros/setpoint_raw/local话题,给出home点坐标即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)