|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
COCOFLY教程 ——疯壳·无人机·系列 视觉追踪 3 ~5 S$ P# G! Q# U$ }: E7 g3 p$ P t
2 y4 }- A. Z4 E( X
9 u/ |; y* w2 L
, w! K E: V% u4 Q& m& @) G
9 T( |1 n! i s
图1
( S+ y; Y0 N! t1 B4 h- T2 h( ?5 @" b
/ H, \( Y8 s' R" y( H8 l$ a5 I6 T, t$ C: c' [: [0 h# e) f/ @
一、cocofly 视觉追踪简介5 c- W) b) K4 }0 x
cocofly 无人机支持视觉追踪,其视觉追踪的功能主要是依托于无人机支架底部的视觉识别模块 OPENMV 实现的,目前已经提供了循线追踪、颜色追踪以及图形码追踪的功能。
L i5 k/ q9 A" y, v: W y5 I0 ` 二、循线追踪5 `7 t! B% {' a0 O, v
cocofly 支持循线追踪功能,实现循线追踪的步骤如下。
0 c2 {6 X- x0 M0 R6 [5 v! O- Z (1) 检查各个传感器是否正常,例如:光流模块、视觉模块, 如果正常即可打开循线模式:从遥控进入飞控设置打开“8.循线模式”如下图所示:
' d, J- l/ t$ v% g! s- H9 s. [5 H4 D& K5 z/ q
$ |* E' D- c' c- h 图2* \1 H& D* |2 o G! j. a4 L
(2)把飞机放在线上,启动一键起飞后,飞机将会根据线的形状自动判断循线飞行方向,然后自主循线飞行,如果检测不到线,则会自动降落。
" q1 w! a) m9 n" J4 k; S) o" { 自主循线过程中,遇到以下情况之一,飞机会自动停止循线并且自动降落:# x, L- r/ o, K( c/ i: ~
a.收到来自遥控器的自动降落命令; 6 p. E4 D& G1 g+ W
b.走到线的尽头;
5 J2 H+ S* D1 P% \9 \7 q c.遇到 T 字路口。" J! B* [7 t \; O8 I3 Y
循线地图的线路的形状可以布置成直线、 曲线和直角三者的任意组合, 曲线弯曲半径建议大于 1 米,线宽 2~5 厘米最佳。7 n ]+ g0 [* s+ i+ M% l
在使用循线追踪模式的时候需要满足一下就几个条件:: D) ?# M# @0 ?+ L- Z# o w6 `
(1)环境光线良好,地面是白色的,并且有轻微的浅色花纹(建议在浅色的瓷砖地板上使用);
% v( k; [% c) h5 }2 I. [ (2)需要跟随的线的颜色要跟地面不一样,差别越大越好(最好是纯黑色);1 q8 g* ^3 i+ v
(3)需要跟随的线周围 1 米内不能有其他物体;
/ v8 ~8 F; A# M) B4 L# l (4)循线高度不可太高,1 米左右最佳。. }0 }) @% I2 _8 b; X
三、追踪颜色0 e1 T2 V$ K' A. W- `
cocofly 支持跟随追踪颜色功能,但目前只支持追踪黑色,可以在 OPENMV
5 | Z! E/ h8 t9 Y1 i' r; o 的源码里面修改代码实现追踪其它颜色,实现跟随追踪颜色功能的步骤如下。
* z) {/ I& V- ~0 j# d: p0 q( a (1) 检查各个传感器是否正常,例如:光流模块、视觉模块, 如果正常即可打开循线模式:从遥控进入飞控设置打开“5.跟随模式”如下图所示:
, I0 l0 `) _6 _# J
% c+ n. J' `; m: A# T
8 l! Q+ J8 h) c0 P: i
图37 v5 P! _' ^* B: E
(2)把飞机放在需要跟随的物体旁边,启动一键起飞后,飞机将会自动跟随白色地面上的黑色物体。8 _2 ^$ @. Y, m0 T6 I$ I# Y4 Y
使用 COCOFLY 的视觉跟随模式需要满足以下几个条件:
( U2 i' ~3 D2 Y- a* s4 k: P (1)环境光线良好,地面是纯色的(最好是纯白色,白色瓷砖地板上也可以);
0 z& ^' x; C3 |" k (2)需要跟随的物体颜色要跟地面不一样,差别越大越好;
4 G. A4 G8 F. f (3)需要跟随的物体周围半径 1 米内不能有其他物体;$ Y# A2 I* U1 D2 y% W, \
(4)跟随高度不可太高,跟随高度 1 米左右最佳。
& L3 u; n; t" Q3 }$ x) [ 四、跟随图形码
5 N) Y9 k& K- h" V) J+ `* o cocofly 支持跟随图形码功能,这里我们把特别制作了带有图形码的小车, 用来实现跟随小车的功能。& f/ U! R1 T# P# b7 w( L
cocofly 跟随图形码小车功能目前暂时不能通过遥控器实现,需要配合
6 X* k s3 \5 `$ f* U' h cocobit 编程板实现。具体实现方式如下表所示:1 j" p2 B& Z+ r$ [+ X1 I4 l# a
; p( V2 D% I) c
) v2 }% O7 [( K0 I1 B: j
表1. M+ B( L( ^+ u2 f
cocobit 拖拽的代码示例如下:
8 @. d- _* K- `
' S" A0 d( [! S: O
. m( ^) A+ d) ~4 u' s 图4- }5 Y) p* s( E% N' Y) ^
下载该代码到 cocobit 后,cocobit 就会自动打开蓝牙,使用壳壳板的 app 会自动连接上或者微信小程序会自动搜索出来点击对应的 coocbit 进入二级菜单, 即可;把 cocobit 编程板插到遥控背后的卡槽,开启遥控器电源以及飞控电源, 等待遥控连接上飞控后,按下遥控上的“cocobit 编程模式”按键,直到 cocobit 编程模式指示灯亮起,则进入了 cocobit 编程模式,如下图所示。
: ^8 q" t5 P4 M @5 Y/ j# N8 E, v) K4 U* \5 u+ [4 h% b- b. a
, \, B6 y/ f8 d6 i. B, x, A
图5
, U; _' s6 m& E2 b- E( I. s8 |5 _ 在微信小程序下点击蓝牙收发小助手。' ^) s. y5 I6 N% }
* K+ v" w8 S3 U4 W, @9 Z
: ~: Z L' q4 v+ N' I. Z4 ^+ ^& A 图6. _" u4 E I5 f! @9 n
在蓝牙小助手内(如下图所示)根据拖拽生成的指令发送对应的数字即可, 这里以追踪 1 号图形码小车为例,为了实现追踪 1 号图形码小车,先把小车打开电源放在飞机前方 20cm 处,需要发送“1”先让飞机起飞,起飞后发送“4” 让飞机追踪 1 号图形码小车,此时可以遥控小车到飞机底下,然后再遥控小车前往其它地方,会发现飞机在跟随着小车飞行;最后再发送“6”,飞机就会降落。
/ U% R- W0 |; ~6 c9 X4 n
( Z. E2 D: Y7 E9 p0 _
) _4 u, I9 @9 l2 ~ 图7
4 \% T$ F9 F/ H$ i! d! ?3 `* J4 e6 V/ Z& s7 ^' q2 s
跟随图像码的实验现象如下图所示。
# }3 h: e8 R& B0 r
+ E0 X, I& Y/ ], m( N% c
2 s" N8 |+ ^7 v' v1 N i 图8/ r# c6 J P, ]1 R' |
当然以上的指令只是一个示例,实际使用完全可以脱离小程序或者 APP,即不使用其无线功能,例如下图所示指令。9 P$ T8 x, |9 ]& I O" G# Z
% S9 ]" N X* X) P0 `/ ^
* }/ @$ W1 C( c/ l; T& A6 U; u4 p
图90 t) T4 Q3 }+ v, o! e
值得注意的是指令下载到 cocobit 内,即使遥控和飞机连接上了而 cocobit 编程板也已经插在了卡槽里,飞机也不会立刻执行这些推拽生成的指令,只有在遥控连接上飞机,且按下了“cocobit 编程模式”按键后,飞机才会执行拖拽的指令。该示例中的现象是飞机会自动起飞然后进入到追踪图像码小车模式。1 Q. v w1 x! v z
7 ~+ x2 n8 o% x1 ?$ b) u8 `4 ^& b) G4 q) V/ n' P
- ^; z. |/ ~! b* B2 |
7 }6 P; n# [. `* T
p9 n7 [% Z6 P ~ w
# N. q& e! [9 I
) `9 R3 f6 q: ^5 o' T2 c* ~0 }6 C2 T; D1 i6 k7 h2 H7 I
文件下载请点击:
【5】视觉追踪.pdf
(442.06 KB, 下载次数: 2)
0 D' K n4 _2 y0 E4 s
e- J" R( W \, o& j7 c* n1 u G
) T1 B; v: n0 s( ]' {2 d3 c6 M" C2 m |
|