斯坦福大学学生机器人俱乐部的“Extreme Mobility”团队开发了一种四足机器人Doggo,可以执行一些复杂的技巧,以及穿越具有挑战性的地形。
最重要的是,其设计具有可复用性,并且所有的文档均已开源,有能力的同学可以使用成本低廉的原料、按照设计文档DIY一台四足机器人。文末我们会附上所有相关资源链接。
团队在今年的ICRA会议中发表了用机器人实现后空翻的论文。下载地址:
https://arxiv.org/pdf/1905.04254.pdf
斯坦福大学的学生开发了Stanford Doggo,这是一种相对低成本的四足机器人,可以小跑,跳跃和翻转。
当然,这些其实是现代四足机器人的标配了。比如波士顿动力、Laikago、浙大的绝影、MIT的小狗等,都可以轻松实现。
不过Doggo最大的特点就是开源、便宜(相对而言)。几乎所有组件都可以在网上买到,开发团队预估Doggo的成本将会低于3000美元,相当于人民币2万多一点,不到一辆本田CBR400R摩托售价的一半,这其中还包括了制造和运输成本。相比而言,号称首款可商用的四足机器人Laikago,售价约20000-30000美元。
驱动每条腿的同轴机构绝对是机器人中最复杂的机械部件,也是最麻烦的。
Doggo有四个v3.5、48V ODrives,每条腿两个,安装在碳纤维侧板上。中间的2mm碳纤维板上,有一个Teensy 3.5,一个Sparkfun BNO080 IMU和一个5mW的Xbee。
Teensy通过四条独立的UART线与ODrives对话,每条线路的工作频率为500000波特。在这个板块下面,有配电板和一个Gigavac P105 Mini-Tactor继电器,所以可以使用一个外接的ESTOP开关来关闭机器人电源。Doggo还有两个1000mah 6s Tattu锂电池。
它的工作方式是在碳纤维侧板上安装了两个TMotor MN5212电机。这些电机每秒重复计算8000次,通过感应机器人外力的电机帮助确定每条腿应该施加多大的力和扭矩。
团队还加了一个3D打印轴承座,有两个轴承来固定外同轴管。如下图所示:
两个电机通过16T皮带轮和48T皮带轮之间的GT2皮带将动力传递给同轴轴,没根皮带6mm宽,间距3mm间距。
由于预算有限,团队并没有使用现成滑轮,而是使用Xometry SLS服务自己打印出来的。不过一定要明确的调整Xometry SLS服务,如果部件以一定角度打印,则由于偏角层,滑轮齿的几何形状会变形。
在滑轮上方有一个水刀铝支架以保持皮带张力,防止在高扭矩情况下跳脱。接下来,找到支架的最佳中心距离是一件非常痛苦的事情。因为电机和小滑轮之间连接处的斜坡,以及较大滑轮和轴之间连接处的斜坡,意味着顶部支架的中心距离必须比皮带供应商规定的标称中心距离(SDP-SI)大0.5mm。
这种装配的最大问题是皮带张力越高,摩擦阻力就越大。较高的摩擦意味着电动机的跟踪性能变差,并且对触摸事件等敏感性减弱。团队正在积极的研究在同轴组件中具有更平滑、更精确的机械加工滑轮和更少的倾斜。
Doggo有四条SCARA风格的2DOF腿。SCARA风格的意思是每条腿有五条连杆,并且两条上连杆是同轴驱动的。
实际的腿部连接是Big Blue Saw的水刀切割,这是一个很棒的在线服务,水射流部件已经足够精确,不需要为轴承钻孔。
由于近些年来手环的兴起,因此我也尝试部署了单片机。这里模型比较庞大,即便是功能强大的STC8A8K系列的单片机也只有64KB的内存,是远远不够的,需要进行内存扩展。此处给出我的老师提供的一种方案:
对于每个关节,在连杆上有两个彼此相邻堆叠的深沟球轴承,并且肩螺栓穿过它们并拧入相对的连杆。
而机器人的支脚是使用3D打印的两部分模具制作的硅胶片。
Doggo软件也相对比较简单。只要实现有一个状态机器在不同的行为之间翻转(如小跑,跳跃等)即可。
对于每个行为,向四个ODrive发送不同的位置命令和增益。还有一些辅助线程例如一个用于IMU测量、一个用于记录来自ODrives的遥测,另一个用于通过Xbee进行命令等。
机器人通过向四个ODrive驱动器指挥不同的正弦开环轨迹来行走、小跑、绕圈等。腿部轨迹由两个半正弦曲线组成,下图中以橙色和紫色显示。
通过改变正弦曲线的几何参数、虚拟腿部顺应性以及腿部穿过每个正弦曲线段的持续时间以产生不同的步态。
如果你也想尝试按照设计图自己制造一台Doggo,需要注意一点,那就是团队开发了一个自定义二进制UART协议来发送和接收数据。协议具体内容参阅:
https://github.com/Nate711/Doggo/blob/master/lib/ODriveArduino/ODriveArduino.cpp
“Extreme Mobility”团队领队Patrick Slade说:“我们希望提供一个任何人都可以建立的基线系统,比如说你想从事搜索和救援工作,就可以给Doggo装上传感器然后在对现有的代码进行修改,可以让它爬上岩石堆或进洞穴挖掘,或者拿东西等等。”
Extreme Mobility与斯坦福大学航空航天助理教授Zachary Manchester的机器人探索实验室合作,在第二个Stanford Doggo上测试新的控制系统。
该团队还完成了一个比Stanford Doggo大一倍的机器人,可以携带大约6公斤的设备。它的名字是Stanford Woofer。
资源链接:
GitHub project repository:
https://github.com/Nate711/StanfordDoggoProject
360 CAD:
https://a360.co/2OBxTbH
Teensy code:
https://github.com/Nate711/Doggo
ODrive fork:
https://github.com/Nate711/ODrive