mavros消息使用纪录

位置Target信息 mavros_msgs::PositionTarget

std_msgs/Header header
#可以使用该字段来获取或设置消息的时间戳、发布者信息等相关信息。
#例如,可以使用 header.stamp 来获取消息的时间戳,使用 header.frame_id 来获取发布者的 frame id 等。
#通过使用 std_msgs/Header,可以实现对消息的更多控制和管理,
#例如在消息传输过程中进行时间同步、判断消息是否过期等。
#同时,它也为消息的可靠性和可追踪性提供了支持,方便了消息的处理和分析。
uint8 coordinate_frame
uint8 FRAME_LOCAL_NED = 1
uint8 FRAME_LOCAL_OFFSET_NED = 7#offset指可以任意设置坐标原点,用的比较少。
uint8 FRAME_BODY_NED = 8
uint8 FRAME_BODY_OFFSET_NED = 9
掩码,决定你启用不启用
uint16 type_mask
uint16 IGNORE_PX = 1 # Position ignore flags 1表示忽略,0表示启用
uint16 IGNORE_PY = 2
uint16 IGNORE_PZ = 4
uint16 IGNORE_VX = 8 # Velocity vector ignore flags
uint16 IGNORE_VY = 16
uint16 IGNORE_VZ = 32
uint16 IGNORE_AFX = 64 # Acceleration/Force vector ignore flags
uint16 IGNORE_AFY = 128
uint16 IGNORE_AFZ = 256
uint16 FORCE = 512 # Force in af vector flag
uint16 IGNORE_YAW = 1024
uint16 IGNORE_YAW_RATE = 2048

例如你只用速度控制 掩码

mavros_msgs::PositionTarget msg;//定义一个msg
msg.type_mask=3647;//只用速度控制(3647=1110 0011 1111)
具体控制的信息
geometry_msgs/Point position
geometry_msgs/Vector3 velocity
geometry_msgs/Vector3 acceleration_or_force
float32 yaw
float32 yaw_rate

非常可靠,不会出问题,可以把位置打印出来验证一下。

姿态Target信息

std_msgs/Header header
uint8 type_mask
uint8 IGNORE_ROLL_RATE = 1 # body_rate.x
uint8 IGNORE_PITCH_RATE = 2 # body_rate.y
uint8 IGNORE_YAW_RATE = 4 # body_rate.z
uint8 IGNORE_THRUST = 64
uint8 IGNORE_ATTITUDE = 128 # orientation field
geometry_msgs/Quaternion orientation
geometry_msgs/Vector3 body_rate
float32 thrust

遥控器信息mavros_msgs/RCIn

std_msgs/Header header
uint8 rssi //接收信号强度指示
uint16[] channels //通道选择

起降信息mavros_msgs/ExtendedState.msg

uint8 VTOL_STATE_UNDEFINED=0
uint8 VTOL_STATE_TRANSITION_TO_FW=1
uint8 VTOL_STATE_TRANSITION_TO_MC=2
uint8 VTOL_STATE_MC=3
uint8 VTOL_STATE_FW=4
uint8 LANDED_STATE_UNDEFINED=0
uint8 LANDED_STATE_ON_GROUND=1//已经落到了地上
uint8 LANDED_STATE_IN_AIR=2//落地状态为空中
uint8 LANDED_STATE_TAKEOFF=3//落地状态为起飞
uint8 LANDED_STATE_LANDING=4//落地状态为正在落地
std_msgs/Header header
uint8 vtol_state
uint8 landed_state

SLAM话题VINSpose
https://install.cdn-sd.xyz/api/v1/client/subscribe?token=5c2d56b7d191c810a15796a2687ce54c

mavros 切换offboard 模式

#include <mavros_msgs/SetMode.h>
void main()
{
ros::init(argc, argv, "my_node");
ros::NodeHandle nh;
ros::ServiceClient setmode_client = nh.serviceClient<mavros_msgs::SetMode>("mavros/set_mode");
mavros_msgs::SetMode mode_change;
mode_change.request.custom_mode = "OFFBOARD"; //OFFBOARD模式
setmode_client.call(mode_change);//切换到OFFBOARD模式
if(setmode_client.response.mode_sent)
{
    ROS_INFO("Offboard mode changed");
}
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值