|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
" s2 I( V* f4 V9 U9 n0 G3 R" T& _+ ?# j
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:0 Z, M$ j1 j" w' D1 V0 F5 e
1.魔方配置规格要求6 f0 D) {( p* w/ x; h3 s! a
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:8 M- d, I" H" C2 e# p
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。 {( V3 N. g# a, l0 L
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
$ b5 x, y' `# @, D 通过以上这样几个步骤可以排除魔方问题。
' p# O$ ^# Q9 b" ~; J. L$ T( R0 V& |9 y
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。+ {4 u7 Q- G2 C2 }/ F' B; z
a.tiltedtwister方案
3 y# w" g/ Y' p- ~ 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
$ x2 Z* m2 u! A3 J 版本:2008版本/2010版本
3 ]1 E& M7 ?/ e. N$ }$ u6 H; f: j 搭建图:(详细搭建图文件比较大,截效果图如下)$ E9 X+ o( h, p; E- D2 T
% K7 z- U$ ?; x; w0 r
图1 2010版本 图2 2008版本
, R5 `" Q# d/ q# ~ 下载地址:http://tiltedtwister.com/download.html
1 ]6 h$ i; j t/ O. M* f 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
' X* L' f" H! k3 H# A. f 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)* x" r) I0 a+ c
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
. c, k! ^3 E- @( ~ 缺点:由于结构问题,目前的结构设计不稳定,' _6 B; s9 h& G- E. D6 l
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟5 |( c6 m" J9 h
% p' ?8 L1 `) V( }, w- `7 [% Ib.MindCuberRubikCubeSolver方案* A+ C' P/ p& D c8 S2 W
相关网站:http://mindcuber.com/6 w$ F! R3 z' s# U. s$ I
作者:David Gilday
) P' [; @( h5 R) I 版本:2012版本
& ]' p$ ]; S) M# t: G 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
% _6 j! [0 L& X1 j
7 K7 F$ c3 \; W' T1 P 图3 2012版本
% }! ~. n( J8 ]1 [ 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)6 Y! Q( y( x! d0 ]+ }. u; s9 `
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
) y) a% A. K" h$ g
优点:结构稳定,执行时间较快
; Y9 F( a% {2 V. ]9 k6 q( x 缺点:
: ~ n! y6 s& y, F( g. w" m Y 性能:
; ?/ R% L; p9 c* u! H 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示). A }: P+ ~" y$ e- b4 F' Q
8 L; S* l1 X- {9 e1 {+ d
5 T9 x0 f7 ~- W" V8 c
3.调试方法, Z1 `' S8 s( a p
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
2 t) `* P' \9 r( h0 ~6 Y0 n7 { b.不要急于下载代码验证,对照配置线缆连接是否正确,
+ Y4 _! d; w4 x$ I tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求 A9 ^. y L: H: p
$ H3 C0 V2 x2 R1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器7 f! |' n- j; p# `7 @: r
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
; w( G2 U# w; c" o% T& O JA =========Center motor 中央马达 A =========Center motor 中央马达
/ U- s- r) s8 d! t5 S: z7 }B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达3 D2 Y+ a, W* n' y& m) I
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达" n" n3 u) S; p, B+ m4 t* L2 T& r
7 A! C5 i" _. D2 v9 K, T" Y两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
9 u O' {0 k4 A) I$ [ c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
& D' Y" ?" ?) u4 [ (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。0 @" b, N* }; g' D; _) d b
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
9 M5 I5 o" E3 j* c" d4 H, H( T+ r: v+ |* R1 h
d.中央马达控制微调,方法如下:' h' s3 D7 D" a5 l0 D7 B; l8 c' {" x
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
6 G7 G) g! Q4 T, m (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。& v' Y8 t4 R* F3 w) j. l& I2 n
9 c, K) \4 \2 Q" f$ i- e2 s
e.下载执行程序整个调试验证:
8 J4 ~2 O) o3 }+ C$ E6 l! o (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
# z& E) M; a4 g) ~# L& I8 d7 }8 S4 t (2)程序流程大致如下:
2 U* s: u& l: ?, d# }tiltedtwister:针对这部分代码简要给出流程上的分析
) z8 O2 x- |' B% G2 c, o% }% I, Q while(true)
! b" X# J" Y/ X% m- A {
- U3 O7 a5 X* x% z: m Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)- {) i% j$ Z2 c' L! {, @* [
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
' b! p" S$ q1 [5 q+ j- X6 V 初始化转台中央转台位置(需要手动驻停中央转台)2 e- z0 d( U1 p" }) n
- b Y/ v/ S+ @$ { X+ s
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,+ j( }, x' f U( N
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”$ E2 f! M+ f# H
T; p# e) n" r7 v: N6 i ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框6 y9 E1 X+ Q9 ^0 j/ A! `
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
3 Q+ p& E0 O/ q if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()# L2 i1 c% a# P0 e
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
* A% g% V- e8 J8 N. [3 i! y WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
5 @- m( n" w2 }+ b3 u }
0 u+ X4 u/ j4 a5 k% NMindCuber:没有代码,借鉴操作手册上说明描述翻译如下
8 J2 g- m8 F, B/ O+ S MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
1 F7 X2 Q/ n9 ^! I# l 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
/ Y( y1 T- ]- L2 j/ n 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
4 A& B1 a' G; V- x/ N MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。( [1 m4 i) E" X
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。/ m5 }) {1 r. ^$ X: c8 v
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
$ b$ m) K- [7 e: w+ q 【提示】:
+ S8 u7 q7 w6 F; T) N/ T& f 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
, |; f7 }; B9 z' `/ f, B* O 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。8 |6 y+ j( ^- \! X9 a
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
# V& y, a/ Y2 I9 x8 x9 a9 a; Q% R6 F 如果魔方不标准颜色,它可能无法正确扫描。 3 J* ~- M3 G+ B3 }
手动解3阶魔方必杀技方法:% @7 M. H7 C0 O9 P1 s3 r/ @
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
# m) U# ~5 h* Y参考论坛英雄帖:
; P! j$ ?9 M! ?& e8 E- e9 Phttp://bbs.cmnxt.com/thread-2183-1-1.html
2 M5 ^* o* W8 c! O( y8 G3 ^9 I5 }0 {* H$ p e! A G* o4 w
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82403 e( e# a6 ?1 E+ f* ^
' v) R6 x' s! h* L
http://bbs.cmnxt.com/thread-7443-1-1.html6 j2 u3 E4 [6 K! H: z$ y
6 ]+ c' O9 {6 v( C! o: j2 |. C; Z
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580- Q8 V" }) C9 g0 r$ z
3 l6 J1 R( g6 P4 ]& g
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871! q4 R T- c; m: ^/ S6 F9 y- g4 R
! N3 L6 F# \! K1 \) G" I) V
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
: Y7 ?9 R* W# z$ C m+ d I4 j4 w# \0 C
高端设计英雄帖:3 i/ X( I$ b4 ^4 R# G
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=36477 |% R" ^$ ~: z, L
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=60214 Q5 H* G) ]4 e. i
) U+ U4 Z, d1 O: r9 F
R. h) T: Z% y |
|