八目兽四足机器人步态规划 四足坦克 哪个厉害

开源一个四足机器人 - 博客频道 - CSDN.NET
分类:arduino机器人
玩过很长一段时间单片机,一直想接触Arduino系列板子,这次如愿以偿。用去年自己3D打印机打的机器人外壳,Arduino UNO R3+舵机控制板,做的一个四足机器人。
二、爬过的坑
不得不承认Arduino确是个好东西,开发速度极快,极易上手。从开始动手到完成,只持续了3天不到,测试。调代码。封装。
整个过程里一开始就感觉会头疼的就是机器人的步态,因为之前也没接触过。实际操作起来比想象中容易的多。现在的机器人支持前进、后退、左转、右转、起立、坐下。五种步态。通过摇杆控制。
废话不多说,贴一下代码。
代码经过粗略的封装,舵机控制板有个库文件需要下载调用,别的都是手打的代码
主要封装了单足控制函数action.参数说明:foot:第N只足,Up:足举起的高度,Dis:足向前转动的角度幅度,walk:取0或1,0代表原地运动,1代表走动。主要是为了区别出起立坐下这两个原地运动。
再把action函数封装进前进、后退、左转、右转四个函数中,参数仅有t,用于设定动作间的延时,以控制整体的运动速度。
void action(int foot,int Up,int Dis,int walk=0){
switch (foot){
case 0 : hor = 0 ; ver = 4 ; verBegin=340;
case 1 : hor = 1 ; ver = 5 ; Up=-Up;verBegin=400;
case 2 : hor = 2 ; ver = 6 ; verBegin=340;
case 3 : hor = 3 ; ver = 7 ; Up=-Up;verBegin=400;
pwm.setPWM(ver, 0, verBegin + Up);
pwm.setPWM(hor, 0, SERVOBEGIN_0 + Dis);
delay(150);
pwm.setPWM(ver, 0, verBegin);
#include &Wire.h&
#include &Adafruit_PWMServoDriver.h&
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
#define SERVOMIN
#define SERVOMAX
#define SERVOBEGIN_0
#define SERVOBEGIN_1
#define SERVOBEGIN_2
#define SERVOBEGIN_3
#define SERVOBEGIN_4
#define SERVOBEGIN_5
#define SERVOBEGIN_6
#define SERVOBEGIN_7
#define SERVOBEGIN_8
#define UP 60
#define Distance 80
void setup() {
Serial.begin(9600);
pwm.begin();
pwm.setPWMFreq(60);
void action(int foot,int Up,int Dis,int walk=0){
switch (foot){
case 0 : hor = 0 ; ver = 4 ; verBegin=340;
case 1 : hor = 1 ; ver = 5 ; Up=-Up;verBegin=400;
case 2 : hor = 2 ; ver = 6 ; verBegin=340;
case 3 : hor = 3 ; ver = 7 ; Up=-Up;verBegin=400;
pwm.setPWM(ver, 0, verBegin + Up);
pwm.setPWM(hor, 0, SERVOBEGIN_0 + Dis);
delay(150);
pwm.setPWM(ver, 0, verBegin);
void sit(){
pwm.setPWM(0, 0, SERVOBEGIN_0);
pwm.setPWM(1, 0, SERVOBEGIN_1);
pwm.setPWM(2, 0, SERVOBEGIN_2);
pwm.setPWM(3, 0, SERVOBEGIN_3);
pwm.setPWM(4, 0, SERVOBEGIN_4 - 170);
pwm.setPWM(5, 0, SERVOBEGIN_5 + 170);
pwm.setPWM(6, 0, SERVOBEGIN_6 - 170);
pwm.setPWM(7, 0, SERVOBEGIN_7 + 170);
void stand(){
pwm.setPWM(0, 0, SERVOBEGIN_0);
pwm.setPWM(1, 0, SERVOBEGIN_1);
pwm.setPWM(2, 0, SERVOBEGIN_2);
pwm.setPWM(3, 0, SERVOBEGIN_3);
pwm.setPWM(4, 0, SERVOBEGIN_4);
pwm.setPWM(5, 0, SERVOBEGIN_5);
pwm.setPWM(6, 0, SERVOBEGIN_6);
pwm.setPWM(7, 0, SERVOBEGIN_7);
void prewalk0(){
pwm.setPWM(1, 0, SERVOBEGIN_0+80);
pwm.setPWM(0, 0, SERVOBEGIN_0-80);
void move0(int t){
action(1,-70,0,1);
delay(t/4);
action(3,-70,80,1);
delay(t/2);
pwm.setPWM(1, 0, SERVOBEGIN_0+80);
delay(t/8);
pwm.setPWM(3, 0, SERVOBEGIN_0);
delay(t/8);
action(0,-70,0,1);
delay(t/4);
action(2,-70,80,1);
delay(t/2);
pwm.setPWM(0, 0, SERVOBEGIN_0-80);
delay(t/8);
pwm.setPWM(2, 0, SERVOBEGIN_0);
delay(t/8);
void prewalk1(){
pwm.setPWM(2, 0, SERVOBEGIN_0-80);
pwm.setPWM(3, 0, SERVOBEGIN_0+80);
void move1(int t){
action(3,-70,0,1);
delay(t/4);
action(1,-70,-80,1);
delay(t/2);
pwm.setPWM(3, 0, SERVOBEGIN_0+80);
delay(t/8);
pwm.setPWM(1, 0, SERVOBEGIN_0);
delay(t/8);
action(2,-70,0,1);
delay(t/4);
action(0,-70,-80,1);
delay(t/2);
pwm.setPWM(2, 0, SERVOBEGIN_0-80);
delay(t/8);
pwm.setPWM(0, 0, SERVOBEGIN_0);
delay(t/8);
void turnLeft(int t){
action(1,-70,-80,1);
delay(t/2);
action(3,-70,80,1);
delay(t/2);
action(0,-70,80,1);
delay(t/2);
action(2,-70,-80,1);
delay(t/2);
pwm.setPWM(1, 0, SERVOBEGIN_0);
pwm.setPWM(3, 0, SERVOBEGIN_0);
pwm.setPWM(0, 0, SERVOBEGIN_0);
pwm.setPWM(2, 0, SERVOBEGIN_0);
delay(t*1.5);
void turnRight(int t){
action(0,-70,-80,1);
delay(t/2);
action(2,-70,80,1);
delay(t/2);
action(1,-70,80,1);
delay(t/2);
action(3,-70,-80,1);
delay(t/2);
pwm.setPWM(0, 0, SERVOBEGIN_0);
pwm.setPWM(2, 0, SERVOBEGIN_0);
pwm.setPWM(1, 0, SERVOBEGIN_0);
pwm.setPWM(3, 0, SERVOBEGIN_0);
delay(t*1.5);
void loop() {
int act=5;
if(analogRead(A1)&100){act=0;}
if(analogRead(A1)&900){act=1;}
if(analogRead(A0)&900){act=2;}
if(analogRead(A0)&100){act=3;}
if (!digitalRead(7)){
delay(20);
if(!digitalRead(7)){
switch (act){
if(p){ stand() ; prewalk0() ; delay( 150 ) ; p=0;}
else move0( 150 ) ;
if(p){ stand() ; prewalk1() ; delay( 150 ) ; p=0;}
else move1( 150 ) ;
if(p){ stand() ; delay( 150 ) ; p=0;}
else turnLeft( 350 ) ;delay(150);
if(p){ stand() ; delay( 150 ) ; p=0;}
else turnRight( 350 ) ;delay(150);
case 4 :q=!q;act=5;
delay(100);
if(q){ stand() ; p = 1 ; }
else{ sit();
三、步态说明
**如代码所见,四足的前进步态,(左前为1,右前为2,右后为3,左后为4)1,延时,3,小延时,1、3回正且迈出2,延时,4,小延时,2、4回正且迈出1…如此循环。后退步态无异。
左转步态也相似,主要都是一组交叉足先移动,再移动另一组交叉足。
期间试过四五种起始步态,有四足平行,“共”字的起始步态,晃动得很严重,猜测是因为机身较轻,且足底不平(贴了橡皮擦的切片增加摩擦力),还有就是“X”型起始步态,也不理想,最后还是确认了前两足“一”字,后两足八字。其实就是前两足用“工”,后两足用“X”。稳定性表现得最好。
当然还可以有更好的步态,机械结构上也有待改进。本人在此就暂时不深究了。**
四、配件list
1、3D打印的机器人外壳一套
2、Arduino UNO一块,Arduino摇杆模块一枚
3、16路PMW控制板一块
4、12V2A电源一枚
5、7805稳压芯片2枚,2枚散热片(用来并联,因为8个舵机同时工作+主板大约1.5A+的电流),或者别的2A输出的5V稳压芯片
6、小散热风扇,用来冷却7805的散热片
7、9g舵机8个
8、螺丝螺母:
M3*16螺丝4枚,M3防滑螺母4枚
M4*16螺丝4,
M4*25螺丝4,
M4*20螺丝4,M4防滑螺母4,M4螺母8
M3、M4尼龙垫片若干
五、视频动图
这个机器人现阶段是为了调试运动性能,算合格了,后面会加入语音识别模块、语言播放模块、传感机械手、wifi模块、打造成一个只能语音控制的机器人。比如直接对话查机票价格、天气等等,以及一些特殊提醒。当然实用性不重要,够酷够炫才是关键。
排名:千里之外
(6)(1)(2)(0)(2)(1)(1)查看: 4837|回复: 134
XDog: 四足机器人复杂地形行走(入职前最后的狂欢 ^_^)
本帖最后由 Ticl4 于
09:30 编辑
& &&&毕业后趁着入职前半个月,对XDog小型电驱动四足机器人的运动控制程序做了些改进,供大家欣赏:
& &&&到现在也就这样了,见笑。
& &&&四足机器人具有全向运动性能:前后、左右、原地转弯等;较好的地形适应能力,复杂凹凸地形如履平地(如同汽车的主动悬架)
& &&&不过四足机器人的商用及民用价值还有待挖掘
本帖子中包含更多资源
才可以下载或查看,没有帐号?
做的可以不错的
吊爆了,想看看失足会怎样
看来导师不是一般人呀
卡,,和 boston 的机器狗比较相似了,不错不错!!
牛啊,非常强大!
果然很牛逼
腿部变化很多
牛啊,和上一代的机器骡子很像了。加油啊!
冷月无声 发表于
吊爆了,想看看失足会怎样
目前,如果一条腿突然失去支撑(比如从石块上滑落),基本上不怎么影响稳定性。当然前提是落差不能太大,视频内部分片段可以看到。
还很待完善
xiaomu 发表于
卡,,和 boston 的机器狗比较相似了,不错不错!!
youku页面看可能好点,谢谢支持
cbcb128 发表于
腿部变化很多
除加了几片铁皮,别的一样的
roadking1982 发表于
牛啊,和上一代的机器骡子很像了。加油啊!
谢谢支持哈。
原本就想毕业前做到和06年BigDog类似的性能,不过现在差距还是比较很大的
做的很好啊
wangzheyu 发表于
做的很好啊
和我想象的,以及和Spot差距很大的
很不错啊,机械结构是自己做的吗
牛啊。。应该自己也补贴了不少钱吧
要工作了?去哪家公司
楼主做的非常棒,再接再厉!!
楼主做得很强大!!!
牛逼,卖套件,玩的方面很广。
楼主可以创业,入职就可惜了。现在只要有好的创意,资金很好拉的。
很不错啊,机械结构是自己做的吗
牛啊。。应该自己也补贴了不少钱吧
要工作了?去哪家公司
嗯,要滚蛋了;深圳的一家公司
楼主可以创业,入职就可惜了。现在只要有好的创意,资金很好拉的。
目前四足机器人的应用价值太小了,最多卖几台给爱好者或科研院校。
看视频,做的真不错1
深圳,dij?
前进速度可以达到多少啊??应用不广啊,不好做啊。
我就想到 “吊脚套” 抓这个机器狗。
前进速度可以达到多少啊??应用不广啊,不好做啊。
我就想到 “吊脚套” 抓这个机器狗。 ...
目前最大0.6m/s,有待改进,腿太短了;
这主意不错
给楼主一百个赞
不错!很有趣,点个赞
干得不错,同学!
这个完全可以叫机器人了,完爆国内所谓的机器人
想问一下用的是什么电机
很牛逼啊!!~~~
同问,去dji?
大牛做大狗
做的不错哦,顶起,加油
楼主方便发发一下毕业论文的名字吗。
牛人啊……顶
chengsong 发表于
想问一下用的是什么电机
yuntian 发表于
同问,去dji?
这个还是不透露了
Ticl4 发表于
这个还是不透露了
用了那些算法?
熵之矢 发表于
楼主方便发发一下毕业论文的名字吗。
上海大学,图书馆数据库还没对外公开,据说快了...
霸气侧漏 发表于
用了那些算法?
主流的足式机器人控制算法,入门请参看《Legged Robots That Balance》
Ticl4 发表于
主流的足式机器人控制算法,入门请参看《Legged Robots That Balance》
恩,看看去,我想知道你什么时候开始接触编程,你们导师或者实验室之前就开始过这方面研究吧
牛逼,啥时间能普及民 用?
恩,看看去,我想知道你什么时候开始接触编程,你们导师或者实验室之前就开始过这方面研究吧 ...
编程,我也就大一开始玩,拿得出手的也就C了...
牛逼,啥时间能普及民 用?
也就当当玩具了,离民用还很远;除非google 想大力推进
楼主六六六,毕业后楼主做哪方面啊,控制吗?
目前的商业价值可能是做一些展览了
Ticl4 发表于
电机控制器自己开发的还是买的?foc?
目前的商业价值可能是做一些展览了
是的,可以赚点小钱
本帖最后由 Ticl4 于
21:56 编辑
电机控制器自己开发的还是买的?foc?
自制,目前主流搞机器人的都自制或定制电机驱动器的,这样可以根据自己实际需要定制,性能强悍并且结构紧凑。
有传感器的FOC
PS:买得到自己需要的,我也就懒得自己去开发了(价格划算的话)
Ticl4 发表于
自制,目前主流搞机器人的都自制或定制电机驱动器的,这样可以根据自己实际需要定制,性能强悍并且结构紧 ...
额,明白了,谢谢,可不可以推荐一下foc的资料,准备自己搞一下试试,以后做的时候也用自己的。
PS:买别人的价格贵,体积大的不能忍
楼主机械部分,是自制的吗。好牛啊
quner 发表于
额,明白了,谢谢,可不可以推荐一下foc的资料,准备自己搞一下试试,以后做的时候也用自己的。
PS:买别 ...
手头没好的资料推荐, mandylion2008 以前分享了很多有意思的资料,你可以浏览下
ztlaputa 发表于
楼主机械部分,是自制的吗。好牛啊
嗯,自制,花点时间就可以了
本帖最后由 xly 于
10:51 编辑
我插,你这个比中科院那些SB做的山寨dog历害一百倍。
PS,欢迎来深圳。 深圳真的是年轻人的天堂。不过这一年房价飙升,也只能吸引些像楼主这样的高水平人才了。
xly 发表于
我插,你这个比中科院那些SB做的山寨dog历害一百倍。
PS,欢迎来深圳。 深圳真的是年轻人的天堂。不过这一 ...
我来深圳打酱油的,房价实在是太吓人了...
做的很好啊
期待商业应用
做大点,代替骡子拉沙子水泥去
好牛逼啊!请问他的腿是如何感知落差,并且补正的,求科普?
我知道整体肯定是有罗拓义一类的传感器,但是路面的平整他是不知道的腿部什么传感器?
我来深圳打酱油的,房价实在是太吓人了...
深圳不错的。有很多志同道合的朋友。可以申请下政府资金,很容易,深圳现在大力支持机器人产业。
好牛逼啊!请问他的腿是如何感知落差,并且补正的,求科普?
我知道整体肯定是有罗拓义一类的传感器,但是 ...
嗯,力传感器之类的是必须的
腿用的什么电机? 每条腿多少个电机?用的什么控制的?
第一个样品做出来,你们多少人花了多久时间?
第一个样品做出来,你们多少人花了多久时间?
这个问题,有点尴尬,视频里有说明 “All Designs: ”; 我的小硕毕业课题,就我一个人搞着玩的,到现在2年多点时间吧
可惜了,虽然这个应用前景不明朗,但如果做成产品怎么说也比去公司打工强,买的人不需要太多就可以养活你了。
要知道Sony狗2000美元一台,卖了十几万台!
NAO 10000美元一台,仅仅是展览和研究机构,就卖了几千台!
我都想直接买你的成果做产品了!开价不
给楼主点个赞,确实很厉害。
牛C和牛A之间
非常不错赞一个
控制的稳定性很好呀
这东西做得确实不错,关键是一个人完成的才是难得!!!!
厉害!!支持
厉害,赞赞赞!
帮楼主补上Raibert 大神的著名作品《Legged robots that balance》
本帖子中包含更多资源
才可以下载或查看,没有帐号?
楼主看看能不能做到载重或许就更有价值了。
牛掰,现在年轻人真是厉害!
好牛逼,好牛逼
达克罗德 发表于
可惜了,虽然这个应用前景不明朗,但如果做成产品怎么说也比去公司打工强,买的人不需要太多就可以养活你了 ...
谢谢,支持与肯定。以一己之力,想进一步完善,困难重重,所以这事先就这么着了,既来之则安之
本帖最后由 Ticl4 于
17:58 编辑
zhenglingo 发表于
楼主看看能不能做到载重或许就更有价值了。
做应用,稳定性还很有待提高
这个项目&&目前投入了多少资金
cvi670 发表于
这个项目&&目前投入了多少资金
看结构,就知道很便宜的
牛逼的一塌糊涂啊
很厉害啊,赞~
牛叉啊。完爆网上那些!
这种大狗要成为高级军事武器的节奏!
做的可以不错的
速度反应一点也不慢啊
&&一共有多少个电机啊?电机需要做位置伺服控制吗?
jingyite 发表于
一共有多少个电机啊?电机需要做位置伺服控制吗?
总共12个关节(电机),每个都有独立的伺服驱动器
很牛逼,赞~
总共12个关节(电机),每个都有独立的伺服驱动器
&&每个电机上都有减速器吗?
jingyite 发表于
每个电机上都有减速器吗?
都没有减速器
大神级人物,非常看好你!请问主控用的是什么级别的芯片呢
阿莫电子论坛, 原"中国电子开发网"&&&&&&当前位置:&gt
月销量22件
月销量12件
月销量10件
618超级返狂欢节
一淘网为您找到四足机器人产品的详细资讯,实时报价,价格行情,四足机器人商品分类,论坛问答/求购等相关产品信息。
增值电信业务经营许可证:浙B2-}

我要回帖

更多关于 四足机器人 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信