|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 % U5 D/ |4 q6 {2 b/ h- Q5 q: T
! R3 R n9 L j$ }5 u* x3 V( e. J
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
, {3 A& V9 ^7 s/ n; J1.魔方配置规格要求
* y _( S% y7 }( Q0 _ 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
, q8 }* f2 [- q8 j a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。$ `! O. E& D% ]6 k! Q5 G
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
( A5 o) L b' P; U; W9 V! o. O# W 通过以上这样几个步骤可以排除魔方问题。+ l4 y- K+ v+ `
3 c$ ~0 B" L: l% V H% _& K2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
4 K; D9 D$ {0 Q% l% l a.tiltedtwister方案# E: u7 T, n* k
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
X) [* E8 q+ D3 | 版本:2008版本/2010版本& \5 E. B/ X# A7 q8 b: ^$ p
搭建图:(详细搭建图文件比较大,截效果图如下)
- u1 K& B) s$ u Z. a 3 V3 {1 I: g9 q$ E7 @
图1 2010版本 图2 2008版本 z! J: N! ^' J, u$ O
下载地址:http://tiltedtwister.com/download.html
: M* j' {) s! H. T+ s 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
) {. c' P! Z* r2 o0 @# B 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
5 v5 p+ S( }3 t( e9 |/ G 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
% E" }1 R0 A, ?8 i* d, N5 i 缺点:由于结构问题,目前的结构设计不稳定,8 T4 q5 g; U1 [, t9 G6 d
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
c$ K u8 w2 y, s' o
+ c. Y. c% m( V$ U$ H2 Vb.MindCuberRubikCubeSolver方案
: U7 Q& L- B7 R" f 相关网站:http://mindcuber.com/
! r3 W# M, p; r2 \. w 作者:David Gilday
- c$ Z8 \9 g% r# m: q 版本:2012版本
6 z/ B3 g% s6 | G1 x. \' G" h! ? 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
0 N) r9 J Q5 \
' Y% W0 |- ~0 i. \: I) W 图3 2012版本
' z2 v% g/ y5 Q1 j) p J7 T 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
) n8 w7 [, }2 y 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
6 q) M: L4 y- t) B& R4 C 优点:结构稳定,执行时间较快
, `2 l6 Q7 H& H. Z4 n7 j; t1 r 缺点:
" H+ j/ x5 Z' p( F* \/ Z% J1 Y 性能:/ p' Z& z9 r. O ]2 e2 e1 @
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)3 i! m5 B4 E" `5 J$ h' U
6 z- B' {( q. p6 D/ F! J
& k# u) O9 M) B3.调试方法! |! N# r6 r7 L
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
# a% k5 B$ d" \ b.不要急于下载代码验证,对照配置线缆连接是否正确,
5 z. k, n; i7 c tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求) s9 x2 ?4 F3 [- W* b+ r Z3 {* u7 U
/ _. R8 \) a) H# i1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
, X( w3 a7 ?( l2 Q2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
" P, L. c, m. h; }, o1 M2 X. HA =========Center motor 中央马达 A =========Center motor 中央马达
: A2 g& L! F& r0 J, TB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达3 u2 L- ?. `, y* m% y I
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
; ~* S8 K9 ~1 r
! g! d9 J' E! S6 g; b5 a1 g% ]两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
9 _$ z r' L+ } c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
" N' g0 F2 W/ h. T' c+ z (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。7 J; U/ l! ]# E* J9 [) x
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试); v/ r- j7 _% g: Y- H& B4 a/ D
: `# P6 X q$ g1 K( h+ \8 h
d.中央马达控制微调,方法如下:
0 |+ W; W& T2 v& F% |2 \6 s (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;& y! K# c5 o% a' n+ f9 C
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
0 V9 \5 G, ~6 H2 U7 H+ ~6 l: |- ?0 @) ]; O
e.下载执行程序整个调试验证:
7 E$ q, m& U) ]( r% ? (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
( D4 p3 F! L! i6 @$ N5 t (2)程序流程大致如下:
' G% y$ Y' ?$ K! H% O$ e9 Y& ~tiltedtwister:针对这部分代码简要给出流程上的分析
6 ?# z# i3 |8 S' Z4 O( \6 r while(true)
* B" p4 c& a! ^ {4 }% |' {2 h0 E. m7 ~0 W
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成); D% T5 J: Q8 M& P* r! Q a$ Q
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)+ J2 o7 W) d1 i6 p
初始化转台中央转台位置(需要手动驻停中央转台)
- ^. G z k5 S8 |6 I
5 X6 N# g3 d* |0 f WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,: C* G6 e# v7 B* t. X4 V6 L
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”1 ~6 W( C3 ?) w
) {0 j+ C$ r4 a5 [) O( Q. X
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
* g# @ y1 ]" W3 B/ R/ b: K N if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
$ }' R1 C1 U: P+ S- Q if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()# E6 I a) h3 \+ m$ _+ a
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
[% W' ?1 L+ ?8 ?6 x0 B WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()( s6 Y2 |) k8 s6 A# L% e- _3 r. W
}
& |: \( R9 C$ Y4 O! H) TMindCuber:没有代码,借鉴操作手册上说明描述翻译如下 c7 G& F* ^/ j" i# ~) @
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。% Q4 T: P& Q5 t
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。* F$ _) V4 ~- ]
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
' t+ E: i8 g* M MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。 Z) Y, B" k+ h0 n9 d1 P3 ]
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。3 f- L) D3 _! ?
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。$ c, N! Q; M! a" ?. r% Y8 q
【提示】:( q6 | ^ `; l* e% ?6 u
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
$ W; @; [5 {1 `9 D 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
* B; v& C4 b7 l$ d& @5 ]0 g9 X% R 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。/ l1 w2 z) E- B! S8 K6 k4 t
如果魔方不标准颜色,它可能无法正确扫描。
0 m: [% O/ c+ b. d2 l手动解3阶魔方必杀技方法:9 s9 H1 O+ f) Y5 l* R6 K- f
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
0 Z% c! M3 t- n" V0 Y. l' e e参考论坛英雄帖:
) B! F8 l0 t; @6 ~( whttp://bbs.cmnxt.com/thread-2183-1-1.html
7 r" D+ q# X% a8 {) z' w. ?( B9 t* K J: i. H
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
! J* Z6 w# D* M. k/ |( f( {# k! }7 ]) P! K
http://bbs.cmnxt.com/thread-7443-1-1.html0 C6 o8 f7 ]" k4 e6 S x+ N3 y
" e7 q P" p, F* k3 O0 _! S
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=35802 L. J1 B! M& Y' n0 k" o: s
+ Z9 K" {: t3 N. e: Y4 C9 h6 f
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
) }" H) X) y+ L: W9 a9 ~- i+ S1 `* A: C
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870; q- A$ H- y2 L+ I$ O5 s
4 J0 f+ { U/ Y" i3 c0 T2 k
高端设计英雄帖:) j8 v0 }+ C* A2 z" W P
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=36479 `( u7 T& b2 a
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021* Q) N; \( }' Y" i1 @
0 l3 [- O+ n6 `% E+ i5 P
9 g" F+ c: B$ ~) s$ d
|
|