基于工训赛 VIO 飞行总结
室内飞行
ROS & PX4
Pose Data
飞机配置
参考此处,采用 T265 配置。
相机与飞控机体坐标系的变换设置:从 base_link
(parent)到 camera_pose_frame
(child)变换。base_link
是 FLU 坐标系。
<node pkg="tf" type="static_transform_publisher" name="tf_baseLink_cameraPose" args="0 0 0 0 1.5708 0 base_link camera_pose_frame 1000"/>
对于机体坐标,PX4 是 NED 坐标系,ROS 是 FLU 坐标系。在 ROS 中处理时就使用 FLU 坐标系即可。
EKF2_AID_MASK
选择(vision position fusion / vision yaw fusion / vision velocity fusion)
具体 Velocity 要看发布的 Odom 是否含有该信息。
EKF 与 VIO 都配置好后, Mavlink console 中 ekf2 status
会显示 local status valid
。
水平位置融合是 EV_POS
参数(vision position fusion
);速度融合是 vision velocity fusion
;
注意 vision yaw fusion
和 rotate external fusion
。这两个参数必须有一个要设置,但不能同时设置。
-
vision yaw fusion
: 会利用视觉的信息作为偏航角度估计。
-
rotate external fusion
:利用飞机本身的偏航作为估计,并将视觉的信息调整后融合。此种情况下,需要将飞机朝东放置,保证初始时旋转四元数为 0 0 0 1
(x y z w
)。
一般设置 vision yaw fusion
,按照飞机初始位置建立 FLU 坐标系然后飞行。
位于 mavros/launch/px4_config.yaml
中的 fake_gps
。选择 TF 方式,变换由 odom
--> camera_pose_frame
(即相机发布的 Odom 变换)。
说明:
MAVROS
由于飞行时不含有 global position
和 home position
消息时,需要将这两个话题信息在程序初始时去掉。位于 common_test
中,此处
在使用 Vision 飞行时,直接把 global_pos
和 home_pos
去掉,就可以切换为 OFFBOARD 模式然后解锁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)