本帖最后由 “” 于 2017-7-27 20:09 编辑 - ~) e/ U% Y0 f; }" t
* }) a. v2 s |出这一版本只用能一个词无奈来解释,真心无奈。( r# M2 `( \% i3 @) b; O' t& v
我仅有一天时间,这天时间内,想完成这个,如果不能直接放弃,因此方法只有一个:最高效,最简。6 M6 n0 G' N2 a9 O0 R) {+ U5 R( b
: q2 _9 m( \- n: Y/ e
第一个问题:场地: P4 \& g' C3 Y# Q- T {2 l6 {7 H
不是我要挑战斜穿20块地板的极限。
+ b- }( m, }, B0 n9 E S9 M6 \是因为要3m长的地方,只有这样的形式才能产生。
2 S8 `' \4 E6 x1 _呵呵,而且前后只剩下30厘米,车最后到达终点的位置已经没有合适的站位拍摄视频了,所以盲拍了,摄像头拍到什么只有手机知道,也无法测量了。
* i# w7 @9 c0 N* g+ z3 t, o% P" G& q' z2 v4 {
第二问题:机器! G) N; s$ a0 [ s
用的是最简单的机器,去年走线好像就是这台,一直没有拆,因为电机是nxt的,所以也暂时用不到,就一直留着。不过要符合右前轮,所以把三轮改了以下,变四轮,其实我应该写右前轮这几个字的。- X& u. X- ?4 q$ `/ X4 i
0 p2 @/ f( \. ]4 j4 d) o
第三个问题:程序
6 U; ~8 E U9 C {' X个人方法不同,有人靠结构,有人靠程序。我是靠程序解决问题的。不过也遇到了很多问题,走了很多我认为的弯路,可能被我抛弃的方法是可实现的,可能只是我的场地条件比较苛刻而已。; @8 R" c! I' n, z: m Y
在此我分享今天的思考流程。
+ H: g- F8 `% h' x' Q1、直线,应该是左右两轮的前进角度是一致的,我用如此方法前进,左右电机误差基本为0,最终还是偏离比较大。
# T4 w- O% k; G6 L" X+ w [2、于是会想到陀螺仪修正。那控制电机的要素就是陀螺仪,不能再以电机角度为参考依据(陀螺仪变化表示偏了,那么就需要某电机加强功率或减少功率,电机角度一定不相等)。; V& E; h* S2 B& C
第一阶段尝试,用陀螺仪速度,进行比例调节。为什么用陀螺仪速度,因为我需要及时的修正,速度更能体现实时的状态,结果抖动较大。其实可以降低比例,进行慢慢调整,但是我没有尝试,因为我的时间有限,我的第一反应是速度的变化范围太大,所以如果这样调整的话不能用仅仅用比例,因为这对小的偏差不利,不能及时修正。1 s) l9 V- ]* f ?7 A$ n8 _! b8 l0 y5 |
第二阶段尝试,用陀螺仪角度,进行比例调节。过程不详细说了。反正调的很好,数值很完美,出发和最终停的陀螺仪角度数值完全一致(当然我承认陀螺仪还是有误差的),但是误差离开线还是非常远。这点很惊讶。. o) R! X* D( ]/ G1 ?0 v8 ]/ O
3、我要静静。(不要问静静是谁?)) X8 F0 l/ o8 F: i0 ^
4、静完了,我想问题。(也不要问问题是谁?)6 [5 `. A2 F# v J7 q, d
上个月,买了个激光模块,一直没用。这次本来是想打算做好,放上激光模块,用来证明误差量的。现在被我直接拿了出来,装在上面分析车辆的摆动。首先是连线,可能会想到用输出或者输入口,我直接用了usb的口,正要也有usb的插头(昨天刚到的快递,怎么那么寸?),简单接完,随后用lego搭一个框架装在车上。结果发现,墙上光点除了向一边偏以外,上下抖动也厉害,且范围大(冥冥中注定我离墙该如此近。呵呵)。) o& O1 Z9 l# g. \
: n* h/ e9 [' R: o/ |! K* _1 I3 K- D/ b' t
5、结构改进:加重。没零件,没时间,那就直接来4个WRO足球的万向轮(简单,粗暴吧!)。; O. P' s# h: C( N3 e |8 l
程序:仍旧用电机角度反馈的,因为感觉陀螺仪的反馈还是比较慢的,要发现1°的误差,电机可能已经跑了很多角度了。既然地面有高低,会产生误差,可将电机的power设置不一致,只要弧线到位在地板上就是直线。(在3m的长度中,要调整最终的误差,那2轮power的差一定在1以内,所以不要指望用模块了,自己动手写想方法写吧)。
8 W) i6 m3 q4 `; h9 w: n. b7 h* _. v8 a: c# T
视频(由于时间短,参与为主,最后附上照片,表示机器停下位置,以及测量结果,视频最后较模糊,但是应该能判断停止位置的精度,可细细研究):+ a) S7 B5 Z, W) n! V# `8 }
4 Q5 t& V( S! x" L. o9 E
( n+ ?3 p ]" T4 I9 c3 l; b机器人停止位置
, F' a, @3 V: G# h; B6 L5 a: }1 H8 T
3 v E( U& m- p% B- i' X测量
6 _ k$ H; Y- ~) B# _
7 m ^$ E+ L g* s* S: G* w
8 l6 G" t2 ]4 k/ e) Y6 _% `6 b% }写在最后:垂直穿越地板,如果后地板比前地板高,会有略微纠正方向的作用,哪位朋友可以尝试一下,横穿30块地板的效果,是否会比直穿4块地板效果好。希望有朋友尝试,有答案。0 E# d- |3 G& J6 q$ m
* [$ u$ i$ b5 l+ J/ a
3 o) E. Q: k; h8 l8 m9 b3 t9 g
4 Z l: R8 h, F# I6 c+ l9 I8 L" b' q/ O
* e# A1 u, |* w( n. X/ B1 P5 l6 \: ` s$ Q8 {/ b
|