本帖最后由 “” 于 2017-7-27 20:09 编辑
1 H9 h! z3 K8 E4 }" w1 @; C8 v1 k$ j) W7 U3 h4 j. P3 n
出这一版本只用能一个词无奈来解释,真心无奈。6 A7 X" t% R0 y! y
我仅有一天时间,这天时间内,想完成这个,如果不能直接放弃,因此方法只有一个:最高效,最简。# q `4 C; T9 n$ z, G- z) P
. G" m* q+ x! Q) x9 o
第一个问题:场地+ ?# r a3 m; E# n1 p; y, F$ a
不是我要挑战斜穿20块地板的极限。+ ]1 S9 u/ P5 F& A# b9 Q2 B/ X
是因为要3m长的地方,只有这样的形式才能产生。
" l) @1 h* N5 J) ?% r0 ?6 J呵呵,而且前后只剩下30厘米,车最后到达终点的位置已经没有合适的站位拍摄视频了,所以盲拍了,摄像头拍到什么只有手机知道,也无法测量了。
% o) ~5 j9 W" W+ g* i& H, G7 J
; X! ]" V) E# H s+ S第二问题:机器* J+ ]# V0 p9 O# B! v( K
用的是最简单的机器,去年走线好像就是这台,一直没有拆,因为电机是nxt的,所以也暂时用不到,就一直留着。不过要符合右前轮,所以把三轮改了以下,变四轮,其实我应该写右前轮这几个字的。, Y- S* j9 y4 y/ b8 K {. D' e4 I0 u
) A7 o, `; `3 @7 W6 Z# D7 F
第三个问题:程序
' a8 X* P4 \3 Y! n& s$ l3 u个人方法不同,有人靠结构,有人靠程序。我是靠程序解决问题的。不过也遇到了很多问题,走了很多我认为的弯路,可能被我抛弃的方法是可实现的,可能只是我的场地条件比较苛刻而已。
3 P. L0 X! x; J# F& b在此我分享今天的思考流程。- ^$ p6 I7 j2 H1 Q* W% _$ Q
1、直线,应该是左右两轮的前进角度是一致的,我用如此方法前进,左右电机误差基本为0,最终还是偏离比较大。 N3 D i' R: @: t" o$ H5 f
2、于是会想到陀螺仪修正。那控制电机的要素就是陀螺仪,不能再以电机角度为参考依据(陀螺仪变化表示偏了,那么就需要某电机加强功率或减少功率,电机角度一定不相等)。
) V# n- B3 k9 F1 |第一阶段尝试,用陀螺仪速度,进行比例调节。为什么用陀螺仪速度,因为我需要及时的修正,速度更能体现实时的状态,结果抖动较大。其实可以降低比例,进行慢慢调整,但是我没有尝试,因为我的时间有限,我的第一反应是速度的变化范围太大,所以如果这样调整的话不能用仅仅用比例,因为这对小的偏差不利,不能及时修正。
( U/ F7 A3 w# C p- I第二阶段尝试,用陀螺仪角度,进行比例调节。过程不详细说了。反正调的很好,数值很完美,出发和最终停的陀螺仪角度数值完全一致(当然我承认陀螺仪还是有误差的),但是误差离开线还是非常远。这点很惊讶。6 V" f: ?* D* I. G9 `) R
3、我要静静。(不要问静静是谁?)% B3 s: {: z7 f
4、静完了,我想问题。(也不要问问题是谁?)2 ~& ?, E- g& _3 P( L: p) X0 j
上个月,买了个激光模块,一直没用。这次本来是想打算做好,放上激光模块,用来证明误差量的。现在被我直接拿了出来,装在上面分析车辆的摆动。首先是连线,可能会想到用输出或者输入口,我直接用了usb的口,正要也有usb的插头(昨天刚到的快递,怎么那么寸?),简单接完,随后用lego搭一个框架装在车上。结果发现,墙上光点除了向一边偏以外,上下抖动也厉害,且范围大(冥冥中注定我离墙该如此近。呵呵)。/ N f8 v! |4 W2 U' }. c4 S
' A7 t6 T, X j: d( M8 ~; l# C/ B6 F7 b' ~+ Y9 d* j/ C% _3 R8 Q' m( k
5、结构改进:加重。没零件,没时间,那就直接来4个WRO足球的万向轮(简单,粗暴吧!)。8 X3 ~% U" i1 Y
程序:仍旧用电机角度反馈的,因为感觉陀螺仪的反馈还是比较慢的,要发现1°的误差,电机可能已经跑了很多角度了。既然地面有高低,会产生误差,可将电机的power设置不一致,只要弧线到位在地板上就是直线。(在3m的长度中,要调整最终的误差,那2轮power的差一定在1以内,所以不要指望用模块了,自己动手写想方法写吧)。
/ ^' z O: a5 O" x" j/ o. d& s0 L4 _3 x3 Y3 [" `9 O' }2 y
视频(由于时间短,参与为主,最后附上照片,表示机器停下位置,以及测量结果,视频最后较模糊,但是应该能判断停止位置的精度,可细细研究):) c3 P) q; G' U) `* v6 m4 L: Z5 s
$ m- T. m8 x$ g- S5 t, e
8 ]( l& d9 v9 r, [: {
机器人停止位置
: ]1 c: S$ G" Z2 o. |6 \4 X
3 L1 \ R: b+ D( m4 Z3 ?3 |0 J
测量( ^2 K: p& g/ Q0 }
2 _" ~* p5 j2 C' ?
M% P- o1 | j% b7 O写在最后:垂直穿越地板,如果后地板比前地板高,会有略微纠正方向的作用,哪位朋友可以尝试一下,横穿30块地板的效果,是否会比直穿4块地板效果好。希望有朋友尝试,有答案。/ P6 d; L8 y+ s5 w Q
4 h8 s/ t% E% \! a3 e& V
% _5 I# O4 C( s2 Q
6 _. K" m7 O& \: z3 O% R
( P7 w/ x' Y5 T) h: Y
3 u) _; m2 |/ G! W/ f0 o
" O+ \& u4 _4 s8 O* @
|