找回密码
 马上注册

QQ登录

只需一步,快速开始

搜索

[ 机器人 ] 两个轮子也不倒,DIY一个自平衡机器人

2015-11-6 08:55| 发布者: 老A | 查看: 19741 |原作者: 老吕IO |来自: 雷锋网

编者注:本项目编译自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,这样你就能看到机器人的第一视角了,挺有趣的。另外,你还可以给它搭载声纳系统,这样它就能成为躲避障碍的行家里手了。

收藏 邀请
已有8人参与

会员评论

  • 引用 21D 2017-3-27 20:06
    很不错
  • 引用 lnhuangxin 2017-2-6 14:01
    宙心科技联合华为海思,提供基于海思SOC芯片架构的智能操作系统(平台+算法),帮助消费级和行业级无人机品牌打造高性价比的智能无人机;同时“20cm2 + 28克”的SOM模组及其驱动的智能算法应用,也为无人机/机器人/的微型化和智能化的实现提供了可能
    经典方案:4K运动相机
    无 人 机
    图 传
    编码板卡
    变焦相机
    联 系 人:黄先生:联系电话:13829128151
  • 引用 lazycat 2016-2-15 10:40
    我们社团早做出来了
  • 引用 李慧峰 2016-1-30 16:22
    我也想做一个。
  • 引用 J-y 2016-1-23 00:46
    不错,很好的东西,可以量产了都。
  • 引用 aqxiaogui 2015-12-1 23:16
    不错,,送花
  • 引用 中国汉字 2015-11-12 08:35
    这个真的很不错,我想找人合作 有意向者   或者做过的请加入  QQ1319540839备注写 平衡机器人爱好者
  • 引用 中国汉字 2015-11-12 08:33
    求大神种指点我想做这个

查看全部评论>>

赞过此文的人

推荐阅读


QQ|极客迷 ( 鄂ICP备09011854号  

© 2009-2016 All Rights Reserved

GMT+8, 2017-5-24 21:24 , Processed in 0.336893 second(s), 19 queries , Gzip On, Memcache On.