5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 4428|回复: 13
打印 上一主题 下一主题

无人机光流模块使用技巧

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-7 17:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
点击查看详情
无人机光流模块使用技巧
光流模块在无 GPS 环境下,课实时检测飞机水平移动距离,实现对四轴无人机长时间的稳定悬停。图1显示的是湖南优象LC-302光流模块的功能框图,光流摄像头拍摄无人机垂直向下的画面,输入光流主板,主板通过光流悬停智能算法进行光流计算,从而获取无人机位移信息,并转化为悬停控制指令,悬停控制指令通过 UART 输出给飞控,以便控制飞机水平移动距离,达到悬停的目的。
1 UPIXELS LC-302光流模块功能框图
一、LC-302外形尺寸结构图
LC-302硬件部分主要为主板。如图2所示,主板尺寸结构示意图,尺寸分别为:长22mm、宽14mm。主板上主要的芯片为湖南优象公司研发的光流芯片U30。除了LC-302这款型号外,还有LC-306LC-307LC-309,其中LC-309尺寸最小,含U30CMOS感光芯片和镜头一起,总共也只有10mm*10mm大小。
LC-302使用的是30万像素的CMOS作为感光器件,所有的配置使用U30芯片的默认配置,所以,模块一上电就可输出光流数据,不需要额外其他配置。

                                                 图 2  UP-FLOW-LC-302-3C产品结构图
二、LC-302接入飞控的方法
光流模块可以用UART接口连接飞控,UART数据格式为1个起始位,8个数据位,1个停止位,无校验位,波特率为19200。光流模块和飞控的接口线序如图3,其中UART_TXDUART_RXD是以模块为参考, VCC3.0V5.0V供电电源输入。3.0V供电时最大功耗为90mW5.0V供电时最大功耗150mW

3 光流模块接线方式
三、光流模块初始化
光流模块上电后需由上位机通过UART接口初始化才能正常工作,光流模块上电到上位机初始化之间需至少延时100ms
四、光流坐标系定义
光流的坐标系如图4所示,最终飞控获取数据,需根据飞控坐标系及光流的坐标系,做坐标转换。

图4 光流坐标系
五、LC-302光流模块对外输出数据结构定义
光流模块对外输出的数据结构定义如下:
typedef  struct  optical_flow_data
{
int16_t        flow_x_integral;     // X像素点累计时间内的累加位移(radians*10000)
                            // [除以10000乘以高度(mm)后为实际位移
int16_t        flow_y_integral;       // Y像素点累计时间内的累加位移(radians*10000)
                               // [除以10000乘以高度(mm)后为实际位移       
uint16_t integration_timespan; // 上一次发送光流数据到本次发送的累计时间(us
uint16_t  ground_distance;  // 预留。默认为9990x03E7
uint8_t  valid;            // 状态值:0(0x00)为光流数据不可用
                        //245(0xF5)为光流数据可用
uint8_t   version;              //版本号
} Upixels_OpticalFlow;
通过串口向飞控发送数据前,光流模块会对数据结构进行封包,实际发送的数据包格式如图6:

序号
包数据
内容说明
1
包  头
0xFE
数据包的开始标识(固定值0xFE)
2
0x0A
光流数据结构体字节数(固定值0x0A
3






flow_x_integral的低字节
X像素点累计时间内的累加位移,
(radians*10000)
[除以10000乘以高度(mm)后为实际位(mm)]
4
flow_x_integral的高字节
5
flow_y_integral的低字节
Y像素点累计时间内的累加位移(radians*10000)
[除以10000乘以高度(mm)后为实际位移(mm)]
6
flow_y_integral的高字节
7
integration_timespan的低字节
上一次发送光流数据到本次发送光流数据的累计时间(us)
8
integration_timespan的高字节
9
ground_distance的低字节
预留。默认为999(0x03E7)
10
ground_distance的高字节
11
valid
状态值:0(0x00)为光流数据不可用,245(0xF5)为光流数据可用
12
version
光流模块的版本号
13
校验值
Xor
光流数据结构体(Byte 3~Byte 12)10个字节的异或值
14
包  尾
0x55
数据包的结束标识(固定值0x55)

                            图 6  数据包协议图

六、光流调试注意事项
1.安装前注意镜头清理,确保镜头无污垢和保护膜遮挡。
2.安装时注意,光流板与地面水平,并与机体(飞控板)垂直,不能有偏角,固定后确保镜头无遮挡,比如连接线与起落架等。
3.若要考虑与加速度计融合,则需确保光流与加速度计物理方向的一致性。
3.当姿态变化较剧烈时应减少光流的比重,并用陀螺仪做好对光流的补偿,并注意光流与陀螺仪同步问题。
4.光流输出有少许毛刺,需要对数据进行低通虑波
5.PID控制上采用位置+速度的双环控制,并要加大i的作用。
6.在自主悬停时才启动光流,飞机起飞与打摇杆时,光流无效。
七、LC-302悬停问题速查小技巧
自主悬停是光流模块支持飞控实现的一种典型功能。也是调试光流需要首先调试的功能,悬停的质量往往直接决定光流与飞控配合质量。调试悬停问题时有如下小技巧。
7.1 完全没有悬停效果,现象与没接光流是一样的。首先应检查板子上电是否正常,硬件线是否连接好,镜头是否被遮挡,如果都没发现问题,再用上位机检查是否有数据输出。
7.2 飞机往某个方向乱飞,漂移更快,像失控的感觉,而没有加光流时反而漂移慢一些。可能是:
    7.2.1 镜头安装方向与程序里写的方向不一致;
    7.2.2 环境光线明暗变化比较大,比如有闪光灯;
    7.2.3 光流镜头下地面上有大片的运动物体,比如在有风时的水面上;
    7.2.4 程序中光流控制部分有些数据没清零,比如起飞时与打摇杆后积分量没清零;
7.3 飞机缓慢飘,方向随机,但又比没光流时要好,表现为无操作时,往一个方向飘后,还会往回飘。可能是地面环境纹理太差,比如纯净的木地板、水泥地面、反光大理石地面等,或者是环境光线太暗。
7.4 飞机开始时能够正常悬停,悬停一段时间后开始震荡,可能是:
    7.4.1 气压计数据漂移很大,高度严重失真,导致光流数据与该高度相乘后输出值变大,控制超调;
    7.4.2 光流与加速度计有融合,可能是温度变化比较大或飞机震动大,导致加速度计漂移严重;
7.5 飞机开始时能够正常悬停,悬停一段时间后开始一直往一个方向漂移,可能是:
    7.5.1 程序算法处理上光流的权重是动态的,某些原因导致悬停时间长后,光流权重减弱,无法抑制漂移;
    7.5.2 姿态解算的欧拉角由于震动或温度等出现较大误差,时间久后飞机本身姿态倾斜,光流最大输出后也补偿不了该误差;
7.6 飞机一开始就开始震荡,可能是:
7.6.1 PID控制参数太大了;
7.6.2 滤波比较厉害,使得输出数据有延时,造成低频震荡;
7.6.3 输入数据不平滑,PID控制中又有D项,使得飞机高频震荡;
7.6.4飞机的性能变差,比如电机、桨叶磨损,震动大,使得输入数据噪声变大;
7.6.5光流旋转补偿没有做好,尤其是数据同步与限幅;

1.jpg (25.62 KB, 下载次数: 50)

1.jpg

4.jpg (28.85 KB, 下载次数: 47)

4.jpg

5.jpg (117.42 KB, 下载次数: 52)

5.jpg

1.jpg (31.89 KB, 下载次数: 50)

1.jpg

欢迎继续阅读楼主其他信息

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
沙发
发表于 2019-5-7 19:47 | 只看该作者
好东西,收藏下
3
发表于 2019-5-8 19:05 | 只看该作者
mark一下!
4
发表于 2019-5-8 22:08 | 只看该作者
看了以上那么多故障分析,感觉这个技术还很不成熟啊,不过仍然佩服楼主和厂家的探索精神。
来自安卓客户端来自安卓客户端
5
发表于 2019-5-11 11:33 | 只看该作者
楼主, LC-302光流可以用在PIX飞控上吗?
6
 楼主| 发表于 2021-4-22 09:19 | 只看该作者
sxlfr 发表于 2019-5-11 11:33
楼主, LC-302光流可以用在PIX飞控上吗?

LC-302光流可以用在PIX飞控上,只要是串口连接的,都可以使用。我们是湖南优象科技厂家研发直销的,你可以在淘宝上搜索:  优象光流模块
7
 楼主| 发表于 2021-4-22 10:04 | 只看该作者
jiangquan 发表于 2019-5-8 22:08
看了以上那么多故障分析,感觉这个技术还很不成熟啊,不过仍然佩服楼主和厂家的探索精神。

[size=18.6667px]谢谢朋友交流,优象光流模块用于检测无人机在飞行过程中,水平方向的移动,并将结果传输给飞控,飞控再结合高度数据,控制飞机,实现自动悬停。目前有100多所高校的实验室采用优象光流开展无人机研究,大家反馈效果都很稳哦。

8
发表于 2021-5-24 17:24 | 只看该作者
hnyxkj 发表于 2021-4-22 09:19
LC-302光流可以用在PIX飞控上,只要是串口连接的,都可以使用。我们是湖南优象科技厂家研发直销的,你可 ...

看了一下没有看到优象光流模块具体使用和飞控的连接调试介绍。
9
发表于 2021-8-13 11:49 | 只看该作者
支持楼主,学习
10
发表于 2021-8-20 10:29 | 只看该作者
框图画错了 , 模块里面没有悬停控制。
11
发表于 2022-3-18 15:28 | 只看该作者
12
发表于 2022-3-18 15:32 | 只看该作者
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表