PX4 SITL MAVROS速度控制-用机身坐标系发布速度

不改变PX4控制双闭环源码,仅依靠mavros现有的速度控制和位置控制话题,来实现旋翼圆形轨迹。
1. 位置控制:/mavros/setpoint_position/local
优点:位置准确;
缺点:需给出多个waypoint坐标,计算较麻烦;waypoint到waypoint之间有加减速,飞机晃动较大。
2. 速度控制:/mavros/setpoint_velocity/vel_cmd
观察了下飞手圆形控制时,仅控制yaw, roll, pitch为恒定即可实现。
ROS海龟实例也是给了一个线速度x,和z角速度(yaw),即可。
但是该话题默认使用LOCAL_NED坐标系。
mavros/src/plugins/setpoint_velocity.cpp中添加了可选项,通过ros::service来改变坐标系,选择FRAME_BODY_NED即可。
优点:平稳;
缺点:位置会飘。

参考:1. https://github.com/mavlink/mavros/issues/792
2.https://github.com/mavlink/mavros/blob/master/mavros/src/plugins/setpoint_velocity.cpp#L81
3. http://docs.ros.org/api/mavros_msgs/html/srv/SetMavFrame.html
4. http://wiki.ros.org/ROS/Tutorials/WritingServiceClient%28c%2B%2B%29

你可能感兴趣的:(ROS)