|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
- d2 n4 t' t G4 K; b
2 Q+ ]3 E+ F5 \( T, x2 E 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:3 e' K# i( |7 P3 M3 w6 k
1.魔方配置规格要求( |. H+ i( ~1 _$ ~9 x7 m! u
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
; F" ?2 Y0 U9 \" i0 }! m. w' ^ a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。3 D& f5 o/ T- @- U6 Z8 j
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
3 d' M/ d, w( c1 U1 o4 a 通过以上这样几个步骤可以排除魔方问题。2 l/ o: e( z' E4 R+ P5 n4 j
3 l: U9 h" J& w" h, A2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。) m# w! z7 @# ?* ~. I# k! ?4 N G! C
a.tiltedtwister方案
* F' i _( [( Y* R5 e; b6 G1 x 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday5 y( ]9 Q0 T& \+ K$ G+ V
版本:2008版本/2010版本
( b; S7 T" _: ]0 w# | 搭建图:(详细搭建图文件比较大,截效果图如下)
3 \ m1 Q9 ?( n' P 2 n% Z" a0 J+ S9 ]$ R) D
图1 2010版本 图2 2008版本
0 r# h$ R8 ~+ g" T9 j 下载地址:http://tiltedtwister.com/download.html 5 j6 b) h& K7 h( M$ f
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
- k) ~9 {9 d/ z; R! k
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
+ a) ]! \# s, F$ M' D' i* Y 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)/ [+ J: |( h' h& K: ~" t( d% n
缺点:由于结构问题,目前的结构设计不稳定,
/ o% N1 W1 P+ O( n' i 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟7 _; k' R( r, t' j4 ]" t
9 g% q8 ?$ ~9 }. X. a9 ^/ H! D
b.MindCuberRubikCubeSolver方案
# V1 L- r4 Y& O! L& w 相关网站:http://mindcuber.com/
$ ~ @" L. e: s2 Y2 Y! T 作者:David Gilday. N$ m* i' r% |) i1 m
版本:2012版本. f4 s& ~2 ?; h, K5 b, M, v, o6 ?
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
* @) [' Q& F: m8 c! ~
( R$ ~, m5 `+ A4 [/ l 图3 2012版本
6 X+ m) X% c" X% q. Q& m 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
& i# k0 Y% r8 g' n3 R6 o } 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
" g2 ~" H$ L# s2 C8 f: w e 优点:结构稳定,执行时间较快( f) O. W& ?- j/ s- ?) ~7 T
缺点:" D# G8 K# s8 w' n0 s) D; I; q
性能:
, c4 k( S7 D' c0 U. R' L 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)" R6 d _+ o d! ?
& f1 O$ m+ q% Q7 K2 p% D. I- P* D( {
1 k" ~( t* D1 d3.调试方法
% O- C# c) j: z* M- N* N a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;- E+ ~ `0 \/ y; ?. n3 E1 Z2 x
b.不要急于下载代码验证,对照配置线缆连接是否正确,; X8 j+ h$ R R+ g! G+ u
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求$ h8 [5 g7 A" `8 {; \" l7 t5 u
0 F( @2 v5 L; l9 @
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
" k. U ?: ~- T3 p2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器7 A# J; e8 H2 x) o) [
A =========Center motor 中央马达 A =========Center motor 中央马达& c! ?' z- _; M$ S/ G' p
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达& S1 m, [8 } O$ @* ]
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
2 @1 q g4 u9 L5 h; w
2 `* g( c& o6 g$ ^ N! A1 Q两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。! p A& D! @8 W# U; T7 h( B
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
& ]* v% h; Q1 V8 n, `2 T) B (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。& k8 {3 X# b& p+ K, `1 _% c
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
) @: [+ b7 `5 x/ U. S- ?+ e2 k) m1 }- Z' q; ?
d.中央马达控制微调,方法如下:
" @& Y- r; u( m (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
. r, [% D* [! n& q; N (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
7 l. `4 B3 C7 m% k/ K% \' _- D0 J4 i! {/ [9 T4 B4 N
e.下载执行程序整个调试验证:# X2 @6 Z6 Y7 i) p S
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
5 t7 W, V# x% g* Q; I! w (2)程序流程大致如下:7 { J( S% _# d" Z0 w) t% ?
tiltedtwister:针对这部分代码简要给出流程上的分析
9 S+ }" z; U5 c8 E, d+ P2 R; c while(true)
/ D8 N3 m' P0 ]7 ~5 H# ^2 |# } {! ~6 Z& M0 T9 {) L4 z
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)" Z5 v, b7 Z8 S) o* p
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)1 v8 @+ e" j0 a& f) [6 K; h+ r' K
初始化转台中央转台位置(需要手动驻停中央转台)
% r3 q' N, t, _" Z. ^
. T6 M8 r! o% w2 B0 b+ L/ Y0 [ WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
2 \, z: V4 P+ ], g; W+ a$ R 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
2 o! u& Z4 w/ u' e Z
5 y0 A1 ^$ U$ D ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
% D% ?; I a; i6 O if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()8 P( x* t3 P5 r* ]
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()" K6 |7 ? N4 I
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
# I! v% C) D3 S WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()7 C. s7 t/ p% w
}
7 P3 H( w% o9 U! c, f' KMindCuber:没有代码,借鉴操作手册上说明描述翻译如下2 h1 R' s: p8 q. b1 ?+ g8 ~8 D
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。: u# M; L9 [7 I! F" K& o% b
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。& _- P! k0 }2 i, x$ `
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
% w ?$ p( z5 w MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
0 r- h) k( q* U B v' | 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。7 K+ k4 u" O) N! `9 g& A8 n5 v
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
. w7 u3 `% B1 z& O 【提示】:' H; e' R5 G, q& V) v+ X6 s: W
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
3 G4 ]+ S' p; C 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
& M, e( m/ g! i0 j$ X- H 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。6 }, p% p7 a' S8 N8 f$ h
如果魔方不标准颜色,它可能无法正确扫描。
4 v; M( \. d( N7 Y1 d: Z/ q手动解3阶魔方必杀技方法:
/ s( _8 H1 R8 Z: J/ S: Y+ o& [http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
6 M# i0 K- N4 x参考论坛英雄帖:
6 N2 {3 @' g% Y7 D) ehttp://bbs.cmnxt.com/thread-2183-1-1.html
2 U/ ?* r) d+ B2 @
, _8 u, p1 [0 e, @9 q8 \0 J! Mhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82409 ~0 s' c2 _' q! \* u$ t! h/ J
" k; ~# D7 e2 R" Chttp://bbs.cmnxt.com/thread-7443-1-1.html
/ R" `+ K8 Z4 m, W8 w
& O/ y {2 C4 R. e* E0 ehttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=35805 F$ F+ n2 e P1 m
9 P( e4 Y0 X1 I4 u% {http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
% P: ~/ R/ g6 E6 h% W6 }. }" d
( ?2 k3 }3 J# z5 ^+ d; r4 zhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
: G) K) A6 M2 ~# ~- b6 T; x& R' K; S0 o* r! ]6 t) _
高端设计英雄帖:
3 @) g c9 z6 ehttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
9 w2 I8 N4 v/ |0 d: Shttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=60217 k s# [0 i6 E" r
- n9 d! u5 F8 }! I0 l# D
5 i* G, E i( [* M; s% \ |
|