pixhawk px4 添加自定义mavlink消息

首先添加一个uORB topic,然后添加一个mavlink解析程序,这将会将一个输入的mavlink消息解析并传入uORB topic中。

注:本例程,nsh仍然看不到消息,如果哪位朋友可以看到自定义的消息,希望能指导交流。 

博客地址连接:http://www.cnblogs.com/spyplus/p/pixhawk_note_mavlink_customization.html

FantasyJxf      http://blog.csdn.net/oqqenvy12/article/details/56849572

FantasyJxf的博客不详细,但是思路清晰

1、原文中定义的ca_trajectory.msg消息如下:

      

uint64_t应改为uint64

2、原文中自定义的xml文件如下,我是定义的custom_messages.xml文件,内容一样。

 

3、将mavlink generator生成c语言源文件Out目录定位到一个空的文件夹,注意语言选择C,协议选择2.0,将生成的custom_messages文件夹拖到/mavlink/include/mavlink/v2.0

目录下。

4、将原文中创建的自定义消息类更改为本文件夹所示的类。

5、按原文的方法进行编译会在 v2.0/custom_messages/mavlink_msg_ca_trajectory.h文件的开

 头定义的结构体产生错误:

Typedef struct MAVLINK_PACKED mavlink_ca_trajectory_t{

                 uint64_t timestamp;

                         :

                         :

                 Uint16_t seq_id;

}mavlink_ca_trajectory_t;

要去掉上面高亮的mavlink_ca_trajectory_t,就可以编译过去。

6、(1)在 mavlink_receiver.h中增加一个处理类MavlinkReceiver 中的输入mavlink消息的函

数:

void handle_message_ca_trajectory_msg(mavlink_message_t *msg);

这个函数是定义在MavlinkReceiver类中的。

 

2)在 mavlink_receiver.h中加入一个类MavlinkReceiver中的uORB消息发布者

orb_advert_t _ca_traj_msg_pub,也是在类中定义的。

7、但是在启动nsh时出现的 Using MAVLINK 1.0消息。?

  然后在其他配置步骤不变的情况下,在v1.0/message_definitions/下创建自定义消息custom_message.xmlmavlink generatorOut生成的custom_messages复制到v1.0目录下。能编译过去,但是不能在nsh看到消息,通过nsh下输入ls obj命令查看消息

8、然后确保启用流,通过在启动脚本中添加以下行(-r配置流速率,-u标识UDP端口14556上的mavlink通道):  

示例:

1)在ttyS1串口上启动mavlink,波特率为921600,最大发送速率为80kB / s

mavlink start -d /dev/ttyS1 -b 921600 -m onboard -r 80000

(后来回顾时感觉是/dev/ttyS1 端口没有选对,由于目前没有时间,没机会尝试)

2)在UDP 14556端口上启动mavlink,并以50Hz的速率发送HIGHRES_IMU消息:

mavlink start -u 14556 -r 1000000nsh提示warn信息)

mavlink stream -u 14556 -s HIGHRES_IMU -r 50

   本实例的命令为:mavlink stream -r 50 -s CA_TRAJECTORY -u 14556

但是在nsh仍然看不到消息。

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值