Saturday, September 16, 2006

Paper: Tribot Line Follower中文版

线条跟随者NXT-G程序
原文连接:Tribot Line Follower




















一个简单的线条跟随者程序

















上面这段程序在所有的事情维持在"可预测的"情况下运行良好。也就是说, 只要我们的航线, 或者黑线, 总是朝一个方向转: 比如一个圈。当然, 你或许会发现你的机器人总是想绕着圈朝着相同方向前进! 大问题发生在如果你的轨道, 或者黑线, 有"S"状曲线。在那里你或去发现你的机器人想朝着相反的方向或者折回到原来它来的路上! 这个问题的一个解决方案是使用更高深的编程技术。

一个更高深的线条跟随者程序

一个更复杂的线条跟随程序使用了"状态机"方法. 在这个例子里一个"Mealy"状态机,这个状态机下一个输出同时取决于机器现在的状态和输入. 机器现在的状态是弧的长度, 或者在上一个寻找线的尝试期间朝着相反方向移动的圆周. 输入, 当然, 是光线探测器的输入, 也能重设机器的状态。 算法工作如下:

1. 重设摆动变量为二。
2. 把存储在摆动变量内的值加倍。
3. 除非线已经找到, 顺时针转动存储在摆动变量内的读数。
4. 如果线找到跳至第9步。
5. 把存储在摆动变量内的值加倍。
6. 除非线已经找到, 逆时针转动存储在摆动变量内的读数。
7. 如果线找到跳至第9步。
8. 跳至第2步。
9. 在线持续被找到的状态下向前一直行驶。如果线中断了跳至第1步。


程序是用一个单一变量来存储前一个摆动的圆弧长度。每次摆动结束变量加倍。这样保证了机器人持续同时描绘逆时针和顺时针的圆周直到线被找到。当线被找到摆动变量重设为初始值二。这个程序利用了MyBlocks的优点来减少主程序中的凌乱。顺时针和逆时针摆动的程序是单独的MyBlock。加倍摆动变量值的程序也是一个MyBlock。

如同大多数的线条跟随程序, 程序的在实际中的表现相当大部分取决于马达的动力设置。我找到的能和一组新电池合理工作的设置是40%设定。在以前RCX的日子里这种类型的程序只能够使用Not Quite C (NQC) 或者其他类似程序完成。下面显示的NXT-G程序提供了一个我们能在NXT-G编程环境里走多远的好例子。

顺便提一句, NXT-G编程环境一个非常细心的功能是打印HTML文档的能力。HTML文档然后简单的被编辑来提供评论和解释信息 - 比如这篇文档。这篇文档是使用NXT-G编程环境"Print to HTML"功能生成的。额外的文字是用简单的文字编辑器添加的。

主程序


















左摆MyBlock

















右摆MyBlock















双摆弧MyBlock















参考文献
"Toeing the Line" - 一篇非常好的论文, 由九年级学生Jonathan Gray完成, 比较了几种不同的线条跟随策略。虽然为RCX写作,这篇论文提供了一个出色的进行测试和分析的例子,同时包括结果的显示。

源代码文件
Line_Follower.zip

评论, 建议或讨论发送至












Lego NXT in DickSmith

Today I saw Lego NXT in DickSmith, the price is 378 AUD, it's really a nice price.
But I only saw one on the shelf :(.

Any one can tell me the price in other shops? It would be great helpful.

Wednesday, September 06, 2006

一些乐高NXT相关的网站与博客

Brick Labs 关于乐高和其他机器人的网站
Microsoft Robotics Studio 微软的机器人控制开发软件

Amazon.com Books: lego mindstorm 亚马逊上关于乐高机器人的书

aRe Any Intelligent NXT Legos In Seattle Today? 美国西雅图地区乐高NXT爱好者网站

Atmel Corporation - Product Card NXT CPU的规格

bNXT.com | bNXT Blog 本博客首页
BrickBash :: Home 德文NXT网站,有NXT拆解图
BrickFest 2006 积木节主页

Bricx Command Center 3.3 NQC和NBC的IDE开发环境

Bryan Lego Bryan Bonahoom的NXT网站,他是MDP的一员

Coding4Fun: Introduction to Programming LEGO MINDSTORMS MSDN关于乐高编程的介绍

Concurrency Everywhere 又一个运行环境

CSSoh's Science & Creativity Shoppe 乐高机器人的又一个网站

Danny's Mindstorms Page 超级牛的乐高机器人网站,作者是MDP成员

Educational Robotics 卡耐基梅隆的机器人中心

FIRST 在青少年中组织机器人相关活动的非盈利性组织
generation5 - LEGO Mindstorms Vision Command 牛人无止境。。。

High Tech Kids [FLL/HSR Downloads] 又一个青少年机器人组织

HiTechnic Products 第三方传感器制造商

LEGO Robotics Catlin Gabel School的乐高机器人网站,内有免费视频

Index 本博客paper作者的网站
Jim's LEGO® Page 又一个爱好者的网站

Jürgen Stuber - LEGO 牛人继续出现。。。
Kevin's Lego Page 牛人永远不嫌多.....

LDraw.org :: The Central Site for the LDraw Family of LEGO® CAD Software 乐高CAD软件

LEGO NXT Education NXT教育版官方博客

LEGO Engineering - Home 乐高和Tufts大学合办的主页

Lego Hacking: The GumBrix® Part 1 | Army of Evil Robots 改造传感器

LEGO Message Boards Default 官方论坛

LEGO MINDSTORMS 官方主页

LEGO MindStorms NXT NXT遥控程序

Lego Mindstorms NXT Forum 一个NXT博客

Lego Mindstorms® 牛人,又见牛人

LEGO® MINDSTORMS® NXT - Powered by NI LabVIEW - Academic Programs - National Instruments NI的NXT主页

LEGO® NXT Projects 第三方传感器

LibNxt - NXT Hacks - Trac 我也不知道他们hack了什么。。。

Main Page - NXT-Mindstorms NXT的维基

Matthias Paul Scholz's LEGO MINDSTORMS NXT page 没有最牛,只有更牛。。。MDP成员

Michael Gasperi's LEGO Mindstorms Sensor Input Page 传感器指南

mikes lego mindstorms page in Wien 这个应该是德语吧。。。

Mike's Lego Pages MLCad LEGO CAD软件

NBC - NeXT Byte Codes NBC主页

nxtasy.org | Building a LEGO Mindstorms NXT Community Brick by Brick 非常好的NXT网站

nxtbot.com blog 官方推荐的博客

Philo's Home Page 又一个MDP成员的网站

Plasti-Bots :: Lego Mindstorms Robots 多米诺机器人

Robot C NXT第三方固件

Robotics Investigation Force Blog 一些挑战

South Pointing Things 乐高指南车

Syngress Publishing 一些乐高的书

Team Hassenplug MDP成员网站

Technic Puppy Journal 再一个牛人。。。

The Mindstorms NXT Review 一个NXT博客

The NXT STEP - Lego Mindstorms NXT Blog 又一个非常好的NXT博客

The RIF is COMING! 他们太神秘了。。。

ViaList - "NXT Bluetooth Compatibility List" 蓝牙兼容性列表

www.mindsensors.com 第三方传感器