Optitrack动捕下的无人机悬停

Optitrack动捕下的无人机悬停 1.设备轴距350四旋翼机载电脑Jeston xavier NX 电脑飞控pixhawk2.4.8飞控固件版本PX4 1.13.3使用的技术文档XTdrone配置仿真平台基础配置仿真平台基础配置对应PX4 1.13版阿木实验室的坐标转换文件仿真平台基础配置对应PX4 1.13版 · 语雀1.optitrack的标定操作需要注意的是标定杆和标定坐标系使用的不是一个如果使用错的话精度标定上升值会很小正常是1s几百数值的增加。首先我们先检查是否有反光点去除反光点。该界面保持默认。此时我们使用标定杆在场地挥舞确保最小值也超过10000最后检查各个摄像头的精度。下一步我们标定坐标系杆都已经给了推荐的方向可以注意到它的x,y,z坐标系方向与我们之前不同y轴朝上我们熟悉的可能是z轴朝上。这个我们可以在软件的设置页面修改。使用vrpn_clinet_ros功能包来得到地面软件发出的定位信息只需要将地面软件所在的电脑和机载电脑接入同一个局域网IP设置正确即可。此时动捕捕获的位置数据会通过话题广播的数据发送出去如果我们想要接收到的话机载电脑就必须要和动捕的电脑连在同一个局域网下例如如果你把机体命名为robot1你会得到一个主题比如/vrpn_client_node/robot1/pose关于具体的配置大家可以看配置获取动捕数据2.px4 坐标系和mavros坐标系MAVROS的坐标系是ENU也就是x朝东y朝北z朝上。需要特别注意的是上述坐标可以旋转比如说x朝北y朝西z朝上也属于ENU坐标系只是在原坐标系方向向西旋转了90°。当时我们整这个坐标系问题半个月对enu理解有误来回修改文件其实刚开始的就是对的。。。。我们检验坐标系 是否正确打开地面站mavlink消息检测的local_position它是否是ENU坐标系如果正确不用去管其它的optitrack原始数据的坐标系是ENU我们使用Z轴朝上也就是topic/vrpn_client_node/robot1/pose 原始数据是ENU坐标系px4的坐标系是NEDmavros的坐标系是ENU中间的转换采用的是阿木实验室的坐标转换px4_pos_estimator.cpp整体流程是首先是传感器测量得到由机载电脑中的ros话题发布出来。px4_pos_estimator.cpp订阅该话题进行一定处理后转存至另一个话题/mavros/vision_pose/pose并发布。Mavros功能包中vision_pose_estimate.cpp订阅/mavros/vision_pose/pose话题并将其封装成Mavlink消息发送给飞控。飞控接收到该Mavlink消息通过mavlink_receiver.cpp接收并处理转存为相应的uORB消息。飞控中ekf2模块订阅该uORB消息并进行相应计算处理融合得到无人机的位置速度等状态。飞控参数设置EKF2EKF2_AID_MASK 设置为24即勾选vision position fusionandvision yaw fusionEKF2_HGT_MODE 设置为VISION 默认为气压计MAV_1_CONFIG TELEM 2刚开始没有参数先设置它MAV_1_MODE OnboardSER_TEL2_BAUD 921600EKF2_AID_MASK 24EKF2_HGT_MODE 设置为 Vision有激光定高的可设为Range sensorMAV_ODOM_LP设置1