现在的位置: 首页 > 专题 > 机器人 > Robotics Studio > 设计中心 > 文档 > 专题 > 机器人 > 正文

Robotics Studio学习教程:第六天——改良自走型机器车

2014年04月22日 Robotics Studio, 文档, 机器人 ⁄ 转载:原文链接 ⁄ 共 1194字 ⁄ 字号 暂无评论 ⁄ 阅读 1,026 次
Microsoft Robotics Studio

Microsoft Robotics Studio

继之前分享的一篇《Robotics Studio学习教程:第五天——MSRS 概况 (Overview)》,我们将继续分享下一篇《Robotics Studio学习教程:第六天——改良自走型机器车》,让我继续开始我们学习Visual Programming Language,以及使用Robotics Studio学习开发机器人应用的道路吧。

[Robotics Studio] 改良自走型机器车[II] -- Day6

上次 Day4 的机器车虽然可以跑, 可是一旦撞到东西就翻车了.

现在我们来为它加上一点点脑筋, 先考虑撞上东西的时候就停止.

要加上这样的判断其实非常简单, 只要拖出 GenericContactSensors 服务就可以搞定.

将 GenericContactSensors 放在  Diagram 当中以后, 记得在 GenericContactSensors 的设定上使用 use a manifest , 直接使用原本就已经存在的 (GenericDifferentialDriver 在使用的) LEGO.NXT.Tribot.Simulation.Manifest.xml , 然后加上 If 判断, 从 GenericContactSensors 的通知当中选取 ContactSensorUpdate , If 判断当中输入 value.Pressed (意思就是当碰撞传感器被压下去的时候) , 然后就喂一个 AllStop 给 GenericDifferentialDriver (可以拖拉一个, 但记得选原本的, 或是从 RunL 当中复制一个出来用), 如下图:

clip_image002

恩, 看起来非常棒, 执行看看...

clip_image004

才一停下来就 Stop 了...

看样子是我们之前的程序太过于暴力 (没办法, 我应该说是 GenericDifferentialDriver 的 DriveDistance 实在是暴力停止), 以这么激烈的停止动作, 上面的机器脑袋一定被震昏了, 所以碰撞传感器就触发, 然后就...不让我们得...偿...所...望

那我们该如何解决这样的问题?

有一个简单的解决办法, 就是把 DriveDistance 的 Power 设定改为 0.5 (以一半的马力输出) , 这样就好多了. (记得总共有两个地方有用到 DriveDistance , 所以要改两次)

恩, 果然这样做了, 机器车子在转弯时还是以惊险翘孤轮的方式...但至少碰撞传感器可以正常运作了, 而且最后碰到东西也会停止.

事实上把 DriveDistance 的 Power 设定为 0.3, 将可以看到更稳定的车子行进画面, 但是跑好久欧, 而且也太像是新手驾驶了...

明天来考虑把新手驾驶改良吧.

 

让我们继续一下章教程:

《Robotics Studio学习教程:第七天——改良自走型机器车(续)》

fgx

分享到:

Wopus问答