27141| 10
|
[项目] 5只脚的TARS机器人 |
本帖最后由 sicoco 于 2015-8-17 16:12 编辑 这个项目是基于大牛Osin的项目“Wall+Walking=Wallking,会走的墙就是“墙王”——Wallking ”开发的能够步行的5足机器人。我称这机器人为TARS5,因为有5只脚。 Osin的项目“Wall+Walking=Wallking,会走的墙就是“墙王”——Wallking ”的链接:https://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=12225&extra=page%3D1 TARS5的机械结构是由Osin设计并3D打印出来的,相当佩服!它身上总共10个舵机,其中5个控制每只脚的倾斜角度,另外5个控制每只脚的伸缩。脚的伸缩通过齿轮齿条传动。 控制器使用的是Arduino Uno R3,外加一块传感器扩展板。 为了能够自己决定前进方向,它的正面安装了两个红外测距传感器。当检测到左侧有障碍物而右侧没有,则右转;右侧检测到障碍物而左侧没有,则左转;两侧都没有障碍物则前进;两侧都有障碍物则后退。 好了,这项目的重点是在如何让TARS5走起来这一点上。 让TARS5走起来的基本思路是:始终有3只脚在地上保持平衡,然后再用其余2只脚跟地面接触来移动。但是保持平衡用的3只脚和移动用的2只脚不是固定不变的,毕竟5只脚中只有固定的两只脚用于移动未免太无聊了一点。 接下来我来说明一下它的动作。 上图是每只脚的两种动作的轨迹,黑线是脚本身,红线是与地面接触并驱动身体移动时的脚末端的轨迹(这种动作叫什么来着?想不起来了,就叫踢吧。),蓝线是跨步时的脚末端的轨迹。为了能够前进也能够后退,需要有一个与上图水平镜像的动作,因此需要准备4种动作(顺时针踢,逆时针踢,顺时针跨,逆时针跨)。 设计好每只脚的动作之后就要设计前进,后退,左转,右转,共四种运动时每只脚的运动顺序了。 为了能够清楚地说明这些运动,首先说明如下几件事。 1. 机器人共有五只脚,因此我用1,2,3,4,5来指第几只脚。 2.这个符号指的是逆时针踢; 这个指的是顺时针踢; 这个指的是逆时针跨; 这个指的是顺时针跨。 3.举个栗子来说明: 上图是前进动作流程图中的一部分。 首先,在初始状态下,有第1,3,5脚在左侧,第2,4脚在右侧。 然后第3脚通过逆时针踢,从左侧移到了右侧。因为第3脚在正中间,因此它的逆时针踢会让机器人整体向前走一步。而在第3脚运动期间,由第1,2,4,5脚来保持平衡。 现在有第1,5脚在左侧,第2,3,4脚在右侧。 然后第2,4脚通过逆时针跨,从右侧移动到了左侧。因为第2,4脚跨步不会与地面接触,因此机器人在这一动作中不会移动。在这一运动期间,由第1,3,5脚来保持平衡。 现在有第1,2,4,5脚在左侧,第3脚在右侧。 总之就按这种读法去看下面四个动作的流程图应该就能理解了。 为了简化动作的设计,我让所有动作的初始状态都设成一样的。但是这样做的最大缺点是机器人在没有循环到初始状态之前无法改变动作。而且每个循环大概需要11秒左右,所以它的响应很慢很慢。 实际录像时前进和后退的动作与上面流程图有一点点不同,第3脚只跨步,不踢,因为测试时发现当用第3脚踢时经常不会往前走而只会转身,所以动作上稍微做了一点改变。 现在正在改进它的运动算法,使其能够不需要回到初始状态就能够改变动作。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed