线条跟随者NXT-G程序

从零开始,玩转NXT、EV3、WEDO:机器人编程新手进阶指南 机器人编程是指通过编写程序来控制机器人的行为,使其能够按照预设的指令完成各种任务。机器人编程不仅涉及计算机科学的基础知识,如算法、数据结构等,还涵盖了机械、电子、传感器等多个领域的知识。乐高机器人编程系列包括NXT、EV3和WEDO等多个版本。这些版本在功能、适用年龄和编程方式上都有所不同,但都以乐高积木为基础,通过编程控制机器人实现各种功能。NXT是乐高公司开发的第二代Mindstorms机器人,于2006年发布。 阅读详情

线条跟随者NXT-G程序

中文原文连接:Tribot Line Follower
英文原文连接: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  
 
【信息科学与工程学】【制造工程】第三十六篇 机械工程与自动化101 本系统通过多模型集成、知识增强、主动学习和持续优化等关键技术,实现了高效、高质量的自动化文本语料标注。系统采用模块化设计,支持灵活扩展,能够处理不同类型的文本数据,适应多样的标注需求。 阅读详情

相关推荐

langchain1.X学习笔记-38-RAG之文档加载器(二)pdf、word、markdown、html、文件夹

加载pdf(PyPDFLoader),加载Markdown(UnstructuredMarkdownLoader),加载HTML(UnstructuredHTMLLoader),加载File Directory(DirectoryLoader)。

qq_20466211的博客 204

LEGO MINDSTORMS NXT-G

LEGO MINDSTORMS NXT-G编程指南第二版 原著:James Floyd Kelly 翻译:杨喜刚 掌握LEGO MINSTORMS机器人编程语言NXT-G

nxt2.0教材 for NXT-G

学习NXT-G的不错的教材 lego mindstorm

NXT-G简介

用户可以从不同的模块中选择,并将它们拖放到程序区域中,然后连接它们以创建程序的逻辑流程。这些模块包括机器人的各种传感器和执行器,如触摸传感器、颜色传感器、电机和显示屏。总之,NXT-G是一种易于学习和使用的编程语言,适用于初学者和儿童,用于控制LEGO Mindstorms EV3机器人。它提供了图形化编程界面和丰富的模块库,使用户可以轻松地创建机器人程序NXT-G还具有一系列内置的程序块,用于完成常见的任务,如移动机器人、检测物体和显示信息。它还可以与其他传感器和执行器进行集成,以实现更多的功能。

gyvfhv的博客 355

第一个NXT-G程序

NULL 博文链接:https://jxb8901.iteye.com/blog/1315080

M8HeadlessFirmware FX命令大全:10个提升编曲效率的必备命令技巧

M8HeadlessFirmware FX命令 是 M8 追踪器(Tracker)用户提升编曲效率的秘密武器。M8HeadlessFirmware 是运行在 Teensy 4.1 开发板上的 M8 预编译固件,通过 USB 连接电脑即可获得完整的 M8 编曲体验。无论你是刚接触 M8 的新手,还是已经玩了一阵子的老玩家,掌握常用 FX 命令都能让节奏、旋律和音色编排事半功倍。本文整理了 10 个最

gitblog_00618的博客 1039

单光感pid巡线_PID非常好的光感巡线思路

在这篇文章里所有的代码都不是真正的程序代码,只是作者对编程的示意,或者说是用类似程序代码的方式对编程的内容进行解释。作者希望读者能自行选择程序语言,自己完成PID控制器的编程。PID控制器是一种常用的控制技术,常用于多种机械装置(如车辆、机器人、火箭)中。用数学方式来描述PID控制器是非常复杂的。本文描述了如何在使用NXT-G编程的LEGO机器人上创建PID控制器。文中将以实例来说明如何创建PID...

weixin_36450668的博客 1030

AI智能体黑盒审计:量化评估通道反转与步骤价值分析

在人工智能领域,智能体(Agent)的决策过程常被视为黑盒,其内部评估与行动序列的可靠性是工程实践中的关键挑战。评估通道(Evaluator Channel)作为智能体调用不同评估模块的路径,其输出的一致性直接影响决策质量。当智能体在相似状态下对同一评估通道做出前后矛盾的判断时,便会产生评估通道反转(Evaluator-Channel Reversals),这通常暴露了模型逻辑不一致或状态感知不全的问题。为量化分析此类问题,可引入步骤价值(Step Value)的概念,即从轨迹中逆向估算每个动作的预期收益,

weixin_34033624的博客 348

QE(quantum-espresso)各类计算汇总

横坐标做变换x'=x*0.5292*2*pi/a, 其中a是晶格常数(认为是垂直与高对称路径面的方向,比如走g2-g3面,则a是x方向的晶格)。x是原来的坐标,x'是变换单位后的坐标。----在构造 ε₂ 时,价带 → 导带跃迁的 δ 函数被替换为宽度为 intersmear 的高斯/洛仑兹函数。----带内主要出现在金属系统(自由电子或接近费米面的跃迁)。其中X0就是求出的价带顶二阶导数值,a为晶格常数值(求G-X方向就是晶格常数a,求G-Y方向就是晶格常数b).则m*=1/(2*C)m0。

weixin_51602307的博客 328

NXT编程软件比较

原文地址:http://www.teamhassenplug.org/NXT/NXTSoftware.html        以下是编写能在LEGO NXT积木上运行的程序的不同软件。该列表没有包含所有特征,但是其中包含的信息对于你选择最适合你的需要的软件提供了良好的起点。 特征 NXT-G零售版

My NXT 5350

HTML课程笔记补4

3.计对移动端的配置<meta name="viewport" content="width=device-width, initial-scale=1.0">注意:不能在<head><html><meta><script><style><title>等元素里使用。注意:不能在<head><html><meta><script><style><title>等元素里使用。注意:不可以在<head><html><meta><script><style><title>等元素中使用。

2601_96748017的博客 203

HTML 的 <meter> 元素

meter>是 HTML5 新增的语义化标签,用于展示已知范围内的标量测量值,例如磁盘使用量、CPU 占用率、投票结果、评分等。它以一个可视化的进度条/仪表形式呈现,让用户能直观地感知当前数值在整体范围中的位置。需要特别注意的是,<meter>只适合表示「已知最大值和最小值」的度量值。如果只是展示一个不确定的进度(比如文件上传进度),应该使用 <progress>元素,两者不要混淆。不同浏览器对 <meter>的默认外观略有差异。

IMPYLH的博客 281

Day 15 | 不改一行 HTML,给页面加上引号、角标和标签

本文是《30天精通CSS》专栏第 15 篇,订阅专栏不迷路。同一个效果,两种写法差在哪:一个真加了标签,一个只是画了个装饰content:伪元素的发动机进阶:attr() 让装饰读 HTML 里的值分界线:伪类单冒号,伪元素双冒号最容易翻车的地方:content 漏写,装饰凭空消失。

m0_53751797的博客 166
上一篇: 会咕咕叫的时钟
下一篇: NXTLOG四足动物(Quadruped)建造挑战赛!
mynxt
博客等级 码龄19年 3粉丝 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值