mavros中的一些坑

固件: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点坐标即可。

你可能感兴趣的:(mavros中的一些坑)