|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 % k- W, j: E( m8 f/ g
, k' M( z3 x2 q. {+ `& o1 D7 W+ H
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
3 L7 L" {" F6 H! y6 t- H1.魔方配置规格要求3 h- s& G% c% \8 Z2 Q
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
; n' Q8 n9 f3 `# h1 f/ ]7 w) [ a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。: L! `: i3 e: D3 U) o& ]' c) F# R
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。+ P N/ S8 x- u! { l1 v I4 ?
通过以上这样几个步骤可以排除魔方问题。7 k5 m ~! |; I- e
* }: i. M' x! V
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
( c- k) t4 l, H( ~4 n+ _ a.tiltedtwister方案1 d9 E# W6 c1 x# V7 s4 f( M8 t
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
! g2 Z) e0 d# t% X+ j 版本:2008版本/2010版本$ @& j. |/ e& f0 l3 i' B5 i
搭建图:(详细搭建图文件比较大,截效果图如下)) a* ~5 J9 Y- ?% g! A0 L3 Y

) ?+ Q) _1 x, W- f 图1 2010版本 图2 2008版本0 J/ s4 I& p" Y# O" o+ m+ }, D
下载地址:http://tiltedtwister.com/download.html
0 H( |/ Q$ O8 M: C/ Y. e5 ^ 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
3 A2 U8 `/ E0 o0 A, S 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)/ N" I% @3 y+ @- E
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力); I5 m& |4 D N3 B* _/ `
缺点:由于结构问题,目前的结构设计不稳定,& F5 C: @$ S8 x# N
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
# k, G) x! R' P1 W7 X3 r5 x
9 k7 e1 ]" x/ F* u& }) Lb.MindCuberRubikCubeSolver方案& B; r2 Q. I/ s- D4 o! S- J
相关网站:http://mindcuber.com/' v# ~% \, U; H8 m$ F3 _4 l
作者:David Gilday& z' e3 B- m- }! D$ E0 E
版本:2012版本
" o0 p+ x! D' r, e7 ^ 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
' u: t7 y) V; E! f7 s. n# S, w+ V% a# t $ U- s: E: Y4 t% c0 b9 [* Y) {
图3 2012版本& o6 {+ Z6 m- o1 Q
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)) o2 j! d- Z( `: k' d
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
$ w. c. B9 N& X
优点:结构稳定,执行时间较快 z }. }+ I$ B& `
缺点:! Z& H2 r2 S& \3 l3 w' T
性能:
) S8 g9 Z; ?7 _8 `% { 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示) V( K" ~/ }1 L( ~) c
0 O2 f' H8 J2 n" X. f9 p9 c
# ^0 C9 w" p9 J. f0 j3.调试方法. `( M! z1 }& M t! H4 R3 w9 X
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;+ s* l$ T) |$ M+ @( I1 X
b.不要急于下载代码验证,对照配置线缆连接是否正确,2 d4 q+ |# T' ~) |3 R7 C
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
6 i, o7 I( Z$ I9 O! B5 F0 u6 ]- ]% a P: a8 I0 J* P: I
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器" W& g' J; ], W; \$ e
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器) [: m4 c' Y: j5 k: c
A =========Center motor 中央马达 A =========Center motor 中央马达
% E5 p3 Q4 y7 c2 fB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达* `6 Y! z1 w& U# P" p
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
( N* ~" V+ _3 j) c8 f& t. ~5 `, D" s; K l+ }4 n3 I% H/ P+ @
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。$ r* w' C4 V2 c! `
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:. v/ _9 v( Q) t5 M2 U- x4 N& D' B
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
; T6 q% o: l! r( z$ h' f4 u( ~ 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)& K4 Z1 i- a' R; l( q, E* C
7 c W% u! ^/ Y. h$ `7 R+ l
d.中央马达控制微调,方法如下:
9 ]. ^1 R/ ~" }! S9 R0 g/ i9 c (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;) c: l; V/ h: @( v
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。2 r& Y; U5 b, D& P7 m0 ?( H1 M
& {1 P/ e3 Q, y: V. f$ Q
e.下载执行程序整个调试验证:
" o4 h* v# B) G5 ? (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。1 {3 n+ t4 O1 j9 ]6 |0 q
(2)程序流程大致如下:
2 M7 ?3 b G6 b vtiltedtwister:针对这部分代码简要给出流程上的分析
+ r. @8 y! O/ P while(true)2 G2 a' ~4 I% `7 y1 T$ A' S
{
4 A4 ~- X: T, d9 E) a Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
$ w0 J% p, `) n3 ]3 c! Y, U- q1 l 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)! ~! ]9 u" C! D% b3 M) [
初始化转台中央转台位置(需要手动驻停中央转台)2 C% C% z, M5 g3 L
! z8 d4 Z T. l( Q' v WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,% Z; Z& b9 }9 E& a
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
' N! c1 ^2 K/ @; `# K
0 Y+ q) O! v* y2 X% b9 G a ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
/ L2 A2 T- `6 X8 Y" D if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
% l8 k1 p. B1 a. o' X if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()5 T# k; P* o8 }" X# L: ^, o1 X
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
$ M# i0 s/ g$ d9 ~ B WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
& j& I- U, M5 Y, j# N+ b; a }% _) k8 M5 \: ]; k/ x9 f
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
# h+ ^+ L' X1 ^$ c) ?$ M7 \ MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。9 ^* s6 q+ o8 S) H' R1 a4 e
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。- t0 J! _. e/ z) r& v; z: g# [ x& T
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
/ _( j% w0 z6 y MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
: q4 l8 H8 r( P# w 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
% y+ G/ L3 S7 Y7 Q 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。' t2 v6 R$ a* @+ p5 S; f$ j/ m/ r
【提示】:
y" T1 E. `) r- T$ I c, [ 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。+ P% u' D) b$ w6 _8 J, ~9 T% |
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。# t i4 d, j& _% ~8 s C
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
1 a) r; ]' V: a. u8 ?% o9 [ 如果魔方不标准颜色,它可能无法正确扫描。 % V) P& y' }4 ?+ K3 [
手动解3阶魔方必杀技方法:* e6 l- S4 v3 ~+ F8 B& E* t2 e; E# D
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic z# b3 w/ U0 t! w7 s* @# d0 l
参考论坛英雄帖: % t* h1 C7 c- X# K3 D
http://bbs.cmnxt.com/thread-2183-1-1.html& @& i; x2 ~) S( C
# @ B. G4 ?) ?8 Lhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
. j$ t8 v0 i: p+ W1 p6 x: W1 C% r8 N) m) V' ^) Z; E8 j
http://bbs.cmnxt.com/thread-7443-1-1.html; A' n# c* A4 ]. q% x! o. E
3 m5 q" a' ~/ c. w$ ?http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
$ k. s! o! d: j$ m& d: x" ?0 s( P3 I
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=58715 B' P4 ^% H+ Z; M( y
7 `" p: ]! ?' V) ehttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
, h, N! G( e0 h* i" j' U' D6 [, O# M4 m0 A1 r
高端设计英雄帖:
9 I3 l/ j D. f% N& \0 @% \http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
1 l5 P( d6 @& `. ~! w7 j* T$ w! Whttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
4 h) i) t$ R' P4 i0 w' ]8 `
# P0 R7 @4 V$ a. B M/ e" h' _5 I9 z' a) L7 M. e/ i# q$ ^! l
|
|