|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
8 Y% X6 X3 \& T0 X$ X
# s7 Y1 Q8 c7 _" S8 H 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
( _) a _# l/ J, ?& I6 [& L1.魔方配置规格要求8 X7 D% @( ~+ E% V" C
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
- _6 d. V P$ N& v a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。3 Y3 W9 M% k$ k! g" d3 K
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
3 _9 o# i$ k( \% B$ } 通过以上这样几个步骤可以排除魔方问题。 a& c3 ^ d7 I/ j* T
$ E9 g; N; ^2 I: K' i; g
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。( _) G* G: h4 X+ z" s3 x
a.tiltedtwister方案
5 ^ q; c6 d8 X6 a 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
S6 ^) ^- l& s& u% U 版本:2008版本/2010版本) o/ {: q' c* ~+ t
搭建图:(详细搭建图文件比较大,截效果图如下)% s L) A. J$ j) P! W# o' ?/ O
5 c+ Q) H0 D9 p1 j
图1 2010版本 图2 2008版本
4 a. q/ t4 V/ U" e, _ 下载地址:http://tiltedtwister.com/download.html
) ]; \- v/ w& \' S8 ?0 i 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
2 J( D: o- Q+ s6 n/ ^/ c& M
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
4 M, ^9 L9 f" @5 J2 U/ q1 I 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力), j' b1 ~6 C( m9 b
缺点:由于结构问题,目前的结构设计不稳定," t5 G# F6 S. E' P; G* `; j
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟$ o: e9 V9 e& b8 `. p' b! d* O+ ~
$ z6 Y4 Y& A+ L" Zb.MindCuberRubikCubeSolver方案* w. k1 v: v' L( D w' \
相关网站:http://mindcuber.com/
5 H6 b5 Q* q" t6 ^$ L4 y) u* ~5 e. A 作者:David Gilday
/ [. {5 \( e5 _3 L9 r 版本:2012版本
+ L1 [$ u8 l& o; B 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
3 b; \* M2 C$ ^6 m * }; |* _4 L% P1 Z* J& x
图3 2012版本
- R; i$ R9 f. N3 t! ?9 } 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)( R7 n2 l; k! m
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
* ~2 ]) Z/ ^3 d0 H; b 优点:结构稳定,执行时间较快
: `- @3 F* B* S+ ~& ^ 缺点:) p/ Y' x$ G/ A! b9 C2 C( \3 q
性能:. J; C- t0 @- `7 d- R: J( E; Z: Y. R s/ C
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
% P% O1 d( L; e: j, Y9 F" l" r, H* A8 l! ~7 x" D
" r# `9 x/ Y# u2 K0 ?7 q
3.调试方法
. O. L G; B5 b6 a a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
/ b' M& W% q5 v0 q1 j, | b.不要急于下载代码验证,对照配置线缆连接是否正确,
: W5 v/ k( Q0 H- u1 }* N tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求2 }' Y5 ]/ \8 n' T9 O' j
- J' y& }) _$ z, _0 e1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器# t8 p- j* K4 e$ Y, Y) ~& T
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器/ G1 W1 M5 _: X7 [% F4 L' e) H: O
A =========Center motor 中央马达 A =========Center motor 中央马达; k2 T- ` u* ]
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
) o U$ b+ I0 [8 U9 [ s; Z' HC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
9 S+ n6 H5 s3 n: a0 U8 |- M' @& d
* ] j3 ~2 [5 ]$ i j两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。9 x* {& ?, g* R* o
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
1 Q& A% [1 ~0 W$ C+ ~ (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。* q+ ^8 W9 b: {+ o8 T) @
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试); W. h& ]0 I/ X J! p
/ c7 W1 C1 m! p" K; I
d.中央马达控制微调,方法如下:
3 k9 P7 I' r! V$ Q& t (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
$ W( J( u* S9 I" M4 I- T- }2 D (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
j6 ?! n! z! r5 `& p [
$ [2 n* T Q' @! R$ V/ K e.下载执行程序整个调试验证:
8 v; s1 c! t4 H5 S* P) ] (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。# I9 [) r; h) S. S, S6 F
(2)程序流程大致如下:: ^" i, r" k( J1 N) ]
tiltedtwister:针对这部分代码简要给出流程上的分析; v5 ~- o$ f+ ~9 k% u8 V I
while(true)
" }. f$ z) t3 j/ { {/ r' B6 q* D/ o* E* z
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)+ A1 w4 t @1 v4 p0 L, l; B
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
. U. z, [7 _( n ?" K# P8 c 初始化转台中央转台位置(需要手动驻停中央转台)* f3 M$ j" |- C$ J* o- \$ m! L4 \7 w: h
- O% r( N; H$ o- t
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方, T; m0 U5 K, r* ?' s4 a
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
- @0 _- L& V C8 s. a8 }/ o5 s2 s/ [0 a& v
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
3 [; U$ B3 B C if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()! A$ a! S$ u! y* |! R7 Z
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
& K' G# X A6 D/ D0 y) f% N2 u DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
# g# [0 T n* _$ {: r d WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
! N: P% \. j" A }' e9 K/ x6 g8 e& o8 J: \/ l
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
7 H1 J# _1 S( s1 n MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
% T) y$ e9 P; W5 A& U y' I 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。0 F6 t$ b& q$ l* [
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,9 [. I s. P1 q
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
9 l9 f0 I: h' x 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。6 g$ y7 q5 T. @4 L- F$ u: A
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
4 ^! `) c5 N# n* \& [ 【提示】:
( f4 y M, L! ^1 o8 p( Y1 k' g 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
- Y) ?2 z3 l) p. D8 H 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。$ e+ J+ B/ `, v2 J4 |
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
- E7 ~6 o4 r5 k! Y2 t5 U 如果魔方不标准颜色,它可能无法正确扫描。
$ U% Q. e* [3 f2 s! | [& p( z9 q0 @手动解3阶魔方必杀技方法:6 E( ^' K! P3 Q5 N7 r$ j/ ^
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
4 M/ U2 e3 Z9 o d; x; m9 J参考论坛英雄帖: - A8 Q8 P# ?5 L7 `$ z4 l
http://bbs.cmnxt.com/thread-2183-1-1.html; w3 n4 K" K- j7 l. w
0 Q% T# L4 Y, S/ |$ H7 E4 z8 C9 Phttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
. y( W* E: y3 G7 P& ]% b- [8 \
( g/ F* {6 O' g/ B# _' phttp://bbs.cmnxt.com/thread-7443-1-1.html9 d; ~1 q% \' e) D! ^4 A( N
& t$ g$ _# X' X1 v. ^http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580! R M& a$ e8 N! b
" `" R# c% ~% V1 m* j- phttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
( v$ g: I, s; v$ d+ H0 Y ~% ^
! k0 h; P' K! ?3 `http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
# I$ S6 _7 t2 v& q: |. O4 v- N$ v
高端设计英雄帖:# K$ Z! m [* I4 p1 |
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647" o+ {! N) J" j7 d3 B9 }" }
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
$ q7 k2 R r8 b3 [) I' N0 [1 z8 B8 I8 _, L. M! N1 |
1 Y7 j1 [5 n# [, x
|
|