0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于OpenHarmony的仿生四足狗开发分享

电子发烧友开源社区 来源:未知 2022-12-09 09:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

说起人工智能机器人界的网红,那就不得不提到——“机器狗”。此前,著名机器人公司波士顿动力制造的“Spot”机器狗、国内知名科技企业蔚蓝科技自主设计研发的“阿尔法”机器狗、小米仿生四足机器人“CyberDog”都曾火爆全网。

机器狗的开发需要硬件、软件及运动行为三者达到协调,并不是一件容易的事,而在传智教育举办的《仿生机器狗训练营》中,特等奖获得者刘潇翔脱颖而出,他从0-1打造了一个基于OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统的机器狗,并将在本文中带来一些开发过程中的心得体会分享。

个人介绍

大家好,我是刘潇翔,现就读于南方科技大学(Southern University of Science and Technology)研一,修读的专业是智能制造与机器人。

开发项目简介

在这次训练营中,我从机械结构、电控硬件、控制算法、上位机等四个方面设计并制作了一款基于传智教育Hi3861 IoT WiFi模组主控,拥有十二自由度的桌面级四足机器狗—Puppy。

d598a6f4-775d-11ed-8abf-dac502259ad0.jpg

已经合仓的代码链接:https://gitee.com/openharmony-sig/contest/tree/master/2022_itcast_LCEDA_OpenHarmony_camp/Harmony%20Puppy

OpenHarmony学习过程

我第一次接触到嵌入式开发,还是在传智教育举办的物联网实战——智能开关训练营中。在此之前我对OpenHarmony系统了解不是很多,以为仅是运行在移动端与PC端的系统,但我还是对其充满好奇,毕竟这是为了打破技术封锁自主研发的系统。所以我也想了解OpenHarmony嵌入式开发,与常见的单片机STM32ESP32、ATmega328P这些MCU的开发有什么区别。

传智教育旗下的Hi3861 IoT WiFi模组主芯片为海思Hi3861V100,拥有完整的WiFi功能,支持采用MicropythonC语言开发。由于OpenHarmony的生态相比其他一些主流单片机,还比较单薄,所以辅助开发的相关资料搜集起来相对费力些。我总结了一下个人的学习流程,大致如下:

学习流程:

(1)搜寻并下载不熟悉芯片的硬件数据手册;

(2)参考在Gitee上开源的有关嵌入式的项目代码及文档;

(3)参考OpenHarmony开发者社区交流帖;

(4)通过各种搜索引擎(百度、搜狗、Microsoft Bing等)查找相关文章;

(5)去Bilibili搜索相关内容,碰碰运气;

(6)QQ群,碰碰运气;

(7)以上如果均未得到有效解决方案,根据已有资料,自己研究解决。

接触OpenHarmony最大的惊喜和具体的收获

要数接触OpenHarmony最大的惊喜,我认为应该是在官方提供的如何采用C语言开发的教学中提供了一种通过SSH实现在WIN10系统内编辑,在虚拟机Ubuntu系统里编译的方法,这个方法对我提供了不小的帮助。

其他惊喜与收获:

(1)传智教育Hi3861 IoT WiFi物联网模组的封装十分精致小巧,该Hi3861模组支持FreeRTOS系统,且支持用Micropython、C语言开发;

(2)初步了解OpenHarmony嵌入式开发的基本流程,并实现了个人需求的相应效果。

对于OpenHarmony系统的建议

(1)用来烧录程序的Hiburn软件无法保存偏好设置,UI设计及操作界面也有些不够清晰。比如,每次打开都要手动把烧录程序波特率115200调到921600;

(2)用来开发传智教育Hi3861物联网模组的一些基本工具库需要完善。比如,IIC通信、SPI通信、OLED屏幕、TFT屏幕、MPU6050传感器等常用模块的驱动;

(3)传智教育Hi3861模组在Linux环境下编译调试时,不方便找到报错信息。

项目技术过程分享

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

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

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

(4)机器人的远程控制App基于Android开发,与四足机器狗之间采用了UDP协议实现无线通信

项目过程中遇到的困难&解决办法

困难:

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

检测结果:

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

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

解决方案:

(1)拆去连接IO2引脚的WS2812B灯珠;

(2)拔下连接IO7、IO8引脚的MPU6050模块。

疑似原因:

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

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

d5b5c770-775d-11ed-8abf-dac502259ad0.png

项目开发过程最重要或最值得分享的心得

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

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

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

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

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

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

(2)优质的问题获得优质的回答。

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

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

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

(3)做项目,要一边开发一边学习。

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

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

接下来的开发计划

(1)完善曾经的项目

由于我对自己之前的一些作品感觉还有很多不满意、可以完善的地方,因此我计划去优化完善曾经一些老项目,包括结构设计、硬件设计、软件设计、项目文档等;

(2)开发一款电机调试器

毕竟我以后的工作很大概率会和机器人相关,预想的功能包括串口调试、CAN调试、舵机调试、总线舵机调试、直流电机调试、功率测量、屏幕显示、PC端上位机交互等。

机器人的发展前景是一片广阔无垠的星辰大海,OpenHarmony也是一样,期待刘同学能够在这两个领域同时不断深耕,并把它们灵活结合起来,创作出更多具有生活意义的作品,切实地影响改善人们的日常生活。

更多热点文章阅读

  • 最新爆料!RK3588 适配 OpenHarmony 的新进展
  • 首个OpenHarmony 5G手机适配进展
  • 移植speexdsp到OpenHarmony标准系统③
  • 移植speexdsp到OpenHarmony标准系统④
  • 九联科技Unionpi Tiger开发板体验:使用串口调试土壤温湿度传感器

提示:本文由电子发烧友社区发布,转载请注明以上来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。


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

文章出处:【微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子发烧友
    +关注

    关注

    33

    文章

    584

    浏览量

    33978
  • 开源社区
    +关注

    关注

    0

    文章

    95

    浏览量

    773

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

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    10米/秒比肩博尔特!公司成立不到一年,开发出全球跑得最快的机器

    电子发烧友网报道(文/梁浩斌)世界上跑得最快的机器来了!近日,一款机器名为“黑豹Ⅱ”的机器人在网络上爆火,官方发布的视频显示,黑豹Ⅱ的最高行走速度可以高达每秒10米,成为全球“跑得最快”的
    的头像 发表于 01-16 00:27 4746次阅读
    10米/秒比肩博尔特!公司成立不到一年,<b class='flag-5'>开发</b>出全球跑得最快的机器<b class='flag-5'>狗</b>!

    全志已开发多款RISC-V芯片,广泛用于机器、扫地机器人

    电子发烧友网综合报道 全志科技日前表示,基于RISC-V架构内核,全志科技开发了多款芯片产品,且均已实现大规模量产。此外,其芯片产品已广泛应用于扫地机器人、机器等设备,如小米仿生
    的头像 发表于 10-24 09:09 6295次阅读

    机器人看点:越疆机器人正式发布六仿生机器 智元公布机器人运动控制模型专利

    ”具身机器人平台的企业。 此前越疆机器人发布的六仿生机器是集“认知、动作、机动”三大核心能力于一体的创新产品,而且六架构既具备优于
    的头像 发表于 07-09 15:03 1729次阅读

    年出货约2万台!中国厂商主导全球机器人市场

    1.8 亿美元,出货量约 2 万台,中国厂商及消费级应用成为市场主导力量。 机器人的主要技术应用 机器人是模仿动物肢运动模式的
    的头像 发表于 07-03 00:57 8227次阅读

    川大学OpenHarmony技术俱乐部正式揭牌成立

    2025年6月9日下午,由OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会和川大学计算机学院共同举办的“川大学
    的头像 发表于 06-16 16:20 1225次阅读
    <b class='flag-5'>四</b>川大学<b class='flag-5'>OpenHarmony</b>技术俱乐部正式揭牌成立

    请问下,openharmony支持哪一款龙芯的开发板?有没有开源的龙芯的openharmony源码?

    想买个2k0300的开发板学习龙芯和openharmony,愣是没有看到提供openharmony源码的,也没与看到开源的代码。gitee上,openharmony的龙芯sig仓库也是
    发表于 04-26 13:06

    鸿蒙北向开发OpenHarmony5.0 DevEco Studio开发工具安装与配置

    本文介绍OpenHarmony5.0 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!由触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566
    的头像 发表于 03-28 18:05 1335次阅读
    鸿蒙北向<b class='flag-5'>开发</b><b class='flag-5'>OpenHarmony</b>5.0 DevEco Studio<b class='flag-5'>开发</b>工具安装与配置

    北京迅为RK3568开发OpenHarmony系统南向驱动开发内核HDF驱动框架架构

    北京迅为RK3568开发OpenHarmony系统南向驱动开发内核HDF驱动框架架构
    的头像 发表于 03-11 14:13 1557次阅读
    北京迅为RK3568<b class='flag-5'>开发</b>板<b class='flag-5'>OpenHarmony</b>系统南向驱动<b class='flag-5'>开发</b>内核HDF驱动框架架构

    【北京迅为】itop-3568 开发openharmony鸿蒙烧写及测试-第2章OpenHarmony v3.2-Beta4版本测试

    【北京迅为】itop-3568 开发openharmony鸿蒙烧写及测试-第2章OpenHarmony v3.2-Beta4版本测试
    的头像 发表于 03-05 10:53 882次阅读
    【北京迅为】itop-3568 <b class='flag-5'>开发</b>板<b class='flag-5'>openharmony</b>鸿蒙烧写及测试-第2章<b class='flag-5'>OpenHarmony</b> v3.2-Beta4版本测试

    【北京迅为】itop-3568 开发openharmony鸿蒙烧写及测试-第1章 体验OpenHarmony—烧写镜像

    【北京迅为】itop-3568 开发openharmony鸿蒙烧写及测试-第1章 体验OpenHarmony—烧写镜像
    的头像 发表于 03-04 16:31 872次阅读
    【北京迅为】itop-3568 <b class='flag-5'>开发</b>板<b class='flag-5'>openharmony</b>鸿蒙烧写及测试-第1章 体验<b class='flag-5'>OpenHarmony</b>—烧写镜像

    鸿蒙北向开发OpenHarmony4.1 DevEco Studio开发工具安装与配置

    OpenHarmony4.1 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!
    的头像 发表于 02-07 17:35 1338次阅读
    鸿蒙北向<b class='flag-5'>开发</b><b class='flag-5'>OpenHarmony</b>4.1 DevEco Studio<b class='flag-5'>开发</b>工具安装与配置

    机器人的结构、控制及运动控制

      机器人凭借其独特的地面接触方式和对复杂地形的出色适应能力,已成为自动化与机器人工程技术研究的焦点。近年来,在结构设计、运动规划和平衡控制等关键方面,机器人已取得重要进展。然
    的头像 发表于 01-20 10:15 3758次阅读
    <b class='flag-5'>四</b><b class='flag-5'>足</b>机器人的结构、控制及运动控制

    巡检机器人特点和作用是什么

    ,工作人员因空间限制难以躲避,伤亡风险极高。而巡检机器人以其独特魅力闯入人们视野。它巧妙模仿动物身体结构,拥有条灵活的“腿”,在很多场景替代了人工巡检。 一、
    的头像 发表于 01-16 17:38 1131次阅读
    <b class='flag-5'>四</b><b class='flag-5'>足</b>巡检机器人特点和作用是什么

    OpenHarmony源码编译后烧录镜像教程,RK3566鸿蒙开发板演示

    本文介绍瑞芯微主板/开发板编译OpenHarmony源码后烧录镜像的教程,触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566核处理器,树莓派卡片电脑设计,支持开
    的头像 发表于 12-30 10:08 1512次阅读
    <b class='flag-5'>OpenHarmony</b>源码编译后烧录镜像教程,RK3566鸿蒙<b class='flag-5'>开发</b>板演示

    OpenHarmony怎么修改DPI密度值?触觉智能RK3566鸿蒙开发板演示

    开源鸿蒙OpenHarmony系统下,修改DPI密度值的方法,触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566核处理器,Laval鸿蒙社区推荐开发板,已适配全
    的头像 发表于 12-24 11:46 1082次阅读
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?触觉智能RK3566鸿蒙<b class='flag-5'>开发</b>板演示