Skip to content
LegoFind

LegoFind

乐高机械组(Technic)、机器人资源分享。

  • Powered Up 教程
  • BOOST 教程
  • 乐高相关网站
  • 机械组套装
  • 教育及机器人套装
  • 机械组资源
  • 留言板
  • Toggle search form

《LEGO BOOST 机器人编程经典教程》中文翻译 第4章:精确地移动机器人

Posted on 2021年7月27日2021年11月7日 By 黑猫 《LEGO BOOST 机器人编程经典教程》中文翻译 第4章:精确地移动机器人无评论

第一部分 编程基础 | 第4章:精确地移动机器人

在本章中,你将利用电机模块精确地运转电机指定的角度,而不是指定的时间。你将学习什么是角度,如何去测量,如何利用角度精确地移动你的机器人指定的距离。在完成本章的学习后,你将能够更精确的控制你的机器人。

角度传感器

机器人用传感器来感知周围的世界,就像人类用五官来感知周围的世界一样。机器人的传感器将读取到的数据传给处理器(在乐高BOOST中,处理器位于集线器内),就像人类的五官将收集到信息传递给大脑一样。

乐高BOOST集线器内置两个电机,每个电机都带一个角度传感器,用来测量电机转动的角度。外部电机同样带有角度传感器。角度传感器能够测量电机转动的角度,从而使集线器能够精确地控制电机的角度和速度。下面我们来看一下这能给我们的机器人带来什么。

定距基底移动转向模块

该模块中角度值的设置方式如下图所示。

上图中三个示例的角度值分别是360度、354度和918度。请注意中心位置处显示的已完整转动的圈数,每完整转动一圈是360度。

观察角度旋转

让我们来看看如果通过设定角度值来控制马里奥,首先需要在马里奥的轮子上做个标记(如下图所示)以便于观察。在开始程序前,旋转马里奥的轮子,让刚才做好的标记位于最上方。

在轮子上安装标记

现在你可以在定距基底移动转向模块里输入不同的角度值,来观察马里奥轮子的转动角度。你可以分别尝试输入90度、180度、360度等,看看轮子的实际转动效果(结果见下图)。

移动一个精确的距离

我们已经知道如何用角度值控制轮子转动了,但是还不清楚如何控制马里奥的移动距离。比如想要让马里奥移动157毫米的话,需要转动多少角度?

想要知道这个问题的答案,需要做点数学题。下图展示了如何测量马里奥轮胎的直径D(结果是51毫米),假设我们想要马里奥移动的距离为X。

按照距离计算所需角度

移动距离与轮胎转动角度的数学关系如下(记为公式1):

轮胎转动角度 = 115 × 移动距离 ÷ 轮胎直径

有了上面的公式,我们现在可以计算前面问题的答案,即如何让马里奥精确移动157毫米。下面是计算步骤:

轮胎转动角度 = 115 × 157毫米 ÷ 51毫米 = 354

也就是说,想要让马里奥精确移动157毫米,需要在角度设定值处填写354度。如果你控制的是其他机器人,其轮胎大小可能不同,那么你需要测量其轮胎直径,并重复上面的步骤来计算所需要的角度值。

好了,现在你可能有个疑问,上面公式里的115是怎么来的?下面就简单介绍一下。

我们知道轮胎周长(记为C)的数学计算公式为:

C = π D

其中π为圆周率,为常数,其值近似为3.14,D为轮胎直径。

我们知道轮胎转动一周为360度,假设我们想要移动的距离为L,所对应的角度为A,根据等比例原则,有:

L ÷ C = A ÷ 360

由于C = πD,则

L ÷ π D = A ÷ 360

两边同时乘以360,有

A = 360 × L ÷ π D =(360 ÷ π) × (L ÷ D)

将π的近似取值3.14代入,有

A = (360 ÷ 3.14) × (L ÷ D) = 115 × (L ÷ D)

上面便是115这个数值的由来,即轮胎转动一圈的角度360除以圆周率π的近似结果。

利用角度设置转向

下面让我们利用定距基底移动转向模块使马里奥精确转向。首先,我们来编程控制马里奥原地右转(如下图所示)。D表示轮子直径,L代表两个轮子地面接触点之间的水平距离(对于马里奥,该值为120毫米)。我们需要计算出实现转向角度A所需要的角度设定值。

计算角度设定值以精确转向

下面来看下如何利用角度设定值来控制马里奥精确转向。假设我们想让马里奥转向90度,那么定距基底移动转向模块中角度值的计算公式如下(记为公式2):

电机角度值 = 转向角度A × 轮间距L ÷ 轮直径D

下面是利用公式2计算马里奥转向90度需要设定的角度值:

电机角度之 = 90(转向角度) × 120 (马里奥的轮间距) ÷ 51(马里奥的轮子直径) = 212

现在你可以利用上面的公式和计算方法,来尝试一下其他转向角度的计算,并运行看看实际效果。

好了,现在的问题是,公式2是怎么计算出来的?别急,下面就来给出答案:

上图中,转动角度A与轮胎行进轨迹K之间有如下关系:

A ÷ 360 = K ÷ (π × L )

上式中 π × L 为轮胎运动圆形轨迹的周长。假设所需的电机转动角度为Y,则有 K = πD × Y ÷ 360,将该式代入上面的等式,有

A ÷ 360 = πD × Y ÷ 360 ÷ (π × L ) = D × Y ÷ 360 ÷ L

上式等号两边同时乘以360,有

A = D × Y ÷ L

因此有

电机转动角度为Y = 转向角度 A × 轮间距 L ÷ 轮直径D

为什么实际测试中有时并没有达到预期的效果?

如果你利用前面讲到的方法对马里奥进行实际测试,你会发现有时候机器人的移动距离或转向角度并没有精确地达到你所期望的结果。原因有以下几个方面:

1、首先是摩擦力问题。摩擦力是物体运动不可或缺的因素,对于机器人来说摩擦力可以为其提供抓地力以使其能够正常移动。但另一方面,摩擦力会给机器人的移动带来一些能量损失,从而导致机器人的移动结果与计算值存在偏差。

2、轮子打滑问题。轮子打滑的结果就是轮子按照设定值转动了制定的距离,但是机器人的实际移动距离缺没有达到逾期的值。

3、地面的平整度问题。机器人在不平整的地面上的移动效果和在平地上的移动效果会有细微的区别。

转向类型转向角度电机角度设定值
1/8转向45°106
1/4转向 90° 212
1/2转向 180° 424
3/4转向 270° 636
原地转动360° 848
几个特定的转向角度和电机角度设定值的关系

上表是几个特定的转向角度和电机角度设定值的关系,方便查看,不用每次都进行计算。

机器人资源

文章导航

Previous Post: 《LEGO BOOST 机器人编程经典教程》中文翻译 第3章:了解电机模块
Next Post: 《LEGO BOOST 机器人编程经典教程》中文翻译 第5章:利用循环来重复动作

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

常用网址

Rebrickable
MOC分享网站。
LEGO官网图纸下载
官方图纸下载地址。
BrickLink
零件、人仔、套装买卖。
BrickSet
LEGO数据库网站。
Brothers-Brick
LEGO资讯第一门户。
EuroBricks
全球第一LEGO论坛。
LDraw零件
LDraw零件模型下载。
BrickOwl
零件、人仔、套装买卖。
BrickEconomy
LEGO价格及趋势分析。
Studio
LEGO虚拟拼搭软件。
BrickInsights
LEGO套装评分网站。
MecaBricks
3D在线LEGO拼搭工具。
LEGO官网设备指南
LEGO官方APP汇总。
LDD
LEGO虚拟拼搭软件。
BrickFanatics
LEGO资讯网站。
pyBricks
LEGO Python编程。
  • 乐高图纸 (76)
  • 套装评测 (13)
  • 机器人资源 (33)
  • 机器人资讯 (2)
  • 机械组资源 (28)
  • 机械组资讯 (26)
  1. 黑猫发表在乐高机械组官方套装Studio模型(IO文件)资源分享2022年12月22日

    找到一个lxf格式的,试了下Studio…

  2. 匿名发表在乐高电机性能参数(扭矩、转速)整理2022年12月19日

    棒

  3. 匿名发表在乐高机械组官方套装Studio模型(IO文件)资源分享2022年12月17日

    想要CREATOR系列10242MINI…

  4. 黑猫发表在乐高机械组官方套装Studio模型(IO文件)资源分享2022年11月17日

    没找到,只找到了71746的一些MOC的…

  5. 黑猫发表在留言板2022年11月17日

    方法有很多,看你具体的要求。可以看下下面…

Powered Up模块说明

Powered Up 教程一
流程模块
Powered Up 教程二
传感器模块
Powered Up 教程三
电机模块
Powered Up 教程四
自定义控制模块
Powered Up 教程五
声光模块
Powered Up 教程六
数据操作模块

LEGO Boost 模块说明

LEGO Boost教程一
流程模块
LEGO Boost教程二
传感器模块
LEGO Boost教程三
遥控模块模块
LEGO Boost教程四
电机模块
LEGO Boost教程五
声光模块
LEGO Boost教程六
数据操作模块
友情链接  |   DNF资料站   |   Brick4   |   孙老四   |   乐乐镇的故事

Copyright © 2023 LegoFind.

Powered by PressBook WordPress theme