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

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

3天内不再提示

基于STM32、ESP32,钢铁侠打造机械臂设计

STM32嵌入式开发 来源:STM32嵌入式开发 2024-01-08 13:37 次阅读

机器人一直是稚晖君很感兴趣的一个方向,而在工业机器人中他认为最实用的非机械臂莫属。正巧,半年前稚晖君偶然淘到了一台二手机械臂,这让他有些激动。然而,喜悦之情还没持续多久,稚晖君就有些不开心了:在他花了一些时间将这台机械臂研究透彻,并自己开发了一套 SDK 后,感到了一点不妙:“这个手子不太行啊”。

稚晖君表示,目前市面上的机械臂都不够酷,因此决定要自己造一台很酷的机械臂,并将其取名为 Dummy(取自钢铁侠中一只名为 Dummy 的机械臂)。为此他总结了一份架构设计图(由于该图较长,视频中为滚动呈现,因此本文仅截取部分):

8e36207e-ade0-11ee-8b88-92fbcf53809c.png

硬件准备

既然是要设计一台机械臂,那就需要从硬件开始准备,毕竟无论软件算法再重要,也需要一个优质的载体才能完美呈现。

驱动方案

硬件方面,首先需要确定的就是驱动方案,其中包括人们常说机器人的三大核心部件——电机、减速器和驱动器

一般真正的工业机器人使用的电机都是无刷伺服电机,其性能各方面都非常优秀,只是它的驱动系统较为复杂,并不适用于本次机械臂极其紧凑的结构当中。相比之下,稚晖君选择了精度最高的步行电机,但它在高转速下力矩较小的缺点需要克服。

为此,稚晖君选择使用工业机械臂里面最常用的谐波减速以解决步行电机的力矩问题:其零背隙、高减速比、超小体积等优点简直是为这个项目量身打造。

电机和减速器确定后,驱动器方面稚晖君设计了一个步进电机的一体闭环驱动,以此保证驱动精度和体积最小化。

结构设计

驱动方案确定之后,紧接着就是结构设计,以下为设计图最终版本:

8e5a49c2-ade0-11ee-8b88-92fbcf53809c.png

大家有没有注意到这张图的一个亮点?

8e78f106-ade0-11ee-8b88-92fbcf53809c.png

没错,这个最终版本是第 151 版,在此之前还有 150 个版本稿,稚晖君都直呼:“这次的作品是我至今为止画过最复杂的结构设计了。”

从图中可以看到,这款机械臂一共使用了 6 个电机和 6 个谐波减速器,机身主体采用铝 CNC 加工,装饰组件则由 3D 打印制作,为了美观,控制电路上也都集成在本体上。

8e833fda-ade0-11ee-8b88-92fbcf53809c.png

稚晖君还提到,之所以这个机械臂会设计成红色,并不是为了致敬钢铁侠,而是因为“如果野生钢铁侠的机器人有颜色的话,那一定是中国红”,稚晖君自称为“野生钢铁侠”。

电路设计

整套机械臂的电路设计也非常复杂,其中涉及到了电源模块、电机驱动、计算模块、通信系统等很多方面,光各种型号的 MCU 就用了 12 个。此外,为了后续的扩展性够强,能在交互方面做一些独特创新,稚晖君在机体上还搭载了 WiFi、蓝牙、2.4G 等多种无线能力。

当然,这都是次要的,在电路方面最主要的还是主控制器和电机伺服驱动器。

先说电机伺服驱动器吧,稚晖君将其设计为电机一体式的驱动,支持 CAN 总线和功率机联,因此整套系统下来,仅需 4 根线即可将 6 个电机以及末端执行器全部连接起来。不仅如此,这款驱动器的性能也非常优秀,使用 FOC 加斩波恒流,并且添加了高精度的磁编码进行闭环控制,因此避免了像传统步进电机那样丢步的可能,在最高转速和效率方面也表现不俗。

8ea260d6-ade0-11ee-8b88-92fbcf53809c.png

“如果说驱动器是心脏的话,那控制器就是机械臂的小脑了。”控制器方面,稚晖君采用了他此前开发的机器人开发框架 REF,基于 Cortex-M4 内核的 MCU。稚晖君解释道,这是因为 M4 内核自带 FPU 和 DSP,可大幅提升此后控制算法中涉及到的大量复杂计算的效率。另外,主控制器采用冗余设计,除了主控制器 REF 外,还搭载了一个 ESP32 作为协处理器,用作 STM32 的安全备份并提供 WiFi、 蓝牙等无线能力。

总体而言,稚晖君为解决精度和性能问题,共进行了三个步骤:

第一、使用步进电机加一体闭环驱动;

第二、使用 0 背隙的谐波减速器;

第三、在后续的算法实践中进行高精度补偿。

软件走起

硬件具备了,但这只是开始,更为核心的还是软件算法部分。稚晖君指出,对于机械臂来说,最核心的软件内容在于运动学正逆解的算法以及动力学模型的实现。

8eb50d08-ade0-11ee-8b88-92fbcf53809c.png

运动学正逆解算法可以得知机械臂每个关节角度和最终末端位置之间的正逆解求解关系,而动力学模型则用于实现碰撞检测、柔性控制、力学反馈等多种功能,具体会涉及到大量十分复杂的矩阵和偏微分计算,这一点也是稚晖君在项目实现中花费时间最多的部分:“请大家记住,这些项目表面上看起来是电子和机械,其实背后全是算法和数学。”

除了核心算法外,软件部分还包括命令行和图形化的上位机手机端的 APP 以及无线示教器固件等。另外,可能还有人注意到了机械臂底座上有一个又大又圆的灯环:

8ec41d5c-ade0-11ee-8b88-92fbcf53809c.png

看起来是不是很像......没错,就是鸿蒙的 Logo,这台机械臂主控制器里运行的是 LiteOS 内核的鸿蒙系统

交互方式

软硬件兼备,那么接下来就是我们最喜闻乐见的演示环节啦!在这个部分,稚晖君展示了很多常规和非常规的交互方式,一句话总结就是:你想要的交互方式,这里都有!

利用串口

这是一种最简单的交互方式,机械臂通过 USB 连上电脑会出现一个串口号,使用者能很方便地用串口命令来控制机械臂,还可以选择多种坐标方式,例如关节坐标系、世界坐标系、工具坐标系等,而所有的姿态结算均在机械臂内部完成。

8ee97dea-ade0-11ee-8b88-92fbcf53809c.png

使用命令行

通过稚晖君设计的 REF 自带的 RPC 框架,可实现更大自由度的机械臂控制和各种参数设置。

8eff1600-ade0-11ee-8b88-92fbcf53809c.png

图形化上位机

以上两种方式对于技术人没啥问题,但对于普通人来说就有些“阴间”了。因此稚晖君还实现了对应的图形化上位机,可以在上位机中进行“傻瓜式”的拖拽交互。

同时,这种交互还是双向的,即不仅可以把动作下发给机械臂,还可以在软件中实时同步机械臂的姿态:

手动协作示教

理论上来说,以上三种交互方式已经可以满足绝大多数的使用需求了,但精益求精的稚晖君怎会止步于此:“更优雅的交互方式是什么?当然是连软件都不用打开,所见即所得。”

基于此,可在硬件设计阶段通过合理设置减速器的减速比,使得机械臂可以在保持力矩和精度的同时进行反驱,以此获得手动协作示教的功能,即只需手动教它一遍运动流程,它就可以自动学习重复:

但很多协作机器都有手动示教功能,所以稚晖君觉得这并不算炫酷,因此他设计了一个开启示教功能的特别方法:一个无线智能小终端。

8f13a8f4-ade0-11ee-8b88-92fbcf53809c.png

这个无线示教器名为 Peak,其功能非常多,可通过低功耗蓝牙和机械臂进行无感连接以实时显示机械臂的各种状态信息,还可以切换各种功能,其中就包括进入示教模式。

AR

除此之外,稚晖君还利用了较为前沿的 AR 技术作为交互方式。毕竟上位机无法展示真实环境,手动示教也比较累,而结合增强现实技术则可以真正实现“指哪打哪”的效果。

终极交互形态:像自己的手臂一样

相信在许多人看来,以上这些交互方式已经足够优秀了,但对稚晖君来说却“还没有到理想状态”、“这一切都还不够自然和优雅”。为了追求极致的交互状态,稚晖君思考了很久,最终想到了人类使用机械臂最符合直觉的方式:要跟使用自己的手臂一样。

出于这种想法,稚晖君设计了一套由双目相机、AHRS 系统、AI 算力平台、力传感和力反馈装置以及通信模组组成的装置,以此实现将人类手臂的动作直接同步到机械臂上,具体原理如下:

首先由双目相机进行目标识别和跟踪定位以及AHRS 系统进行姿态解算来获取准确的手部位置和旋转姿态(由于此过程涉及到的 AI 算法需要高效计算平台来承载,因此稚晖君选择了华为昇腾的 Atlas 边缘计算平台),然后实时的位姿信息会经过复杂的坐标换算通过无线的方式发送给机械臂,机械臂收到之后便能响应执行。

不仅如此,考虑到机械臂的实用性价值,稚晖君还为机械臂设计了一个带力反馈的微型夹爪,也就是说,使用者可随时得知夹爪正在抓取东西的力度。

8f2828e2-ade0-11ee-8b88-92fbcf53809c.png

同时,结合空间定位系统,他还设计了一个手持控制器,集成了 AHRS 装置、红外 LED 以及 PS5 手柄中号称黑科技的扳机(其中安置了一个力反馈马达,可实现对于各种物理效果的真实模拟)。

8fbec432-ade0-11ee-8b88-92fbcf53809c.png

整套设备的最终效果堪称终极交互形态:使用者不仅可以把动作实时同步到机械臂,而且还可以在控制器这边实时感受到机械臂末端抓取东西的质感。

为了展现这个效果有多惊人,稚晖君用机械臂给葡萄做了一个缝合手术:

自然,这套动作让人们亲手完成也可以,不就是缝个葡萄,但你可以人在厕所缝着客厅的葡萄吗?没错,这台机械臂可以实现远程操作,除此之外,他还可以进行软件去抖、运动范围的重映射、力矩强增强等多种人手无法达到的效果。






审核编辑:刘清

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

    关注

    210

    文章

    28180

    浏览量

    206340
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354691
  • 机械臂
    +关注

    关注

    12

    文章

    509

    浏览量

    24485
  • ESP32
    +关注

    关注

    17

    文章

    955

    浏览量

    17068

原文标题:基于STM32、ESP32,钢铁侠打造机械臂

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    真实版钢铁现世!!

    `真实版钢铁现世啦 啦 啦 啦!!两米多高三百斤重,吸引不了有高智商的,我不信还吸引不了低智商的?`
    发表于 01-21 11:25

    华为天才少年稚晖君自制机械,能给葡萄缝针的那种,成本 1 万块

    。当然,稚晖君也做了较为“阳间”的图形化方式。而较为极客的 2 两种方法:通过串口和命令行,也有的哈。这样的野生钢铁机械,究竟是怎么“炼成”的?如何
    发表于 10-11 11:29

    ESP32模组的主要特性

    WT-ESP32-DevKitC V4是一款基于ESP32的小型开发板,集WIFI+蓝牙方案于一体,板上模组绝大部分管脚均已引出,开发人员可根据实际需求,轻松通过跳线连接多种外围器件,或将开发板直接
    发表于 11-04 14:54 3933次阅读

    esp32和arduino的区别,esp32能否替代arduino

    很多创客爱好者甚至有些技术工程师在理解esp32和arduino的时候总是问一句这两块板子哪个更好用?他们可能潜意识中就觉得arduino和esp32是竞品的关系,但实际是这样吗?今天我们就深入
    发表于 06-24 17:11 2.6w次阅读

    ESP32 开发之旅② Arduino For ESP32说明

    文章目录1. Arduino Core For ESP32是什么?2.Arduino core for ESP32库3.与ESP8266库类比3.1 WiFi —— ESP
    发表于 11-13 19:51 33次下载
    <b class='flag-5'>ESP32</b> 开发之旅② Arduino For <b class='flag-5'>ESP32</b>说明

    ESP32 SDIO 使用教程

    ESP32 SDIO 使用教程本文旨在说明如何使用标准的 ESP32-WROOM-32D 开发板进行 SDIO 的通信。本文档适用于所有需要与 ESP32 SDIO slave 通信的方案
    发表于 11-23 17:51 233次下载
    <b class='flag-5'>ESP32</b> SDIO 使用教程

    ESP32系列芯片的规格

    ESP32是一款2.4GHz Wi-Fi和蓝牙组合芯片,采用TSMC超低功耗40nm设计技术它旨在实现最佳功率和射频性能,显示出鲁棒性、多功能性和灵活性在各种应用和电源场景中的可靠性。ESP32系列芯片包括ESP32-D0WDQ
    发表于 04-25 16:21 7次下载

    ESP32/STM32电源系统开源项目

    电子发烧友网站提供《ESP32/STM32电源系统开源项目.zip》资料免费下载
    发表于 07-13 09:27 13次下载
    <b class='flag-5'>ESP32</b>/<b class='flag-5'>STM32</b>电源系统开源项目

    采用Toit和ESP32打造的温控风扇

    电子发烧友网站提供《采用Toit和ESP32打造的温控风扇.zip》资料免费下载
    发表于 11-02 10:48 3次下载
    采用Toit和<b class='flag-5'>ESP32</b><b class='flag-5'>打造</b>的温控风扇

    使用Ardudino Uno来控制钢铁

    电子发烧友网站提供《使用Ardudino Uno来控制钢铁.zip》资料免费下载
    发表于 12-20 17:33 0次下载
    使用Ardudino Uno来控制<b class='flag-5'>钢铁</b><b class='flag-5'>侠</b>

    ESP32ESP32通过Internet进行通信

    电子发烧友网站提供《ESP32ESP32通过Internet进行通信.zip》资料免费下载
    发表于 06-15 09:58 4次下载
    <b class='flag-5'>ESP32</b>到<b class='flag-5'>ESP32</b>通过Internet进行通信

    钢铁NiteLite开源硬件

    电子发烧友网站提供《钢铁NiteLite开源硬件.zip》资料免费下载
    发表于 07-10 10:45 0次下载
    <b class='flag-5'>钢铁</b><b class='flag-5'>侠</b>NiteLite开源硬件

    学习单片机ESP32STM32,该如何选择?

    从行业应用来说,STM32更加广泛,不管是工业控制,汽车电子,还是消费电子。 如果项目需要用到WiFi+蓝牙功能,那用ESP32会很合适。
    发表于 03-08 15:28 1149次阅读
    学习单片机<b class='flag-5'>ESP32</b>与<b class='flag-5'>STM32</b>,该如何选择?

    嵌入式领域的未来之争,ESP32STM32谁将胜出?

    STM32比起来,ESP32内核的速度更高,处理指令更快,不过ESP32更多是面向物联网方向的芯片,内置了蓝牙和Wi-Fi。
    发表于 04-15 11:01 1728次阅读

    ESP32能取代STM32吗?哪个更好?

    不能!首先二者不存在哪个更好的问题,因为这两个芯片使用场景各不相同,在嵌入式系统领域,ESP32STM32都是常见的单片机系列,它们各自具有一定的优势和适用场景。本文主要探讨ESP32是否能够取代
    的头像 发表于 07-06 08:04 7971次阅读
    <b class='flag-5'>ESP32</b>能取代<b class='flag-5'>STM32</b>吗?哪个更好?