SpotMicro 12自由度四足机器人制作(两套方案)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

老板想做个大号的四足,让我先做个小的练练手,两套方案均基于树莓派。

一、方案和确立

大致情况如下方链接所示。前面的动态图是基于ROS-kinectic系统,后面的图是树莓派原生系统。本人树莓派原生系统下尝试失败= =!(我也不知道为啥前腿就是不动 = _ =)。

spot Micro

二、(本人方案)硬件改动

1.树莓派附加组件

硬件与文章所述基本相同。
此外:
后面设置系统的时候树莓派要外接屏幕,要购买一根HDMI线,如果你有树莓派专用的小屏幕,连接即可(注意树莓派4代是microHDMI,和3代的HDMI接口不同),如果你只有普通电脑显示器,那么你需要一个特殊的VGA转microHDMI转接头,或者普通的转接头加上一个HDMI转microHDMI

2.舵机选择

舵机不建议使用MG996R,在高底盘的状态下站不起来(本人定义动态图中状态为低底盘),DS3120MGSPT5632均是很好的选择,预算足够建议一步到位 (PS:1688平台更便宜O_O)。

3.电子元件部分

和上面链接显示的差不多,一块PCA9685舵机驱动板(树莓派原生系统方案可以用两块),一个降压模块(带USB口的那个),一根USB转Type-C(树莓派3代就是转micro-usb口),杜邦线多买点,舵机线可能不够长。

4.电池

电池这里有点麻烦,这个项目有12个舵机,来回摆动这种行为又极其耗电,2200mA的电池大概能跑4分钟= =,5200mA电池(格氏)长度大约13.4cm,多了那么半厘米,所以要改动下面的几块板,买电池时可以买个报警器,5200mA其实跑不了多长时间,电池容易过放。
在这里插入图片描述
我每个零件拉长了4cm,plate文件建议直接改成能和前后板形成封闭空间的形状,如下所示,后面布线里面空间很吃紧(STL文件是不能直接改的,要自己画),电池仓我做成了半开的模式,目前的尺寸能把所有电子元件横着放进去(不改的话树莓派只能竖着放)。

在这里插入图片描述

最麻烦还是上下两块盖板,因为有孔,导致不能用软件做拉伸,我最后没盖了= =。

5.螺丝

原方案少了一些螺丝,膝盖部分的舵机需要M4*25的螺丝,共需要8个,此外还有M5的螺母,其他螺丝与原方案相同。外加两个个船型开关。

三、树莓派原生系统方案(未成功)

方案地址:GitLab四足

1.开启树莓派SSH

1.1 查找IP

将树莓派接上网线,下载软件Advanced IPscan,或者在路由器管理界面查找IP,下载putty和VNC进行远程连接。putty内输入IP,出现如下界面后输入用户名pi和密码raspberry。

在这里插入图片描述
登陆完成在上图绿色光标处输入sudo raspi-config,再根据下图开启VNC,I2C,SSH

在这里插入图片描述

在这里插入图片描述

最后用同样的用户名登陆VNC,界面如下

在这里插入图片描述

2. 机器人设置

2.1 脚本安装与硬件设置

此方案作者已经写好脚本,ctrl+T打开cmd输入执行即可,服务器再国外,下载慢,特别python组件,建议用梯子

curl https://gitlab.com/custom_robots/spotmicroai/basic-runtime/-/raw/master/utilities/self_install.sh | bash

下载完成后进行接线,如下图所示:在这里插入图片描述
白色面包板可以省去,根据引脚图进行接线即可,VCC接3.3V,0E接GPIO.0,SDA接SDA.1,SCL接SCL.1。

在这里插入图片描述

执行下方命令

i2cdetect -y 1

若连接正确,如下图所示,会显示出PCA驱动板的地址,如果是两块板会多出一个42。(板默认地址0x40,两块板要将另一块地址改成0x42,方法自行百度)。再按照spotmicroai.default代码连接舵机

在这里插入图片描述
如果这里你使用一块驱动板,进入spotmicroai.default代码,将下图所示的部分删除,并按舵机连接顺序更改接口

在这里插入图片描述

2.2 舵机校对

将舵机驱动板接上电源,建议串联上一个开关。方便第二个方案实施。
执行下方代码

cd ~/spotmicroai/calibration

./calibration.sh

出现如下图所示界面

在这里插入图片描述

按提示进行校准,记录显示的PWM值,将spotmicroai.default中的数值改成记录的值,零位如下图

在这里插入图片描述
输入下列代码,实现开机启动脚本

cd ~/spotmicroai/systemd/
./enable_spotmicroai_on_boot.sh

重启,将手柄接收器插入树莓派,按start键即可启动机器人。

四、ROS-kinectic方案

方案地址:GitHub四足

1. 系统

此方案选择了一个整合好的Ubiquity系统,无需下载Ubuntu mate再安装ROS。接上显示器,连接wifi,系统操作与ubuntu相同。

"换aliyun源(方法自行百度),再更新源"
sudo apt-get update
sudo apt-get upgrade

"安装i2c-tools"
sudo apt-get install i2c-tools

"安装vim"
sudo apt-get install vim

"安装catkin tools"
sudo apt-get install python-catkin-tools

2. 下载源码和编译源码

2.1 源码下载

"下载源码"
git clone https://gitee.com/MrTTTT/spotMicro.git

"进入 spotMicro /  spot_micro_motion_cmd  /  libs文件夹下载运动学源码"
git clone https://github.com/mike4192/spot_micro_kinematics_cpp.git

2.2 源码编译

将整个spotMicro文件夹重命名为src,新建名为walk的文件夹,并将src拖入,先在此位置打开窗口,运行chmod -R 777 * (src路径),基于所有文件可执行权限,再执行下列代码进行编译

catkin build

整个编译过程大约2min,成功后退出到桌面窗口,添加环境变量

gedit ~/.bashrc

下拉到最后最后一行,将source ~/catkin_ws/devel/setup.bash中catkin_ws改为walk

3.SSH连接并执行校准舵机代码

3.1 建立SSH

若上述过程没有出现问题的话,那么恭喜你,整个工程环境设置完成。将原先的网络断开并忘记,新建一个wifi,设置即为默认设置,笔记本连接WiFi(名称为ubiquityrobotXXXX,XXXX是MAC地址),密码为robotseverywhere。之后再笔记本上开启窗口,输入ssh ubuntu@10.42.0.1,密码为ubuntu。

3.2 运行校准舵机代码

开两个窗口,分别运行下面两段代码

cd walk/src/ros-i2cpwmboard/launch/

roslaunch i2cpwm_node.launch

cd walk/servo_move_keyboard/scripts/

rosrun servo_move_keyboard servoMoveKeyboard.py

3.2 校准舵机(可以直接用表格的默认值)

上述代码执行后会出现以下界面,输入oneServo选择舵机(0-11)进行校准
在这里插入图片描述
下载下的文件中会有一个电子表格(hip指肩部,lower leg指小腿,upper leg指大腿)
在这里插入图片描述
各个关节position1和position2如下图
1.小腿和大腿0°位
在这里插入图片描述
2.小腿90°位
在这里插入图片描述
3.大腿90°位
在这里插入图片描述
4.肩部0°位
在这里插入图片描述
5.肩部45°位
在这里插入图片描述
将position1,position2,negative max和max值输入表格,观察slope的值,互相差的不能太多。全部调完后将计算出的Calculated Angle at Center PWM的值输入 spotMicro /spot_micro_motion_cmd / config的yaml文件中。启动机器人站立模式后,关节角度可能不对,此时,若和下图差的不多,可以微调yaml文件最后一列的数值;若差的太多,建议直接拆掉相应舵机直接安装到差不多的位置,再微调。
在这里插入图片描述

4.启动机器人

开三个窗口,分别运行下面三段代码

cd walk/src/ros-i2cpwmboard/launch/

roslaunch i2cpwm_node.launch

cd walk/src/spot_micro_motion_cmd/launch/

roslaunch spot_micro_motion_cmd spot_micro_motion_cmd.launch

cd walk/src/spot_micro_keyboard_command/scripts/

rosrun spot_micro_keyboard_command spotMicroKeyboardMove.py

最后一个窗口,输入stand起立,输入walk开始原地踏步,按w增大步幅,开始前进。分享下博主的瘸腿 ^ - ^。

在这里插入图片描述

5.trot步态

源码中还有另一种步态,下载时输入

git clone -b alternate_gait https://gitee.com/MrTTTT/spotMicro.git

两种步态在代码方面的区别只有一个yaml文件,两个文件无法共存,否则walk在执行spot_micro_motion_cmd时,节点会执行trot的yaml(原因未知),了解ROS的兄弟可以尝试更改yaml文件名,launch文件和CMakeList.txt。下图是空转效果。
在这里插入图片描述

此外,trot步态对平衡要求高,建议先布线,最上面空的地方时放树莓派的(博主的树莓派被自己搞坏了 = =),建议使用两个开关,一个控制树莓派电路,一个控制舵机电路
在这里插入图片描述

  • 8
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值