关于PX4FLOW的MAVLINK数据解析
由于要搞光流,在淘宝买了个PX4FLOW,虽然中间换了两次货(第一次没图像,第二次没超声波数据),不过最终通过QGC看到了数据,不过感觉在室内真的是不太灵敏,光照较强的地方会好点,先不管了,这么贵的模块,先把数据解析出来再说。先了解了下MAVLINK协议:
打开官网,找到PX4FLOW的资料
需要通过USART3连接我的主控,而主要用到的信息就是OPTICAL_FLOW_MESSAGE,
看了这张图,我就错误的以为数据是按照这个顺序来发送的,所以我就按照这个顺序来解析,通过MDK仿真看到解析出来的ground_distance跟实际观测的完全不符,但是通过QGC(USB方式)真的可以观测到准确的数据,没办法,看PX4FLOW源码吧。
找来找去,在mavlink_msg_optical_flow.h中真相揭晓:
原来是以这样一个顺序发送的,低字节在前,高字节在后,改了程序之后果然好使,这里还要说的是CRC校验,按照上面的帧结构,最后两位是CRC校验位,
在mavlink_helpers.h中有这样一个函数
而crc_extra这个变量是跟一帧的第二个字节有关,也就是跟payload length有关,而#100中的是0x1A,也就是26,而在mavlink_msg_optical_flo.h中这样定义:
具体方法可以参照此贴http://www.amobbs.com/forum.php?mod=viewthread&tid=5506390&pid=8545603&page=1&extra=page%3D1#pid8545603,感谢这位网友的无私奉献 即将入手这款光流!!先学习 某宝的PX4FLOW 很多都是仿的的吧 现在这么多人做光流啊 Puppey 发表于 2015-4-30 17:51
某宝的PX4FLOW 很多都是仿的的吧
是山寨的,你用过原厂的吗?我还正想看看这山寨的能跟原厂什么差别,我感觉信息还是不太准确 fengshao1370 发表于 2015-5-2 23:25
是山寨的,你用过原厂的吗?我还正想看看这山寨的能跟原厂什么差别,我感觉信息还是不太准确 ...
{:smile:}准备买啊,没买呢 正想买……{:shutup:}不过感觉打水漂的可能很大很大 已经入手了,但是驱动装不上,……是我打开方式不对?{:cry:} Jaly314 发表于 2015-5-10 10:48
已经入手了,但是驱动装不上,……是我打开方式不对?
当时卖家还给了我一个MissonPlanner的文件,你是不是没装这个,我这个一开始没装驱动也装不上 楼主 不知道你用过PX4FLOW的I2C读数据没? 我用模拟的I2C读始终他的XY位移据始终没有返回 已经将px4flow移植到mdk下,并做了优化,比官方的快不少 nongxiaoming 发表于 2015-6-7 21:26
已经将px4flow移植到mdk下,并做了优化,比官方的快不少
{:smile:} 请问你的是用MAVLINK协议读的还是 i2c 能看看代码吗 你好 请问你串口接收程序能发下吗 我的是收不到正确的数buffer0为数据段开始
flow.time_sec=(flow_buf<<64|flow_buf<<56|flow_buf<<48|flow_buf<<40
|flow_buf<<32|flow_buf<<16|flow_buf<<8|flow_buf);
flow.id=flow_buf;
flow.flow_x=(int)(flow_buf|flow_buf<<8);
flow.flow_y=(int)(flow_buf|flow_buf<<8);
flow.flow_comp_x=0;//Flow in m in x-sensor direction, angular-speed compensated
flow.flow_comp_y=0;
flow.quality=flow_buf; //Optical flow quality / confidence. 0: bad, 255: maximum quality
floattobyte=flow_buf;
floattobyte=flow_buf;
floattobyte=flow_buf;
floattobyte=flow_buf;
flow.hight=ByteToFloat(floattobyte);//gr golaced 发表于 2015-6-12 14:44
你好 请问你串口接收程序能发下吗 我的是收不到正确的数buffer0为数据段开始
开头还有0xFE,0x1A等字节,这些帧头,功能位等不要忽略 木桥 发表于 2015-6-7 20:31
楼主 不知道你用过PX4FLOW的I2C读数据没? 我用模拟的I2C读始终他的XY位移据始终没有返回 ...
用的是串口,也试过I2C通信,但是读不出来数据,就放弃了,你可以读出数据吗 fengshao1370 发表于 2015-6-13 22:41
用的是串口,也试过I2C通信,但是读不出来数据,就放弃了,你可以读出数据吗 ...
可以 你可以去参考我的帖子
对于刚准备入手的菜鸟,我比较关心哪里可以买到性价比好一点的模块{:shy:} 我刚刚入手了光流传感器,但完全不会用呢还 这个光流传感器接电脑的时候是不是只能用W7的系统呀, nongxiaoming 发表于 2015-6-7 21:26
已经将px4flow移植到mdk下,并做了优化,比官方的快不少
能把你的工程分享一下么?做电设想用光流 mark!!!!!!! nongxiaoming 发表于 2015-6-7 21:26
已经将px4flow移植到mdk下,并做了优化,比官方的快不少
我也在MDK下将代码移植了!但是在QGROUND下打开后QgrounD会死机 !能分享一下你的工程么?我QQ1126539423! nongxiaoming 发表于 2015-6-7 21:26
已经将px4flow移植到mdk下,并做了优化,比官方的快不少
同求,一直到mdk下的px4flow工程 梁小七 发表于 2015-8-7 10:11
这个光流传感器接电脑的时候是不是只能用W7的系统呀,
好像是的,我在xp下面根本都没法使用呀 梁小七 发表于 2015-8-6 19:54
我刚刚入手了光流传感器,但完全不会用呢还
你的这个模块用得咋样了呢 Dragontan 发表于 2015-12-1 15:14
你的这个模块用得咋样了呢
基础的距离能测 梁小七 发表于 2015-12-3 15:10
基础的距离能测
是使用官方的固件? 梁小七 发表于 2015-12-3 15:10
基础的距离能测
你是用使用QGroundControl吗,还有使用其他的上位机软件不呢 yl494706588 发表于 2015-11-12 16:25
我也在MDK下将代码移植了!但是在QGROUND下打开后QgrounD会死机 !能分享一下你的工程么?我QQ1126539423 ...
QQ2403429739,请多指教! nongxiaoming 发表于 2015-6-7 21:26
已经将px4flow移植到mdk下,并做了优化,比官方的快不少
2403429739QQ 希望得到帮助 的 flow代码分析 nongxiaoming 发表于 2015-6-7 21:26
已经将px4flow移植到mdk下,并做了优化,比官方的快不少
您好,您是否把px4flow的源码移植到MDK了,能否分享一下呢,我在移值上遇到了一些报错,烦请高手指点, 感谢。ghdnui@foxmail.com ghdnui 发表于 2016-4-6 10:19
您好,您是否把px4flow的源码移植到MDK了,能否分享一下呢,我在移值上遇到了一些报错,烦请高手指点, 感 ...
只要重写那段汇编就好了 nongxiaoming 发表于 2016-4-6 16:09
只要重写那段汇编就好了
好高深啊,能否给您的工程我参考下{:handshake:}
页:
[1]