|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 1 r. u! X9 g. D) y( h0 `+ `
) l, J( m8 Q$ I2 c6 T- d, K- ` 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
) j9 f! d0 c2 Z1.魔方配置规格要求
5 T5 v7 k1 ], S) U; _! ~ 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:6 q8 y& B, G. N
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。( n( ~8 H3 G' a1 W
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
, F' C& x; {4 I& y B 通过以上这样几个步骤可以排除魔方问题。
) g' `+ `6 X' A) T2 Z! r5 A! [6 c3 D! u2 x' P; f
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。5 f/ F, K) ~7 ^- u9 |7 m9 }
a.tiltedtwister方案* @* F: W# Y% }/ W+ c0 F; `: ^
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
3 C8 t7 ^. V, X! @3 O- d- S 版本:2008版本/2010版本
4 ?2 }( P& ?# u0 Z, P/ p( f& r 搭建图:(详细搭建图文件比较大,截效果图如下)
% B% L$ s2 g1 Z9 | 9 o4 b: v! D$ x H5 w+ \# |
图1 2010版本 图2 2008版本
, ]& w3 w" s! ]7 a+ N 下载地址:http://tiltedtwister.com/download.html ( M% e. u, z2 K* q8 y
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
3 s$ ]5 m! `# Q6 U i 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
: }3 z1 w& _& B% `: U+ c& l 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
* I6 W6 D$ K V* t# m+ e( A 缺点:由于结构问题,目前的结构设计不稳定,
5 x5 G4 O! E3 J4 s3 r 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
- k6 a! l2 L. r" K6 ]! E I; _# J6 o1 f) i. J' A( q3 S8 f# K
b.MindCuberRubikCubeSolver方案+ a h3 b" M! B/ H+ O/ O0 s$ l% |% o
相关网站:http://mindcuber.com/
* u; n8 _1 d4 i8 d& m3 z1 I 作者:David Gilday
" S& s5 L3 m% O4 X; w8 N0 X: J 版本:2012版本$ ]( [$ Y/ O: m i9 Q
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
/ }6 _; D6 k5 Y$ ?1 ?- V( x

. @- O- m' x1 i; p 图3 2012版本
, V- f) l. \. q' L- n& b# G 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
& L6 S2 ~3 n ]$ ]( P 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
: H/ R1 c8 Q, w2 V
优点:结构稳定,执行时间较快
* \& i6 z0 [; \ 缺点:
9 m' d' [' s6 ]5 t+ [: M 性能:
6 U: O% k/ s: D% o 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)* f0 n4 P% N/ C3 O0 h3 e Q2 z
3 H Z- |, \: T. h
4 E1 h( H: l9 F6 {. l7 K
3.调试方法
% _9 Z0 o& \* D9 f& E8 Y! F) d a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;1 H4 P1 e6 B: y9 S
b.不要急于下载代码验证,对照配置线缆连接是否正确,
8 F% E) `+ E w9 L tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求8 K" |; M j3 I: u: w5 r: \
6 K0 ]6 X& R; e% F2 ~
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
8 U; Y2 U( e2 x+ r* C& f( K) e. z6 _2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
* u9 V+ H2 P" S( j$ |A =========Center motor 中央马达 A =========Center motor 中央马达
" Z& X! k7 t$ z7 g$ J+ S7 b, p# SB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
' h+ O4 S! y; c% W& ^0 J0 yC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达6 ^" Y2 D/ L! W( Q' \7 o$ |" n
* J: ]2 v, I; ~/ F F
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
8 W) a3 N/ g' r+ C6 S( q c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:( x8 G% c1 T! q0 U- p2 N
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
4 ^2 Z& l7 u) o- s6 H9 a" [ 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试); t+ w2 _. J* Q
P3 V1 o" i0 a0 F! }& K | d.中央马达控制微调,方法如下:5 B# F! G* b( n8 N3 e# T
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;, H6 X! }7 U; S, f2 K8 \4 F* a
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。/ N9 n8 {% d+ B2 ]+ g7 Z
+ V3 v8 P$ N7 q7 ~ e.下载执行程序整个调试验证:
: r: _3 b# k/ R& r H/ B% \2 | (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。6 v# u1 D6 r9 U7 t2 ?; R0 A: j
(2)程序流程大致如下:& j8 I( o9 W9 e3 Q1 [! F5 z; H
tiltedtwister:针对这部分代码简要给出流程上的分析
# }+ {' h7 H3 x while(true)0 L% } C' ]( s
{
; ~# A0 Q5 K$ x) D, \$ }. m Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)" v G4 J. ^$ ?7 Y
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)% |3 y, _0 q! T( t
初始化转台中央转台位置(需要手动驻停中央转台). W- l9 A: D b4 U1 [' I
; C O: Y4 L2 x4 l6 u% ^! ?
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
4 }) x5 E: p' P8 y/ c0 \ 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”+ E' ?) A. n; ~$ W! r( n4 @ Y
# p# h5 |" u4 y/ `$ `1 D, O ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框0 v8 D6 I( ^# z
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()3 K p' Z) _1 h$ Q- ]; B( f
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
3 H7 u6 _! r. O! E! }, r DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
' i; {/ z+ s8 ^/ f* D WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()# p4 Z* U' x7 ?0 F
}
4 L. t+ x& L" ^* V3 fMindCuber:没有代码,借鉴操作手册上说明描述翻译如下/ w) u3 }1 p# D# V% l4 |
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。2 K2 b1 ]. y( \- {/ v3 C
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
% D2 t [6 F1 F9 t! i( Z 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,0 ^+ _. l6 ~- s. m; F; u
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
! u7 d& s% d" j0 e# ~0 M0 Q 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
5 Q* G+ ?' v. j1 D; [ 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
; V- D3 H) ]. ?4 j; V 【提示】:% Z8 Z" y' E5 T2 o2 w0 @. b$ g- f
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。2 Y7 o* m$ Z- n4 f+ c, D2 E
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。 H; M! j2 v) l
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
; Y# i( w+ j3 E* H( S7 Q 如果魔方不标准颜色,它可能无法正确扫描。
; o7 x! R; C1 G6 x手动解3阶魔方必杀技方法: M1 a/ [0 H" S0 d/ b/ S6 \
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
k6 b& \2 [" k* F参考论坛英雄帖: " V. h5 [- U9 `4 j/ n& c) _% X
http://bbs.cmnxt.com/thread-2183-1-1.html4 C- h( H) U* ^: m3 f3 i' k5 }3 e
2 [( W# ]4 u) P q5 H. z3 n+ `http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
# ~7 |; H7 L, X8 N Z6 P. ~ R# G0 O L/ z A: E) n
http://bbs.cmnxt.com/thread-7443-1-1.html
# f9 m8 c. y% j6 t' M: D$ v- {! H& S! y! A$ S ~# g3 `
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580( j& E* u$ n: @- y" ?3 O
3 e- `. a( O$ U& N \" [* `2 Ahttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
8 s5 D/ y: u4 X+ }2 ]
1 ~& T( H* O5 g; Q; j0 {: Z/ @$ q7 Hhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
' _& a- i' r! P) D8 e7 @
5 ~/ W: o" T1 T( W) H3 }; S" K1 z3 G# \高端设计英雄帖:$ E8 s0 h) a5 q, V Z6 J9 u+ d9 i) m
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
1 f# ?$ x# y3 d8 A4 T) Uhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021$ u/ w, G) y" W( c' B
8 o" t3 {7 {$ o
- z' D7 {; k% }6 ^ |
|