
【训练营】基于Hi3861—OpenHarmony Puppy
简介
本项目中设计了一款基于鸿蒙Hi3861主控的十二自由度桌面级舵狗,MG90S舵机作为关节位控电机,PCA9685PW来管理16路舵机的控制。移动电源为2S航模电池,并采用BUCK型DC-DC降压电路。
简介:本项目中设计了一款基于鸿蒙Hi3861主控的十二自由度桌面级舵狗,MG90S舵机作为关节位控电机,PCA9685PW来管理16路舵机的控制。移动电源为2S航模电池,并采用BUCK型DC-DC降压电路。开源协议
:GPL 3.0
描述
更新日志
2022.7.11———
足端拓展结构设计,贴同步带增大与地面摩擦。(已添加进STL压缩文件)
2022.8.7——— **腿部结构设计改动:**
- 大腿+小腿加厚
- 足端拓展结构改动,无需同步带
- 关节处添加3×7×3mm轴承
2022.9.7———
读研中
项目推进延缓......
- 上传腿部V2.0模型
1 项目简介
本项目中设计了一款基于鸿蒙Hi3861主控的十二自由度桌面级舵狗,选择MG90S型号9g舵机作为关节位控电机,采用PCA9685PW来实现16路舵机的驱动控制,具有MPU6050六轴加速度传感器模块接口。
移动电源为2S-35C航模聚合物锂电池,电机供电部分采用以MP2236型号DC-DC芯片展开的BUCK型DC-DC降压电路,其支持宽电压输入,最高输入电压18V,最高输出电流6A。
b站视频:
OpenHarmony Puppy
2 器件选型
2.1 主控MCU:
- Hi3861:基于海思 Hi3861LV100 芯片的系统级封装模组,外观尺寸精小,支持鸿蒙嵌入式开发,可实现wifi通信。
2.2 舵机驱动管理:
- PCA9685PW:基于IIC总线通信的12bit精度,16通道的PWM波输出,最高支持16路舵机的管理。
2.3 供电稳压部分:
- 3.3V稳压LDO:SCJT1117-3.3。
- DC-DC BUCK降压电路芯片:MP2236,最高输入电压18V,最高输出电流6A。
参考教学视频:
b站:工科男孙老师 —— BUCK型DC-DC降压开关电源模块设计
2.4 额外接口:
- IIC0接口;
- IIC1接口;
- MCU串口接口;
- GPIO11~14引脚;
2.5 未调用资源:
- 六轴加速度传感器模块:MPU6050(拟打算从STM32移植MPU6050的通信代码,未完成...)
- RGB灯珠:WS2812B-Mini;
- 微型蜂鸣器:DET402G。
注:该部分焊上后,会导致按EN键后MCU输出乱码,而导致无法烧录固件。【暂未查明原因,故未调用。】
3 机械结构设计
设计软件:SolidWorks 2020
所述十二自由度四足舵狗总重量:570g
单腿采用并联腿结构,电机安装部分结构及单腿结构设计紧凑,以尽量减轻腿部重量与节省空间。
主要结构件部分均采用了FDM式3D打印,材质为PLA,大部分均可无支撑打印。
结构参考视频:
DIY一条自己的机械狗,硬件图纸开源
微雪 12自由度 WAVEGO四足
3.1 设计特点:
- 三自由度并联腿结构
- 整体12自由度
- 3D打印结构
- 尾部可安装2.4G天线模块(如小辣椒直头)
- PP端可安装电量显示模块
注:足端需要加防滑
4 单腿运动学正逆解分析
此部分可参考b站up主:灯哥开源 的十二自由度正解、逆解几何法、足端摆线轨迹生成讲解视频。
4.1 正解推导:
参考教学视频:
b站:灯哥开源 —— 机器狗12自由度正解
4.2 逆解推导:
参考教学视频:
b站:灯哥开源 —— 机器狗12自由度逆解
4.3 单大小腿机构示意图:
4.4 足端摆线轨迹生成
在数学中,摆线(Cycloid)定义:一个圆沿一条直线运动时,圆边界上一定点所形成的轨迹。
4.5 Trot小跑步态规划
Trot步态是一种动态步态,适用于中低速跑动,并且具有比较大的运动速度范围,另一个重要特征是在中等速度下的Trot步态具有最高的能量效率。这些优点使得Trot步态成为最常用的四足步态。
参考教学视频+文章:
b站:灯哥开源 —— Trot小跑步态程序
CSDN:亦乐大大 —— 四足机器人的足端轨迹规划及步态规划
Trot步态周期图:
5 软件算法设计
参考教学网址:
环境配置(Python 或C/C++)
Python开发环境:Pycharm
C/C++开发:Linux(Ubuntu)---> SSH <---(windows 10) Clion / VScode
5.1 底层驱动内容:
- PWM舵机驱动:pca9685.c、pca9685.h;
- WiFi通信配置:STA模式 + UDP通信(FreeRTOS的网络线程);
5.2 运动控制内容:
5.2.1 单腿运动学正逆解:
- 单腿正解Forward Kinematics:FKIK.c、FKIK.h ——— void FK函数
- 单腿逆解Inverse Kinematics:FKIK.c、FKIK.h ——— void IK函数
5.2.2 姿态逆解控制:
- 姿态逆解:Robot.c ——— void PosToPoint函数
- 翻滚角Roll逆解:Robot.c ——— void PosToRoll函数
- 俯仰角Pitch逆解:Robot.c ——— void PosToPitch函数
- 偏航角Yaw逆解:Robot.c ——— void PosToYaw函数
5.2.3 运动步态控制:
- 足端摆线轨迹:Trot函数里...
- Trot前后步态模式:Robot.c ——— void Trot函数
- Trot左右步态模式:Robot.c ——— void TrotRL函数
- Trot转向步态模式:Robot.c ——— void TrotTurn函数
6 上位机App设计
开发软件:Android Studio - 2021.1.1
基于Android端开发的App,其UI设计调用了Material与CircleMenu库,简约风设计。
目前菜单功共包含五部分:
* WiFi信息检测;
* Robot控制界面浏览;
* UDP协议通信控制;
* TCP协议通信控制(未开发完毕);
* 设置Setting(未开发完毕)。
参考教学视频:
b站:叫醒耳朵WakeUp —— 圆形动画按钮设计
注意:需要开启定位、通知权限,否则App无法调用Wifi相关功能。
控制界面:
7.实物图片
现存问题
1.本项目中四足机器人在卧倒状态下站立、Trot前进后退步态时后腿无力。拟猜测是由于MG90S扭矩不足、质量批次等问题。
(更换【更优秀的舵机】拟能解决问题);
2.该机器人的各单腿运动之前需要标定偏差繁琐耗时,即舵机控制精度问题。
(更换【更优秀的舵机】拟能解决问题);
3.该机器人在运动过程中有左右两侧腿高度不对等的情况,同样即是调试问题,涉及舵机精度。
(更换【更优秀的舵机】拟能解决问题);
4.该机器人中部分舵机在执行动作后疯狂抖动,即舵机质量问题或供电问题(该板应该不存在供电不足问题)。
(更换【更优秀的舵机】拟能解决问题);
5.该机器人单腿机构各螺栓连接处需容易出现装配过紧或松,而导致单腿机构松垮或难以活动的情况。目前的优化方案是手拉动机构反复活动,以破坏打印件的内部螺纹,而保证零件间相对运动顺滑。
(在单腿各关节处添加【微型轴承】拟能解决问题) √
设计图

BOM


评论