GitHub-Xuming / robot_dog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

开源四足机器狗

开源资料说明

  • 硬件资料

Hardware/Model目录包含所有零件模型文件

  • 软件资料

Software/Linux目录为上位机控制软件
Software/STM32目录为单片机程序

B站视频地址

https://www.bilibili.com/video/BV1pX4y1D7ny/?spm_id_from=333.999.0.0&vd_source=0faaa576aab24c3941312dbfca00fb1c

机械结构设计

1.整机由12自由度四足机器狗以及一台6轴机械臂组成,四足机器人腿部采用了五连杆机构,之所以采用这样的结构,源于五连杆机构具有更大的承载  
能力以及更好的刚性,但是也有它的缺点,运动范围相对串联腿小,不能做太大幅度动作,这个版本先使用并联腿,后面可以优化为串联结构!        
2.五连杆两摆动臂采用浮动设计,中间加入减震弹簧,能减少对电机的冲击  
3.腿部外伸自由度使用同步轮减速,减速比2.4,可以加大转矩以及减小电机间隙对输出的影响
4.机身主要由两条碳纤维方管作为骨架支撑整个身体,其他运动部件以它为基准
5.机械臂连杆使用碳纤维圆管连接
6.机械臂末端安装机械爪,夹爪有弹簧缓冲结构  

关于舵机

1.机器狗使用12个mg958舵机,在对比多款舵机后,这个舵机是我认为性价比最高的,6.6V供电实测堵转扭矩能到18kg/cm,堵转电流5A,  
响应速度也很OK,具体没测。6.6V供电电压由10个5A的降压模块而来,因舵机功率较大,所以受力较大的舵机都单独配一个降压模块,  
这样一来整机的承载能力还是很可观的,具体可观看此视频:https://www.bilibili.com/video/BV1Lp4y1C75n/?spm_id_from=333.999.0.0&vd_source=0faaa576aab24c3941312dbfca00fb1c
2.机械臂电机使用总线舵机,某宝上买来的优必选舵机,10块钱左右一个,结合网友给出的研究资料(百度搜索白菜价舵机),成功驱动。  
末端三个自由度使用的也是优必选的较小的一款,波特率1M,协议一致。整体来说,机械臂成本还是很低的

关于电路

开源资料未提供电路图,使用到的电路都非常简单  
1.PWM舵机使用一组光耦隔离电路,总线舵机以及其他外设直接接单片机  
2.FSR力传感器串联一个分压电阻直接接单片机  
3.电源用继电器和二极管做了防反接保护,单片机和外设供电使用7805降压芯片  

关于板级通信

控制器由BeagleBoneBlack开发板作为上位机,所有控制算法在上面完成,型号为STM32f407的单片机作为下位机,运行FreeRTOS操作系统
负责外设数据采集和将上位机指令实时写到外设。  

上位机与单片机通信使用的是全双工串口,以1M波特率运行,上位机实现了阻塞队列可多线程发起对单片机的传感器数据请求,单片机收到  
请求后,立即采集数据并回复,同时上位机对当前数据进行计算,再下发控制数据到单片机... 整个过程看起开很繁琐,但是具有很高的实  
时性,通过示波器观察,从上位机下发请求开始,到上位机再次下发完成控制数据,一共花费1.7ms

关于控制算法

重点说下鸡头模式原理,主要使用坐标系变换**做到的,使用正向运动学以机器狗当前姿态为基础,将坐标系变换到机械臂坐标系,求逆矩阵,  
再做逆向运动学,大概是这样的一个思路。  

机械臂末端搭载了imu和光流传感器,都是用来测量末端的位移量,尝试了使用imu二次积分惯导解算位移,做闭环鸡头控制,无奈imu漂移太大,  
整体效果较差,最终还是使用的了开环鸡头模式

机器狗每条腿三个自由度,逆运动学使用代数法求解,可以得到三个角度,需要注意的是,有多组解,需要根据实际结构选择其中的一个,  
机器狗扭身体动作原理同机械臂控制。  

About


Languages

Language:C 91.1%Language:C++ 6.9%Language:Assembly 2.0%Language:CMake 0.1%