0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自制平衡机器人详细教程

454398 作者:工程师吴畏 2018-09-12 10:29 次阅读

编者注:本项目编译自Makezine,来自3D Robotics设计主管Jason Short。Makezine将本项目的难度定位为:Very Difficult(非常难),够自信你也来挑战一下吧!

想要提高自己的机器人制作水平吗?那你可来对地方了。今天我们的主角ArduRoller就是一台可以自动平衡的倒立摆机器人,此外它还拥有室内外自主导航的能力。这台非传统车辆可以快速自主通过一系列障碍、转角、崎岖路面,水桶和斜坡等对它来说都小菜一碟。此外,它也是我在一年一度的SparkFun无人驾驶车辆竞赛中的参赛作品。

首先,我选择了来自3D Robotics的APM 2.5多模式自动控制系统,因为它集成了几乎所有机器人所需的传感器。此外,它构造简单,开源,而且相关软件免费,ArduPilot系统也较为成熟。对于刚上手智能机器人的人来说,这绝对是个好平台。

这款自动平衡机器人采用惯性测量装置(IMU)作为核心,该装置包括三轴速率陀螺,加速度计和磁力计,共计九个传感器,总采样速率可以达到千次∕秒,此外它还采用了方向余弦矩阵算法DCM),其搭载的数学滤波器则可更好地利用每个传感器的性能。该机器人还搭载了更高级别的代码,这样就可快速计算出机器人的实时状态(角度和转速等),以更好的保持平衡。

怎样能使机器人保持平衡?

倒立摆平衡机器人的内在特点决定了它其实是不稳定的,不过高重心的优势却给它创造了一个很大的惯性矩,从而放缓了它倾斜的速度。在操作中我们就可以利用这一特性,不断移动轮子来抵消这部分倾斜所产生的力,以保持机器人的平衡。

机器人内置软件中的一个简单的PID回路负责控制它的平衡:

比例项会探测到机器人倾斜的角度误差,随后便会换算出来回传给电机,电机就可以控制轮子来抵消这部分力,从而保持平衡。

积分项和上面的原理类似,不过它搜集的是所有角度误差的总和,从而解决重心问题。

相比前两项,微分项更加关键,少了它我们就无法控制机器人的加减速。

让它动起来

随后,这个简单的机器人就可以开始动起来了。不过平衡没能保持多久,它就因为不断加速而摔倒了。如果在过程中机器人试图调整姿态,那么它就无法继续前行了。

所以我们只好采用垂直滚动的方法来保持前进。首先,要让轮子的旋转保持一个合理的速度,这样才能产生足够抵消机器人倾斜的力。然后,在机器人角度快速变化时再提供一个补偿力,以保持它的稳定。这一算法来自于对人类的观察研究,因为人在受外力推挤时会努力保持平衡。举例来说,足球运动员在碰撞时就会收腿并倾斜身体来保持平衡。

以上两点是机器人平衡算法的关键,只有这样机器人才能走的更顺,走的更远。

自主导航

想要实现自主导航,我们要精确计算出机器人所在方位和其目的地。GPS很有用,但其精度只有几米,而机器人需要的是精确到厘米的定位准确度。

轮式编码器则可将精度提高到毫米级,同时也对GPS起到了很好的辅助。来自Pololu公司的电机则搭载了可选的霍尔效应传感器,让它可以这样工作:小型磁铁旋转着掠过传感器,这样就可以计算出车轮的速度。机器人搭载的Arduino Pro Mini也很强大,它可以读取来自编码器的每秒数千次的脉冲,然后将这些数据通过I2C接口传送给自动驾驶系统。只要知道了轮子的半径,机器人就可计算出行走的速度和里程。此外,机器人知道自己的前进方向,这样它就可以在二维空间里精确的给自己定位。GPS在整个过程中反而扮演了辅助的角色,它只要保证机器人能精确的执行这一系列动作就行。

如果在行驶中被卡住,机器人也能感觉到,它会倒转轮子行驶并稍微右转再次进行尝试。

机器人的其它控制软件,包括路径导航系统,基本都是ArduCopter上的改进版,这样我们就站在了前人的肩膀上,省下了大量的精力和时间。

别墨迹了,快自己装一个吧,3-5个小时就能搞定,总花费大约在400到500美元。下面我会列出详细的装配步骤。

第一步:准备好所有零件

Pololu有刷直流电机已经装上了编码器,此外,一个34:1的齿轮减速装置有助于提高电机的扭矩。

加装了编码器的轮胎可以完美适配4毫米的电机轴,粗犷的轮胎还可以提升机器人的越野能力,并在行进中吸收多余震动。

第二步:用3d打印机制造机身

你可以在这里找到用于3D打印的技术文档,在打印过程中我使用了MakerBot Replicator 2X 3D打印机。

第三步:安装电机

将电机装进刚刚打印出的机身中,虽然它机身挺贴合,但我还是加了点热熔胶。

第四步:连接各电子元器件

将APM控制系统与电机端罩、逻辑电平转换器和Arduino Mini 按电路图(原大图)依次连接起来。

将GPS模块和无线电遥测设备连接起来,以便机器人进行自主操作。

手动操控机器人与你的R/C接收机相连。至于PPM接收机,用APM自带的跳线连接起来就好。

用热熔胶将元器件粘在一块塑料板上,这样更容易塞进机器人。另外,自动控制系统可别装错了方向。

最后,将元器件与电机连起来,并将电路板放进基座中。

第五步:总装

将机身中部装在基座上,然后将机身上部按紧,电池就放在机身上部,然后将电源装在机器人侧面。

给机器人装轮子。

这个玻璃罩其实就是从亚马逊上买的的圣诞树吊饰,各种LED元器件发的光会点亮整个机舱。

最后,给机器人侧面装上无线电遥测设备,通过它你可以给机器人制定任务或直接对其进行操纵。

第六步:给机器人写入程序

下载ArduRoller的源代码,并使用名为ArduPilot-Arduino 的工具将其灌入APM 2.5。

下载轮式编码器的源代码,然后用Arduino IDE将其灌入Pro Mini。

想要让机器人自主执行任务,你需要下载PC版的Mission Planner,或者下载安卓版的DroidPlanner 2。

第七步:大功告成

装好机器人之后就可以尽情玩耍了,你可以用R/C遥控器来操控它,或者直接让它靠GPS自主执行任务。在Mission Planner软件上,你只需几个点击动作就可以使用谷歌地图并追踪机器人的位置、速度和行进方向等,此外你还可以运行自己的Pyrhon脚本,下载并分析任务日志等。

我也用了安卓端的Droid Planner,体验不错!

给机器人装个视频发射器和GoPro,这样你就能看到机器人的第一视角了,挺有趣的。另外,你还可以给它搭载声纳系统,这样它就能成为躲避障碍的行家里手了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    关于两轮自平衡机器人载重问题

    现在流行的自平衡两轮机器人,有人接触过吗,小弟最近想DIY一个玩玩,现在碰到了一个难点,至今没想通,这一类自平衡机器人都是能够载物的,不同的物体放在托盘上面,会影响机器人的重心偏移,应
    发表于 11-24 11:20

    怎样去制作一种球上自平衡机器人

    毕业设计——球上平衡机器人前言本次毕业设计过程中,受到过许多人的帮助,收获良多,在此将机器人整体开源,同时总结一下机器人搭建过程中遇到的坑和未来的改进方向。一、机器人原理分析首先来看成
    发表于 08-17 08:44

    基于 ATMega328p-PU 的迷你平衡机器人设计

    互联网上已经有很多平衡机器人项目,但我也想制作一个。更具体的说,我想要做一个迷你平衡机器人机器人应该从带有蓝牙连接的自制遥控器获取信息,这样我们就可以四处走动。但在内部,
    发表于 10-14 13:47

    如何设计一款球上自平衡机器人

    如何设计一款球上自平衡机器人
    发表于 02-22 07:39

    制作一个迷你平衡机器人

    我最终所做的就是使用我为迷你平衡机器人准备的相同 PCB,设计一个小型 3D 打印体并使用更大的步进电机,这样就可以完成我的想法。机器人应该从带有蓝牙连接的自制遥控器获取信息,这样我们就可以四处走动
    发表于 07-07 07:17

    平衡机器人护盾的资料分享

    描述平衡机器人护盾
    发表于 09-05 06:11

    DIY:简简单单自制平衡机器人

    DIY:简简单单自制平衡机器人
    发表于 01-18 20:40 25次下载

    迷你平衡机器人

    电子发烧友网站提供《迷你平衡机器人.zip》资料免费下载
    发表于 07-08 09:34 16次下载
    迷你<b class='flag-5'>平衡机器人</b>

    Arduino平衡机器人盾牌代码

    电子发烧友网站提供《Arduino平衡机器人盾牌代码.zip》资料免费下载
    发表于 08-15 14:36 3次下载
    Arduino<b class='flag-5'>平衡机器人</b>盾牌代码

    如何制作WiFi控制的自平衡机器人

    电子发烧友网站提供《如何制作WiFi控制的自平衡机器人.zip》资料免费下载
    发表于 10-28 11:35 12次下载
    如何制作WiFi控制的自<b class='flag-5'>平衡机器人</b>

    使用TensorFlow对自平衡机器人进行手势控制

    电子发烧友网站提供《使用TensorFlow对自平衡机器人进行手势控制.zip》资料免费下载
    发表于 11-09 11:25 0次下载
    使用TensorFlow对自<b class='flag-5'>平衡机器人</b>进行手势控制

    Magicbit的自平衡机器人

    电子发烧友网站提供《Magicbit的自平衡机器人.zip》资料免费下载
    发表于 11-24 11:15 0次下载
    Magicbit的自<b class='flag-5'>平衡机器人</b>

    基于Arduino UNO的自平衡机器人

    平衡机器人,使用带有 BluBug 和 Android 的车轮和 imu 6 轴传感器平衡机器人
    发表于 12-08 10:24 0次下载

    平衡机器人的构建

    电子发烧友网站提供《自平衡机器人的构建.zip》资料免费下载
    发表于 02-09 11:54 0次下载
    自<b class='flag-5'>平衡机器人</b>的构建

    二轮自平衡机器人开源设计

    电子发烧友网站提供《二轮自平衡机器人开源设计.zip》资料免费下载
    发表于 06-12 10:43 2次下载
    二轮自<b class='flag-5'>平衡机器人</b>开源设计