历史上的今天

今天是:2025年10月31日(星期五)

正在发生

2022年10月31日 | 玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗开发分享

发布者:代码律动 来源: 未知作者: Lemontree 手机看文章 扫描二维码
随时随地手机看文章
原文引自51CTO 开源基础软件社区 《刘潇翔:基于的仿生四足狗开发分享》

作者介绍刘潇翔,现就读于南方科技大学(Southern University of Science and chnology)研一,修读的专业是智能制造与。刘潇翔在嘉立创EDA与传智教育联手举办的《仿生机器狗训练营》中脱颖而出,获特等奖。他从0-1打造了一个基于OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统的机器狗。本文将给大家分享一些他开发过程中的心得体会。开发项目简介说起机器人界的网红,那就不得不提到——“机器狗”。此前,著名机器人公司波士顿动力制造的“Spot”机器狗、国内知名科技企业蔚蓝科技自主设计研发的“阿尔法”机器狗、小米仿生四足机器人“CyberDog”都曾火爆全网。

机器狗的开发需要硬件、软件及运动行为三者达到协调,并不是一件容易的事。在这次训练营中,我从机械结构、电控硬件、控制算法、等四个方面设计并制作了一款基于传智教育Hi3861 WiFi模组主控,拥有十二自由度的桌面级四足机器狗—Puppy。

已经合仓的代码链接如下:https://gitee.com/openharmony-sig/contest/tree/master/2022_itcast_LCEDA_Open_camp/Harmony%20Puppy项目硬件清单
  • 主控:Hi3861模组

  • 关节位控:9g舵机 ---> MG90S;

  • 舵机驱动管理:PCA9685PW;

  • IMU:MPU6050;

  • 电机供电:-DC BUCK电路 ---> MP2236

  • 移动:航模物锂电池 ---> 2S-35C

项目技术过程简介
  1. 机械结构部分采用SolidWorks 2020设计,通过FDM式3D打印制造。其主要设计内容包括躯体与单腿。单腿机构采用平面四连杆构成并联腿,拥有3自由度,设计思路是尽量减轻腿部重量,并且使三个电机安装的位置紧凑集中。躯体采用模块分立结构设计,方便维护更换及升级;

  2. 电控硬件部分采用立创EDA专业版设计。关于12路舵机驱动主要由PCA9685PW管理,Hi3861模组主控,供电部分采用了一个DC-DC BUCK型降路压电路,支持最大电流6A,保证电机及控制电路供电充足;

  3. 软件部分采用Clion作为编辑器,环境下编译。在实现主单腿正逆解、足端摆线轨迹规划的基础上,实现了四足机器狗的Trot小跑步态运动,姿态逆解控制等;

  4. 机器人的远程控制App基于开发,与四足机器狗之间采用了UDP协议实现。

机械结构设计思路

为了能够使机器人在三维空间中能够自由运动,首先,确定了机器人整体设计有12个自由度。

腿部结构

考虑到机器人后续的运动性能和续航,该机器人腿部结构的设计思路是,尽量减轻了腿部重量与保证单腿上三个电机的安装位置紧凑。故大腿小腿的的结构采用了并联腿结构。该并联腿的机构原理属于借鉴参考了其他开源项目,并不是完全创新。

躯体结构

在设计机器人躯体是,依照的是模块化思路,将整个躯体分解为由顶层板、底层板、左侧板、右侧板、前侧板、后侧板六部分拼接而成,然后再依次在各板块上进行安装接口与外形设计。

接口安排

四条单腿的电机安装接口分别在左侧板与右侧板上,而控制板的接口在顶层板上,移动电源设计放置在机器人腹内,四足机器人顶层板的前后侧部分挖空方便理线,顶层板尾部设计有接口,底层板前侧设计了一处舵机接口。接口的方式几乎均为镂空,另一好处可以节省材料。

结构制造

由于本人制造手段目前限制于仅FDM式3D打印机,故结构设计过程中尽量避免的平行与底面的悬空结构,故该机器人的各零部件在打印时几乎不需要支撑结构,即方便后处理步骤与节省材料。

电控硬件设计思路

主控MCU

这个不用多说,已固定为Hi3861模组。其外围电路数据手册即教学都有,非常简单。仅需要注意模组天线部分背部不要布线或挖空。

串口通讯

采用了CH340系列引脚最少的CH340N,配合接口。个人目前比较喜欢Type-C,虽然不太好焊,但对我来讲没什么问题。

舵机驱动

由于舵机数量多达12个及以上,采用PCA9685PW属常规操作了。目前也就发现一款LU9685,其没找到没太好的替代芯片。

供电电路

以一颗舵机额定运行需要5V,200mA来算,加上MCU模组及其他芯片需500mA左右来算,正常运作将近需要2.9A.故无法满足,需DC-DC BUCK型降压电路将2S锂电池降压到5V输出。MP2236支持宽电压输入,最高电压18V,最大电流6A。

控制算法设计思路

整体思路

四足机器人基本的运动控制几乎都是在实现单腿正逆解的基础上实现的。

单腿正逆解

了解到有DH建模法、几何法等方法可以实现,个人此次采用的是几何法实现。(因为DH建模时因为arn出现了很多计算上的BUG)

姿态逆解

姿态逆解即在单腿逆解基础上,通过单腿把整个躯体当做并联机构来控制,其实也就设计单腿和躯体的坐标系变换,理解相对运动即可。

步态规划

步态规划要控制的一个是足端轨迹,一个是单个步态周期中各腿的运动。首先可理解的是各腿的运动轨迹,可均采用一种规划,本项目中采用的是摆线来规划。随后主要控制的便是一个步态周期,各单腿的抬起落下,即摆动相与支撑相。本项目中仅演示了Trot步态,即对角小跑步态。对于足端轨迹是实时解算的,对角两腿向前摆动时,另外对角两腿同步向后支撑,即控制的机器狗的整体移动。包括后续的转弯,左右平移皆是一个原理。

上位机设计思路

整体思路

上位机设计在移动端,即Andorid开发实现。 采用的是UDP通信,机器人与手机连入同一个WiFi即可控制。 实现通信仅需要对齐IPV4地址与端口号即可。 App里主要需要实现WiFi通信、UI布局设计、指令设计即可。 此次主要挑战了一下在界面设计与交互上的美化,运用了圆环动画按钮,其他交互设计上也想着尽量简洁而美观,控件主要也就涉及了Button、EditText等。 此App目前还不太完善,后面会继续完善开发其他功能。遇到问题&解决办法示例

遇到问题:

Hi3861模组焊接完成后,按EN复位,串口输出为乱码。

过程:

  • 拆除WS2812B灯珠后,串口即能输出正常信息;

  • 拔下MPU6050模块后,串口即能输出正常信息。

疑似原因:

Hi3861模组烧录时,特定引脚不能外接设备。

当我一开始发现输出乱码,惯性上会首先思考MCU的焊接是否良好、串口通讯的电路是否正常、芯片供电是否正常、EN按键是否正常等问题。后来能顺利解决问题也是在检查上面所有问题后歪打正着,意外拆掉那颗WS2812灯珠后才发现复位正常了。

解决方案:

  • 拆去连接IO2引脚的WS2812B灯珠;

  • 拔下连接IO7、IO8引脚的MPU6050模块。

开发经验分享

开发过程中卡壳,先检查硬件问题,再检查软件问题

硬件问题一般比软件问题更麻烦一些,毕竟可能遇到需要重买材料,重新制板等时间成本较大的修补措施。

硬件问题检查: 一般采用控制变量法把所有的嫌疑因素逐个排除。比如,先考虑各器件的焊接是否正常(可采用蜂鸣档检测)。如果有MCU的电路先检查MCU及其外围电路,是否能够烧录程序。因为之后可通过写各种Demo小程序来快速测试其他硬件资源是否正常。

检查MCU及其外围电路是否正常,可以先观察焊接上是否有虚焊,连锡等情况。如果均无问题可接着测供电电压是否正常。同时需注意,用电端烧毁一般是电压问题,供电端烧毁一般是过大。

软件问题调试: 如果有报错信息,就去阅读报错信息来调试代码。如果语法错误就比较容易解决。如果遇到比如不亮,先检查封装或LED焊反没,检查原理图上LED是引脚电平拉高还是拉低点亮。如果遇到采用IIC通讯的屏幕无法点亮,先写简单的程序测通,比如先使屏幕点亮,再试着点亮一个点,再点亮一条线,画出一个方块,写下一个字符。各种功能齐全后在组合调试出自己想要的效果。

而且开发调试时不应该光敲代码,中间需要穿插烧录到单片机看是否能够实现效果。问题多的话尽量分阶段解决,而不是汇总到最后一起解决,不然很可能会出现找不到哪里出错的。

优质的问题获得优质的回答

提问者要多思考,如何阐述清楚自己的问题,考虑是否方便回答者能简洁地回答自己的问题,比如对方只用回答是还是不是。

比如自己的代码编译报错,如果问为什么自己的代码跑不起来,为什么自己的LED灯不亮了,这无疑很难获得自己想要的答案。因为开发的时候碰到的Bug会有千万种,但是正确的跑通道路却只有一条。如果代码报错,自己首先要去检查所报错的代码段,细化大概在哪一行出现了问题,个人先去通过搜索、调试等手段尝试能否解决。

虽然有时太具体的问题也不太好回答,比如有人问自己想用Hi3861模组开发一款能够监测室内温湿度并实现浇水的智能浇花器。这类问题涉及的内容就比较多,也不好获得自己想要的回答。调整一下的话,比如可以在问题最后加上,哪款温比较推荐,浇水用哪款电机比较合适等之类细化一些的问题。

做项目,要一边开发一边学习

想做一个项目,不像之前我们所接触的教育那样,先把一个领域全方面熟悉摸透后再去做。毕竟想摸清某个领域都是很不容易的。要明确知道自己的需求,自己想要实现什么,大概可以怎么样去实现,然后再去学习。需要用什么去学什么,需要用多少就学多少,除非自己对某方面非常感兴趣。这样才有可能快速地去完成自己的需求和实现想法。

做项目也是多做才可以更熟练,入门的话可以先跟着齐全,文档清晰的优秀开源作品复刻。做了几个后,随后就会慢慢摸索出自己如果想要实现新项目的开展思路。

写在最后我们最近正带着大家玩嗨OpenHarmony。如果你有好玩的东东,欢迎投稿,让我们一起嗨起来!有点子,有想法,有Demo,立刻联系我们:合作邮箱:zzliang@atomsource.org


原文标题:玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗开发分享

文章出处:【微信公众号:开源技术服务中心】欢迎添加关注!文章转载请注明出处。

引用地址:玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗开发分享

上一篇:立柱机器人桶装麦芽糖码垛案例
下一篇:欧姆龙继电器-欧姆龙继电器助力智能庭院服务机器人

推荐阅读

集微网消息,苹果公司将于北京时间今晚 10 点在美国召开一场新品发布会,而新一代 iPad Pro 几乎已经提前“预定”了本场发布会的主角位置。伴随着这位新一代 iPad Pro 这位“主角”一同登场的,可能还有新一代的 Apple Pencil 。据 Benjamin Gesklin 爆料称,第二代 Apple Pencil 将采用更加简约的设计,不仅移除了顶部的银环,同时还将...
现今汽车已大量使用半导体,事实上,当今每一辆新车使用超过 50 颗半导体。Bosch 发表新闻稿指出,其开发的新型碳化硅 (SiC) 芯片,将让电动交通再向前迈进一大步。Bosch 表示,未来由碳化硅所制造的芯片将会引领电动车与油电混合车控制器的电力电子技术的发展。与传统硅芯片比较,碳化硅芯片的导电性更佳,因此不但可以提高能源转换率,以热形式散...
在10月15日的一加 8T发布会上,刘作虎首次公布了一加 8T赛博朋克2077限定版的存在,这款产品将于11月4日开启预售,引发了不少加油的关注。毕竟对于一加来说,做限定版并不陌生,而且从销售数据来看,每代产品的限定版都是热销品,今年似乎只会给我们更多的惊喜。一加 8T赛博朋克2077限定版10月30日,刘作虎发微博称,一加之前出过不少合作定制产品,比...
Android平板一直有短板,比如系统缺少针对性优化导致体验差,这导致Android平板用户体验跟对手iPad相比有较大差距。为此,谷歌专门针对平板电脑等大屏设备开发了全新操作系统——Android 12L。10月28日消息,据XDA报道,在今天举行的Android开发者峰会上,谷歌正式发布Android 12L,这是一项专为平板电脑、折叠屏等大屏幕设备打造的全新操作系统。和手机...

史海拾趣

小广播
最新机器人文章
厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关:

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved