|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
# i! n( Q% Q/ c$ k( S2 m" X; k/ o- H; ]1 D
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:; F! M, h# V, f$ @ E% ~- c: K) [
1.魔方配置规格要求
) w* T8 W- P+ o2 [ 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
/ j) K% Z! _. B6 w6 r a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。/ O; ~: t O: m
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
0 R2 r9 G& J- o1 C0 Y 通过以上这样几个步骤可以排除魔方问题。1 a" o& ^( d1 Y9 @+ }8 k! }' v7 k! Y
1 }# E6 L! Q6 f: ?& |5 _
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
3 `6 G- P, w( h* A6 `+ f a.tiltedtwister方案- t. L* R3 ]; Q& b- p7 M
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
$ |; K. |. m6 U 版本:2008版本/2010版本3 O/ s4 K! B) m( j& E7 B
搭建图:(详细搭建图文件比较大,截效果图如下): `. m; j* W4 `/ z- n2 b
7 U, ~+ y/ G7 t0 \5 h$ C3 ~: O
图1 2010版本 图2 2008版本
0 z' v R( h+ q; \0 J 下载地址:http://tiltedtwister.com/download.html
& n% {4 }$ f6 ^, Y: y 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
: E9 M3 |9 ]7 E% U3 K X" c
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)8 u" L4 ?. e3 q9 t
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
: O4 ^8 O5 w5 f4 N; E$ K: j8 O' T 缺点:由于结构问题,目前的结构设计不稳定,
3 Z8 o+ M2 b/ Z$ S 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟# @7 m' D; s0 y- j/ l
( k0 x7 o2 q; l, Z, k
b.MindCuberRubikCubeSolver方案, d g' a* c: w; I" ^. l
相关网站:http://mindcuber.com/9 n' j" O6 K* F% l+ Q; h% F. G
作者:David Gilday
+ n& M' g" b, X8 W4 ^7 o! v 版本:2012版本8 N* A" x0 \# }# S0 D
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
, P3 c# c8 l! F
9 N$ B1 U+ i/ _7 t
图3 2012版本
% [' C8 f4 v: M+ S: W g 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html); f8 _* H1 f# }9 b
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
1 O. r+ E3 v& |0 D( S
优点:结构稳定,执行时间较快
* y$ I/ `3 i4 i 缺点:
- S5 |2 P- q+ t, G; c g 性能:
" @6 n* F+ k. g" f2 X 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)8 B4 B/ `' v, y; v' c& M
6 R" b! ?' d( X. b9 g; o& B
4 z' l/ @3 v9 X3.调试方法
; x: ? k) T4 F& C a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
, c1 r! C! a" n8 J* S# F& X% O b.不要急于下载代码验证,对照配置线缆连接是否正确,
) _+ `) N6 k* c+ T% V+ g4 m tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
, M* Z& v$ D; y) W
1 |. R: C, D" s0 X3 \- j1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器& E) n3 Y- ^- ~' ^2 Q: g6 m
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
! O% ]8 S ?5 j: L/ ]A =========Center motor 中央马达 A =========Center motor 中央马达
4 b/ r/ _$ j" w! T/ Y" W8 |B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
. w* R/ d* q+ j; KC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
" z2 y2 x T; j% Z- q( W
& S! F% ^$ b, [7 n两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
+ \' Q* L6 h* z3 n- J c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:( e9 @& C* P# L1 w2 h+ |2 Z H$ |
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
C( L( [3 h( W9 g& w3 f/ Z 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)4 ?4 G7 K1 G5 r7 A8 W/ z+ R
0 y7 X/ @2 {+ t d.中央马达控制微调,方法如下:
$ D) E$ s$ R5 v" k7 y+ a: S' y (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
5 b' G2 K) k& e) m& ]# i (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
6 [- T3 U7 o2 K. l" B; f" P( [
e.下载执行程序整个调试验证:
/ _6 K. f8 q' L; f( j (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
4 L& H" e" M5 Q! | (2)程序流程大致如下:
* _! @- k4 s7 k4 ^- n( w# ttiltedtwister:针对这部分代码简要给出流程上的分析
' Y$ O' ^* V- [6 h U while(true)( Y. ]6 R# ~$ B1 U! \$ q
{ Y E- y- R% S% d0 \- \
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
, W" h g& x' V. M+ U7 P4 { 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)% G7 a% l' d+ c
初始化转台中央转台位置(需要手动驻停中央转台)
" B' B' |( P9 K0 Q4 [1 ~& p. _2 |2 I: S! i1 V1 g
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
. u6 d* e$ k2 [1 @* S 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
3 @* j' m6 T" i" Z
5 ?4 l" i% o& }9 Q, ^2 ~ ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框( \5 v- Z$ h3 E. q' R1 C2 _! B. `
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
6 c9 U5 k7 s! x# h! ?& }. k if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize() C% {! U u& W9 e d
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成0 D) _, v) c+ G1 M: j; R
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()+ L3 A" c0 ~( Y; C& D8 b
}8 F3 `$ ~ F6 o- O% }
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下8 w; Z, Z) c0 I$ M8 ?1 n
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。+ z: p0 S1 z% d7 Q8 X
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。1 j* b3 D7 r) `0 o5 B
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,$ V0 G# A' p \; K
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。' L3 a8 ~( U! h" D; e& T: F! [
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。$ F: l! `8 f% M% `
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
" {9 p9 r- K8 i1 }& w5 _ 【提示】: S% K \% t: ~* S8 m
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。+ y$ C9 s8 J6 r# t
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。% F3 M) S. W9 E. g z- j
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
8 `" x1 {; r+ w% a 如果魔方不标准颜色,它可能无法正确扫描。 0 k( d. k; @+ B" s6 R
手动解3阶魔方必杀技方法:: B# j( @: h0 ?' ^! G
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic. F8 O z$ q% z2 v( @$ Q, j
参考论坛英雄帖:
- I, b2 S; k- ?) t5 J! Z8 K! j2 i! Uhttp://bbs.cmnxt.com/thread-2183-1-1.html- D( \& }7 [ u0 ~6 i" W
2 R7 @) G) @) v3 c4 ghttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82407 s8 r- C! p4 H8 O7 j3 o
3 ~* P+ ]9 I- x0 F i
http://bbs.cmnxt.com/thread-7443-1-1.html m$ c; w1 x) H' e
9 w2 ]7 L3 R. ~/ \* ~1 V: l$ Z4 F
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
8 e' n% Q% N( r: s/ z; c/ k* X! M7 W$ f* `6 J- j' K' H
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
( m% d+ [2 f5 [. j+ Z6 o0 m: M& t* L4 a8 L7 g7 r6 _* g
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
9 X& t. J, L/ M( S$ _
+ c& a& u" F0 P: T. O8 l高端设计英雄帖:
2 v$ c) M4 N0 ]2 I( T% W' e$ x- @+ Q. {http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
, q0 \- O. l* m9 v; ihttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
& a2 [% a: D& p( U$ G; t% a# E3 y; d& @, \3 w
; h B8 E' M8 e6 Y: M+ v c |
|