|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
- G! F5 C/ x- T4 p) {2 B% \; D
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:& ?: Q" b) H8 k, ^; q. t+ b
1.魔方配置规格要求8 S! K! o1 `7 Y: g o$ W- R
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:4 d; q5 j% F' S* N* {3 S
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
+ k" E/ Q/ ]7 O+ | b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。% A! X& _8 n3 @# R! p$ _) f
通过以上这样几个步骤可以排除魔方问题。
- x# y. t( B$ ?: M1 {2 L; h( V1 s% z2 e7 A: O$ H# z5 m
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。+ I& ?' M$ _* e" f7 @
a.tiltedtwister方案- P: s; X+ T" j4 ]( z$ J
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday( d4 t2 q) W& ], y H9 @
版本:2008版本/2010版本
: b! d1 X9 y- E: G 搭建图:(详细搭建图文件比较大,截效果图如下)
/ R0 G3 y0 p" w5 ~( v5 y 0 V8 h5 g& _ G: @+ _
图1 2010版本 图2 2008版本4 |# M P& u w7 c3 S% h% @8 P
下载地址:http://tiltedtwister.com/download.html 6 A1 @6 w2 C4 Q1 Q; r
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
; P' H" _; w2 `! Q; F 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)# J" o# h- H: b0 x" H
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)0 {5 B# H `; }4 a8 l- I' L* ?4 U/ Z' U
缺点:由于结构问题,目前的结构设计不稳定,
- X. N0 a" {, i4 z- A { 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
9 a" C8 x; I# A* q" u, H. b
: d6 I1 Q* a1 O- kb.MindCuberRubikCubeSolver方案
+ E5 _6 E* b, q! A& u7 K 相关网站:http://mindcuber.com/0 P3 y! U F. L0 @- I9 M
作者:David Gilday3 [) U1 y& `0 A, ~
版本:2012版本& b( w, [9 |: @
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
9 _; F+ c& d0 A+ _: k
" M5 V6 d$ a7 c f5 u4 i' p
图3 2012版本
* [( n5 M: J; y4 G 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
/ \4 ?; q, E* y2 ]% }$ K 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
8 e, y8 r& g' t9 d: G: W) V7 T, K1 z' r
优点:结构稳定,执行时间较快: W1 ]3 q* }, ^, ?
缺点:
- A2 W: _! u) ^1 c. Z" C 性能:# r# V9 k8 L2 O, h, d8 _
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
9 @( E" p$ |9 B% c" \
: z4 C% f1 p* J' T4 W
# V/ C2 l0 N7 q' ^
3.调试方法
% |0 d) K8 V1 w4 |+ c2 E a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;( I1 [* [$ d/ `' z
b.不要急于下载代码验证,对照配置线缆连接是否正确,7 s, K! m5 S1 ~' D2 j& Y. |$ C
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求 m7 ]* N/ U" D
" z, f0 x! l# l3 d. [
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
# y# x: h9 X4 X: B3 t6 U2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
% x T- I% k+ }( pA =========Center motor 中央马达 A =========Center motor 中央马达: K% f" P# e$ m8 h
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达. M4 y- | P+ M, o! i/ n
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
) U& J3 H; ^9 R5 x7 h# k. m+ m; {4 Y {: s6 l
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。2 v l; B3 P; ]8 e, \( o3 U0 C
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:- P4 W, g3 v" t
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
" z: F+ e& h6 j7 K7 g" ~7 _' S 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)4 m4 H1 M- J+ q6 c. \6 x. G
5 N) ?4 G& x4 h$ I
d.中央马达控制微调,方法如下:
- c$ m, C1 p1 W2 C* L2 M/ S (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;: D4 z7 K! M& B
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。3 y" t! c# r' x; T# b5 B: B
2 g) x* [: E, \5 K& Z" j
e.下载执行程序整个调试验证:
: b/ s$ V6 V6 A2 m& h* a (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。) S# C6 }$ t6 D+ _
(2)程序流程大致如下:. b5 R% ~2 M: j
tiltedtwister:针对这部分代码简要给出流程上的分析
- p% _0 d) c4 G$ S# i while(true)' H. y! _$ t3 q5 u* {
{
! ?* E9 z2 b% V Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
; H3 Q/ J6 D4 H6 A& k* C% I% q8 n 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
9 z# C- f/ [& g) O+ | 初始化转台中央转台位置(需要手动驻停中央转台)8 U, F/ }3 z% b$ G
4 Q) d! i$ W* g! F9 `, L/ V
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
0 ^& Q. L+ `* B3 _, D 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
0 ?; v% @$ g M X! |
6 t2 N7 i+ Y" L ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框, F( [" M) B, `/ K6 ?
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()# S: z7 p$ }8 v, E3 y
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
2 b6 C/ t9 w% `: W* q& _' }2 N9 S0 R DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
6 h7 r' j& t. N9 M) U WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()- q( Q, G/ o7 |7 ^2 |7 u
}2 h& U6 Z u- o1 g$ q( a; B
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
+ _+ p, W! b* t1 c+ F7 t! O) l: d MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。' T9 L* b0 k' [
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
8 ^( o+ W: f( J+ z7 I 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,4 p- V! g& X7 H4 j H
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。* J* W* t" R) G0 }/ T( J
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
+ _/ @7 p) H# K( v 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
$ S( J8 v. P, `! w: q" E 【提示】:
& A/ ^6 ?; T! [ 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
8 s- |" p7 Z9 M" I$ {/ ?; a 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。$ x5 L0 M( ?8 N' k+ k/ E; J: i- O
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
]# J& C) ?# ^- V6 l1 n) @: x6 h& G; `: k 如果魔方不标准颜色,它可能无法正确扫描。 3 T& E& w# }. E ]6 c
手动解3阶魔方必杀技方法:
1 N! T' E4 u4 g7 ]( G7 q0 ?1 Hhttp://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
Z& _% C( R3 q% y参考论坛英雄帖: # z/ D4 {" z) X! g! p7 p
http://bbs.cmnxt.com/thread-2183-1-1.html5 p' C$ P7 n% R) W, M8 p' N" y; h
! Y: p$ `2 P e' c* k
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240( R' ?& S, j4 Y, X4 A9 z
0 S) t; x4 Z3 D+ \ f' Ihttp://bbs.cmnxt.com/thread-7443-1-1.html- N1 @% n7 G" c: B6 ~
" D8 m- I5 Z, s; b" u5 Q7 M& Z- f
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
; i: Q+ b: ~3 R1 A4 T+ x/ S6 i" c: b. |- S2 q, L
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871% l: g# S' ~9 ~" h. X+ m" m% `" P5 K
$ W c7 t9 ~! ^; w$ J3 L/ o5 l/ r
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=78708 S) a7 U: O1 Z8 I
9 ^( C- n" Z7 I高端设计英雄帖:- |) s, r: Q3 c7 y4 {0 {$ N3 K
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647) C9 a& T& {# R) o" X- v
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021: f; b7 N) R0 j2 f9 ?, ^
2 K+ u1 }9 P! \+ t& e: i) g" V& J: `2 w
|
|