历史上的今天
返回首页

历史上的今天

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

正在发生

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

2022-10-31 来源:未知

原文引自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的仿生四足狗开发分享

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

推荐阅读

史海拾趣

ZTE高新兴(Gosuncn)公司的发展小趣事

对于J-107B型高频双头式热合机电路,网友可能提出的问题及回答如下:

问题一:J-107B型高频双头式热合机的主要工作原理是什么?

回答:J-107B型高频双头式热合机的主要工作原理是利用高频电场作用于塑料材料,使其内部分子发生极化现象,并在高频电场的快速变化下,这些被极化的分子以同样极快的速度跟随变化,从而因介电损耗产生大量的热量。这些热量聚集并达到高温,使塑料材料熔化。在熔化状态下,通过施加一定的压力,可以使两块或多块塑料熔合粘结在一起,实现高频热合的目的。

问题二:J-107B型高频双头式热合机的电路结构有哪些主要部分?

回答:J-107B型高频双头式热合机的电路结构主要包括以下几个主要部分:

  1. 高频振荡电路:这是热合机的核心部分,通常由电子管(如Fu-33中功率发射电子管)组成,用于产生高频电场。电子管通过自激振荡方式工作,利用电子管的授间电容作振荡回路的主电窖,组成考毕兹振荡器。

  2. 时间控制电路:用于控制热合的时间,通常由电子管(如6P6P电子管)和时间控制元件(如RP1和RP2调节器)组成。通过调整这些元件,可以精确地控制热合过程中的各个阶段时间,如预热时间、熔合时间和冷却时间。

  3. 电源电路:为整个热合机提供稳定的电源供应,确保高频振荡电路和时间控制电路的正常工作。电源电路需要满足一定的电压和电流要求,通常要求电源电压在190~230V范围内。

  4. 保护电路:为了防止电路过载、短路等异常情况的发生,热合机还配备了保护电路。这些电路能够在检测到异常情况时迅速切断电源,保护设备和操作人员的安全。

问题三:如何维护和保养J-107B型高频双头式热合机?

回答:为了保持J-107B型高频双头式热合机的良好性能和延长使用寿命,需要进行定期的维护和保养。以下是一些建议:

  1. 定期检查电源线和插头:确保它们没有损坏或松动,避免电源问题导致的故障。

  2. 清洁机器内部:定期清理机器内部的灰尘和杂物,保持机器内部的清洁和干燥。这有助于防止电子元件因灰尘积累而损坏。

  3. 检查电子元件:定期检查高频振荡电路和时间控制电路中的电子元件是否损坏或老化。如有需要,应及时更换以确保电路的正常工作。

  4. 调整和维护模具:模具是热合机的关键部件之一,需要定期进行调整和维护。确保模具的接合位置准确、平整,避免模具损坏导致的热合质量下降。

  5. 注意安全操作:在操作过程中,应注意安全用电和防火措施。避免在潮湿或腐蚀性气体环境下使用热合机,以防止触电或设备损坏。

  6. 定期校准:对于需要精确控制时间或温度的热合机,应定期进行校准以确保其准确性。这有助于提高热合质量和生产效率。

Deutronic Elektronik GmbH公司的发展小趣事

随着技术的不断进步和市场的扩大,Deutronic Elektronik GmbH开始寻求技术突破和业务拓展。公司加大了研发投入,推出了一系列具有创新性的电源供应器、电子模块和测试检查系统。这些产品不仅满足了客户的多样化需求,还为公司带来了显著的经济效益。同时,公司也积极拓展海外市场,逐步建立了全球销售和服务网络。

eLED.com Corp公司的发展小趣事

作为一家致力于LED行业的公司,eLED.com Corp深知LED产品对于节能减排的重要性。因此,公司始终将绿色环保理念贯穿于产品的研发、生产和销售过程中。通过采用环保材料和节能技术,eLED.com Corp的产品不仅具有出色的性能,还具备较低的能耗和较长的使用寿命。此外,公司还积极参与各类环保公益活动,推动LED行业向更加绿色、环保的方向发展。

功得(CONQUER)公司的发展小趣事

为了保持在行业中的领先地位,功得公司不断加大技术研发投入。他们与多所高校和科研机构建立合作关系,共同开展前沿技术研究。在这些合作中,功得公司取得了一系列技术突破,推出了一系列具有行业领先水平的新产品。这些技术成果不仅提升了公司的核心竞争力,也为整个电子行业的发展做出了贡献。

All Sensors公司的发展小趣事

All Sensors公司的创始人Dennis被誉为美国硅谷的传奇人物。在70年代,Dennis在硅谷成功发明了全球第一颗压力传感器,这一创新不仅奠定了All Sensors在传感器领域的领先地位,也为整个电子行业带来了新的技术革命。这颗传感器的诞生,标志着All Sensors正式踏上了传感器技术的研发之路,为后续的发展奠定了坚实的基础。

AMI [American Megatrends Inc]公司的发展小趣事

近年来,All Sensors通过与深圳电通纬创微电子股份有限公司的合作,成立了中美合资企业——深圳华美澳通传感器有限公司。这一合资企业的成立,不仅加强了All Sensors在中国市场的地位,也为其在全球范围内的业务拓展提供了有力支持。华美澳通公司利用All Sensors的专利技术,专业从事MEMS压力传感器及应用模组的研发、生产及销售,为电子行业提供了更多优质的产品和服务。

问答坊 | AI 解惑

外壳带电问题

一次在维修机器的时候,我同时碰到了机顶盒的外壳和维修台的接地端,给电了一下.测量测外壳时居然发现外壳带电,电压有50V,后来查了下资料,说外壳带电属正常现象,具体跟电路板与外壳之间的电抗Z1和外壳与地之间的电抗Z2有关,可简单理解为Z1与Z2串联,外 ...…

查看全部问答>

AVR中CPI指令是如何影响进位标志位C的?

程序如下BRLO(line 36)指令是根据进位标志C跳转的,它前面的CPI指令是如何影响到进位标志位C和零标志位Z来影响程序 流程的?r1初始值为0 avr034C:        ldi        YL, 0x5F      &nb ...…

查看全部问答>

驱动中如何区分U盘和移动硬盘

做了一个usb过滤驱动挂在磁盘驱动器类下,想问一下 应该怎样区分是移动硬盘还是U盘?…

查看全部问答>

请问 是否有 WinCE环境下的 MPEG4编码开源代码?

哪位大侠能提供一下, 另外xvid开源码需要安装direct9.0 SDK 不知是否能用于WINce环境开发!谢谢…

查看全部问答>

优化高亮度LED的使用寿命 ESD保护考虑事项

随着亮度和能效的提升,延长使用寿命已经为促进基于高亮度发光二极管(HB-LED)的固态照明设计快速发展的主要因素之一。然而,并非所有HB-LED在这些方面都旗鼓相当,制造商应用静电放电(ESD)保护的方式可能是影响HB-LED现场使用寿命的一个至关键 ...…

查看全部问答>

香水城,再请教你2个问题,cosmicc的环境st72324

问题1:I2Cms 是定义的全局变量,I2Cms 在1毫秒定时器里累加,现在的问题    I2Cms = 0;    while(I2Cms<=10)    {    }这个while根 ...…

查看全部问答>

【TI技术文章】:TI KeyStone架构支持L2及传输处理

无线技术的持续演进发展、全球无线用户的激增,以及市场对更强大数据承载能力的需求,全面催生了各种新标准的不断涌现,如宽带码分多址- 高速分组接入 (WCDMA-HSPA)、WCDMA-HSPA+ 以及长期演进技术 (LTE) 等。基于无线服务网络的数据使用呈指数级 ...…

查看全部问答>

Altera的芯片管脚被焊断了,导致芯片的AS模式不能正常下载,怎么办?

Altera的EP3C40的芯片负责下载模式选择的管脚被焊断了,导致芯片的AS模式不能正常下载,怎么办???? 因为本块板还要使用Niosii实现以太网口的收发,怎么办?????急求~~~~~…

查看全部问答>

LM3S811的PWM

其PWM有个故障输入脚,到底是从哪个脚输入的…

查看全部问答>

大家有没有注意到论坛资源中心低调上线

红色框框里面就是资源中心的连接! 在这里号召大家上传资料哦! 资料被分类了,查找起来应该比在论坛找方便多了,大家在填写标签的时候尽量详细些,这样下载查找也方便。…

查看全部问答>