|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
( T3 m# ^) ?: l; |
: n- V. q n. O 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
5 b- ]* c0 `' b, D# X& a1 W1.魔方配置规格要求
7 V1 k: h7 [! C y 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:' X* d2 {0 J4 R2 p/ P( N
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
/ ~% C( b" ?/ w v0 m b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。% K5 I2 ` w. _
通过以上这样几个步骤可以排除魔方问题。$ S5 _' x- K! \0 _* ?+ x: E: k1 K
7 N9 r% S+ {+ z9 }$ U
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
) U1 n& j9 O% A: u a.tiltedtwister方案
. J4 Z |0 P4 l3 K 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
0 l1 |4 A) M/ O) i& N8 k, P) \ 版本:2008版本/2010版本
# s) S. J0 X' R* @( }( m 搭建图:(详细搭建图文件比较大,截效果图如下) K3 {6 \( ^. Y ~! K1 T- S
; P5 f8 n8 n$ a. {# W
图1 2010版本 图2 2008版本
9 c- S6 ]: C0 y Z8 n; v+ E 下载地址:http://tiltedtwister.com/download.html $ L! F3 i1 r, g
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
$ C4 \9 n$ \& E
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)0 g& e& S3 w% s* i! l
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
; T5 S8 _" g' P5 ]+ N5 X 缺点:由于结构问题,目前的结构设计不稳定,
; k- ?) Y: F+ W" V/ ^& ^+ N 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟4 ~( O2 B+ O4 T' @
) C( K. R. T7 d; V) a Sb.MindCuberRubikCubeSolver方案
) B( }1 C/ O+ N. Q! G 相关网站:http://mindcuber.com/
8 z+ ^- H6 |, S6 _7 Q 作者:David Gilday
# P+ S0 g5 ]( R1 E J) _9 ` 版本:2012版本6 u2 N; L9 U- I9 S J, S8 m
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
9 U5 l' c* M5 w8 G2 D! J; h3 V& D
1 \& }" }- X e' Z 图3 2012版本
! A, q' `$ t" O8 a- r 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
0 m! `- s- o3 q2 j& ^% _ 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
9 U9 n( l* `9 n b5 Z 优点:结构稳定,执行时间较快+ q4 x* q; Z$ P1 }2 e8 b/ ?
缺点:
q/ I/ m; [6 i% u4 m+ ?1 K 性能:, p0 f6 @; ?0 k6 x- n. f9 Z+ U( ~
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
1 z8 q6 O( B- ~3 T- t
7 I" s7 o: }. u9 o9 K( J
( U0 i, u1 T. T8 A( F' z8 Y+ q! p3.调试方法
& f. G$ x, s& d a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;2 q4 [0 K! Q7 |$ `1 v2 g
b.不要急于下载代码验证,对照配置线缆连接是否正确,
2 U5 V$ |8 u# J9 G8 F tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求( [! W- V" E m) D9 l( \9 U
/ b8 s% W; f" ~ \$ i9 O
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器7 U. }- l. _9 K. c4 \
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
0 x% K2 h$ n, VA =========Center motor 中央马达 A =========Center motor 中央马达
1 x; _8 M5 ?' [; HB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达& |' L7 @/ \4 g6 i
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
# W7 b1 ~8 N0 I. D) b& B L/ d$ F. R) T" H% Q- F8 [
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
( ]' z0 O. e8 @ t c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:8 ?, P8 o1 I; {- V& F7 j
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
* {, z, a7 |; p% G 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
{1 x- T% W" Z& f1 R+ m6 ?' R+ w& o" v3 ~/ e
d.中央马达控制微调,方法如下:7 b2 z' u7 c0 T B9 W$ ~) K
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;( a" q3 H8 O+ t3 b# K
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。( b+ Z7 T! _; X" i
- j! t7 d2 K5 f( e$ g+ `! r! Y, O$ l e.下载执行程序整个调试验证:
7 x) C) {6 g9 v. V1 U4 B' h (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。- d6 V4 K" j- _: w& k: s" V
(2)程序流程大致如下:
% P* B2 p& B0 L3 ?0 Dtiltedtwister:针对这部分代码简要给出流程上的分析
# a# G0 F2 M4 S- L while(true)
, Q5 u/ n" a: k/ K) f9 C2 A! Y2 H/ u {
! `0 c0 Z4 L) ^' r! c0 a# v: u Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
. a' H% \# o H: i/ ` 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成): M) ~: O7 D% t/ ^" w ~5 h
初始化转台中央转台位置(需要手动驻停中央转台)3 ^: U1 q W9 Q1 f1 R
: y8 X1 i) n) A! o$ C) k- `" P/ X- R
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,: `- P/ D0 T/ q1 c9 b }. P
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”9 J" m- J6 d" Q" `0 s/ M$ V7 [
& w- t2 ]+ \) Y& ^* E0 m
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框( {6 G' Y4 v6 s( X; E
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()* U2 \6 I1 y& n- I6 x) P, _0 J
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
~- U3 X1 C6 H3 ^' ]" A% T DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成 i7 p' |1 d4 B1 f- O
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
' Q1 n D# E+ g3 L" b }
0 P$ Q6 q: I7 j2 ?/ ~MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
/ R+ H& a$ i' T: C MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
: P0 }% C' Z* ?. m" X 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
" P4 M& {6 j1 @3 t: R# r% F 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
2 b# p6 q% r3 B" C/ X- E MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
) \ R' p6 N1 z7 } 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。) r5 [- P& i! H* | c& l) u
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
6 O, G! j/ y6 z/ m6 y: V% i 【提示】:8 ~2 N% x+ L7 G! z
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
% m+ D: C/ F) n* @6 w/ T 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。4 n* R8 o$ m! Q! w. g
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。- T. t% `3 K# E% c7 k
如果魔方不标准颜色,它可能无法正确扫描。
" J+ _. }1 F& c手动解3阶魔方必杀技方法:" {+ }8 V8 p0 X' g
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
/ ^# d, V6 m6 Q3 J) o参考论坛英雄帖: 4 t, ?; Q5 W# S2 q7 x! P
http://bbs.cmnxt.com/thread-2183-1-1.html- b# b& y, Y7 {
- r1 k& Y2 r) R# B- N
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82403 B; G: g( Z% [; o
7 X0 @, k" E. @( `: Q6 ]
http://bbs.cmnxt.com/thread-7443-1-1.html
3 p* `4 r4 H: e/ G4 i
( t6 Z. m, s" ]4 l7 M9 k4 e8 dhttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=35802 U1 o" c0 F& A( L
+ B& p. E3 p L! ]0 L% G7 chttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871' l) `: }. ^/ q! d1 V4 R% U
7 r3 S3 `* T8 a$ x1 i+ Rhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=78701 Q, i( @. T7 ]8 e
4 \, E( N! @! a5 Q" \9 R( D5 r
高端设计英雄帖:
+ G6 e4 }; R: r1 E; Shttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
' @" e: l8 b+ o1 X ohttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021+ f" G. b& x! s
1 ]" B! u/ o5 `, W* [* T
2 A# ^2 P$ l* f o
|
|