本帖最后由 “” 于 2017-7-27 20:09 编辑
& t e9 `8 z0 }! b5 k% g# ~' @% l/ a4 I F4 ?% o8 q
出这一版本只用能一个词无奈来解释,真心无奈。
$ X4 l* t _. G' X' d0 n我仅有一天时间,这天时间内,想完成这个,如果不能直接放弃,因此方法只有一个:最高效,最简。7 {& B& Q/ k8 Y( F, A
6 c3 D: b9 d2 E4 n$ {( V3 F# W( h第一个问题:场地
2 ]1 F/ U% V* V' {' q W. p. g5 j2 o不是我要挑战斜穿20块地板的极限。
# O+ d5 c7 Z, _! m. T* w是因为要3m长的地方,只有这样的形式才能产生。
' F. L+ |: r5 L2 k' B4 P呵呵,而且前后只剩下30厘米,车最后到达终点的位置已经没有合适的站位拍摄视频了,所以盲拍了,摄像头拍到什么只有手机知道,也无法测量了。
* F1 y+ A- k p6 ?9 p
% k! V4 H M+ `8 O, w第二问题:机器5 r3 b$ t/ R# G& X7 C: r* K
用的是最简单的机器,去年走线好像就是这台,一直没有拆,因为电机是nxt的,所以也暂时用不到,就一直留着。不过要符合右前轮,所以把三轮改了以下,变四轮,其实我应该写右前轮这几个字的。9 X5 O) [& s: {/ O; p5 ? d. c
9 X Y/ A5 v4 U3 m
第三个问题:程序
# Y' o9 r0 K0 j$ E0 |6 D+ T9 O个人方法不同,有人靠结构,有人靠程序。我是靠程序解决问题的。不过也遇到了很多问题,走了很多我认为的弯路,可能被我抛弃的方法是可实现的,可能只是我的场地条件比较苛刻而已。& c m" e& ~( x. d+ L# N6 K8 n' Q( [/ g
在此我分享今天的思考流程。
& M3 G; q6 L5 ?9 \$ w. E1、直线,应该是左右两轮的前进角度是一致的,我用如此方法前进,左右电机误差基本为0,最终还是偏离比较大。
6 F* x2 T0 Q4 O0 X8 B e2、于是会想到陀螺仪修正。那控制电机的要素就是陀螺仪,不能再以电机角度为参考依据(陀螺仪变化表示偏了,那么就需要某电机加强功率或减少功率,电机角度一定不相等)。
, K) `. |3 ^1 _. w4 ~) r7 j第一阶段尝试,用陀螺仪速度,进行比例调节。为什么用陀螺仪速度,因为我需要及时的修正,速度更能体现实时的状态,结果抖动较大。其实可以降低比例,进行慢慢调整,但是我没有尝试,因为我的时间有限,我的第一反应是速度的变化范围太大,所以如果这样调整的话不能用仅仅用比例,因为这对小的偏差不利,不能及时修正。
. _% G7 r- U; E3 ?0 `1 X C( w3 I+ `第二阶段尝试,用陀螺仪角度,进行比例调节。过程不详细说了。反正调的很好,数值很完美,出发和最终停的陀螺仪角度数值完全一致(当然我承认陀螺仪还是有误差的),但是误差离开线还是非常远。这点很惊讶。# r2 K1 f' a9 g/ f' t
3、我要静静。(不要问静静是谁?)
) z+ j/ k* p/ y+ W0 B4 D% f' O4、静完了,我想问题。(也不要问问题是谁?)
0 X" w# Z, j/ U* X( z, u' W上个月,买了个激光模块,一直没用。这次本来是想打算做好,放上激光模块,用来证明误差量的。现在被我直接拿了出来,装在上面分析车辆的摆动。首先是连线,可能会想到用输出或者输入口,我直接用了usb的口,正要也有usb的插头(昨天刚到的快递,怎么那么寸?),简单接完,随后用lego搭一个框架装在车上。结果发现,墙上光点除了向一边偏以外,上下抖动也厉害,且范围大(冥冥中注定我离墙该如此近。呵呵)。
1 {$ K6 A3 b% a* K7 ], u! r' ?" t0 q8 F# r; t
, p$ T: E% }5 u6 J) i' j/ }5、结构改进:加重。没零件,没时间,那就直接来4个WRO足球的万向轮(简单,粗暴吧!)。
. Z! o) Z" m8 K 程序:仍旧用电机角度反馈的,因为感觉陀螺仪的反馈还是比较慢的,要发现1°的误差,电机可能已经跑了很多角度了。既然地面有高低,会产生误差,可将电机的power设置不一致,只要弧线到位在地板上就是直线。(在3m的长度中,要调整最终的误差,那2轮power的差一定在1以内,所以不要指望用模块了,自己动手写想方法写吧)。
( C2 ~# W+ Q/ b4 z! Q8 ~% B; K0 B+ ]; ~& m0 \* P
视频(由于时间短,参与为主,最后附上照片,表示机器停下位置,以及测量结果,视频最后较模糊,但是应该能判断停止位置的精度,可细细研究):0 v, ~8 b& X7 u$ U
5 ^' r$ W( f C! H! ?$ O, P! [
8 z5 X" ^. y* c1 u/ B6 s H& M机器人停止位置
) G4 z6 i& i# i7 N7 N* D( U3 r
+ G$ L/ e9 t" a: E
测量1 n7 V! B2 X& e- j4 t
0 L+ o$ N7 \4 r, A" a
9 F& e, {6 U7 J5 s' ]
写在最后:垂直穿越地板,如果后地板比前地板高,会有略微纠正方向的作用,哪位朋友可以尝试一下,横穿30块地板的效果,是否会比直穿4块地板效果好。希望有朋友尝试,有答案。
$ s/ y0 m( G- M2 Q& Q% G$ I& @8 N+ y) u0 m- [1 x. N
" a2 k+ Q' N3 k* R; W6 L/ \# P
$ m6 N8 _$ D2 g4 g5 @4 Y6 w* h) a) U
@. U3 ]* l7 A j ^, r
% T$ u- F; B+ W |