通过可穿戴外骨骼,以更灵活的方式操作你的机器人。

今天,我们将介绍一款专为控制 Mercury X1 和 Mercury B1 机械臂而设计的创新外骨骼。这种外骨骼以人类手臂的结构为蓝本,可实现直观和精确的控制。

开发这种外骨骼的动机源于人们对深度学习和机器学习等领域日益增长的兴趣。这些技术使机器人能够自主学习和执行人类任务,例如折叠衣服或做饭。为了实现这些功能,必须收集大量数据,并且必须采用一种便捷的方式来控制机械臂。设计这种外骨骼的主要目标是满足这一需求。

项目硬件介绍

大象机器人 Mercury X1
M5Stack ESP32 基础核心物联网开发套件
NVIDIA Jetson Orin Nano 开发者套件
ROS 机器人操作系统
Elephant Robotics myCobot Pro 自适应夹爪

产品介绍

Mercury X1

Mercury X1 由 Elephant Robotics 开发,是一款先进的人形机器人,旨在处理各种自动化任务。它拥有 19 个 DOF(每臂 7 个 DOF),在手术过程中提供了卓越的灵活性和适应性。Mercury X1 采用由高性能直驱电机驱动的轮式移动底座,确保在复杂环境中稳定移动,电池续航时间长达 8 小时。Mercury X1 配备了由 NVIDIA Jetson Xavier 提供支持的高性能主控制器系统,支持视觉测距、传感器融合、定位和建图、障碍物检测和路径规划的复杂算法。移动底座配备了 LiDAR、超声波传感器和 2D 视觉系统,可实现高度感知的环境交互。

外骨骼

这款创新的外骨骼专为远程控制和数据收集而设计。其结构由 2 个以人体解剖结构为蓝本的手臂组件组成,并与 Mercury X1 的双臂运动结构保持一致,可以精确模仿人类手臂运动。中心嵌入了一个 M5Stack Basic 模块,作为主控单元,提供强大的计算能力和灵活的接口。外骨骼旨在提供舒适的佩戴体验,同时确保高精度的运动跟踪和数据收集,以支持机器人操作和机器学习训练。

开发挑战

初始设计限制

第一代外骨骼安装在操作员的肩膀上。虽然这种设计看起来很有效,但在实际操作中被证明很麻烦。用户必须显着抬高手臂和肘部才能正确控制 Mercury X1,从而导致不适和效率低下。

电源和连接问题

初始版本需要直接连接到充电器,因此需要三到四根电缆连接到设备。这种设置创造了一个错综复杂的工作空间。

操作员疲劳

使用外骨骼的物理压力在操作仅 5 分钟后就变得明显,导致用户迅速疲劳。这些缺点突出了进行大量升级的必要性,并导致了改进版本的开发。

最新升级

我们目前的设计已经解决了之前的大部分痛点。新的外骨骼具有悬挂在胸部前方的手臂,并通过中心杆连接,确保两侧之间的平衡。以前对外部电源的依赖已被中央 M5Stack Basic 模块中的内置可充电电池所取代。这消除了对多个拖曳充电器的需求,从而显著减少了杂乱。现在,只需一根电缆即可将 M5Stack Basic 连接到 Mercury X1,从而高效传输数据并简化设置。

实现细节

● 操作系统:Ubuntu 20.04

● 编程语言:Python

● 使用的库:pymycobot、threading、time、serial

该程序的工作原理是从外骨骼上的磁性编码器读取数据,将电位值转换为机械臂可以解释和执行的角度。尽管代码不到 100 行,但该程序实现了控制机械臂的基本功能。

def read_data():
    while True:
        try:
            # read left robot data
            ser.write(hex_array_l)
            time.sleep(0.01)
            count = ser.in_waiting
            data = ser.read(count).hex()
            tim = time.time()
            #print("l:"+data+","+str(tim))
            if len(data) == 84 and data[0:2] == "d5" and data[-2:] == "5d":
                for i in range(7):
                    data_h = data[8 + i * 10: 10 + i * 10]
                    data_l = data[10 + i * 10: 12 + i * 10]
                    encode = int(data_h + data_l, 16)
                    # l_angle_list[i] = (encode - 2048) * 180 / 2048 if encode != 2048 else 0
                    if encode == 2048:
                        angle = 0
                    elif encode < 2048:
                        angle = -180 * (2048 - encode) / 2048
                    else:
                        angle = 180 * (encode - 2048) / 2048
                    l_angle_list[i] = angle

                button = bin(int(data[-10: -8]))[2:].rjust(4, "0")
                l_atom_list[0] = int(button[1])
                l_atom_list[1] = int(button[2])
                l_atom_list[2] = int(data[-6: -4], 16)
                l_atom_list[3] = int(data[-4: -2], 16)
                print("Left Arm Angles:", l_angle_list)

基于此基本设置,可以记录特定运动期间的关节参数并用于训练机器学习模型,从而有助于为后续算法开发收集有价值的数据。

展望

展望未来,我们设想通过触觉反馈和自适应运动算法等高级功能来增强外骨骼,以进一步弥合人类控制和机器人精度之间的差距。这些改进将为操作员提供更身临其境的体验,提供实时传感反馈,并允许在操作过程中进行更直观的调整。此外,我们计划扩展外骨骼的兼容性,以便与更广泛的机器人平台配合使用,从而在制造、医疗保健和研究等各个行业实现更广泛的应用。这一进展将支持更广泛的数据收集,并促进可以处理日益复杂任务的协作人机系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/950822.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

esp32开发笔记之一:esp32开发环境搭建vscode+ubuntu

最近想用esp32做一个物联网项目&#xff0c;踩坑N个终于有点心得&#xff0c;写下来避免和我一样的小白踩无谓的坑。 写在前面&#xff1a; 第一&#xff0c;大家一定要用linux系统作为编译工具&#xff0c;速度上是windows无法比的&#xff0c;不要因为不熟悉linux而选择win…

58. Three.js案例-创建一个带有红蓝配置的半球光源的场景

58. Three.js案例-创建一个带有红蓝配置的半球光源的场景 实现效果 本案例展示了如何使用Three.js创建一个带有红蓝配置的半球光源的场景&#xff0c;并在其中添加一个旋转的球体。通过设置不同的光照参数&#xff0c;可以观察到球体表面材质的变化。 知识点 WebGLRenderer …

【OpenCV】使用Python和OpenCV实现火焰检测

1、 项目源码和结构&#xff08;转&#xff09; https://github.com/mushfiq1998/fire-detection-python-opencv 2、 运行环境 # 安装playsound&#xff1a;用于播放报警声音 pip install playsound # 安装opencv-python&#xff1a;cv2用于图像和视频处理&#xff0c;特别是…

STM32-笔记39-SPI-W25Q128

一、什么是SPI&#xff1f; SPI是串行外设接口&#xff08;Serial Peripheral Interface&#xff09;的缩写&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且 在芯片的管脚上只占用四根线&#xff0c;节约了芯片的管脚&#xff0c;同时为…

LabVIEW四旋翼飞行器姿态监测系统

四旋翼飞行器姿态监测系统是一个集成了高度、速度、俯仰角与滚转角数据采集与分析的系统&#xff0c;提高飞行器在复杂环境中的操作精确度与安全性。系统利用LabVIEW平台与硬件传感器相结合&#xff0c;实现实时数据处理与显示&#xff0c;有效地提升了四旋翼飞行器的监测与控制…

arcgisPro加载CGCS2000天地图后,如何转成米单位

1、导入加载的天地图影像服务&#xff0c;一开始是经纬度显示的。 2、右键地图&#xff0c;选择需要调整的投影坐标&#xff0c;这里选择坐标如下&#xff1a; 3、点击确定后&#xff0c;就可以调整成米单位的了。 4、切换后结果如下&#xff1a; 如有需要&#xff0c;可调整成…

新时期下k8s 网络插件calico 安装

1、k8s master节点初始化完毕以后一直处于notreadey状态&#xff0c;一直怀疑是安装有问题或者是初始化有问题&#xff08;当然&#xff0c;如果真有问题要先解决这些问题&#xff09;&#xff0c;经过不断探索才发现是网络插件没有安装导致的&#xff0c;根据建议安装calico插…

《分布式光纤测温:解锁楼宇安全的 “高精度密码”》

在楼宇建筑中&#xff0c;因其内部空间庞大&#xff0c;各类电器设施众多&#xff0c;如何以一种既高效又稳定&#xff0c;兼具低成本与高覆盖特性的方式&#xff0c;为那些关键线路节点开展温度监测&#xff0c;是目前在安全监测领域一项重点研究项目&#xff0c;而无锡布里渊…

基于vue框架的的校园社团管理平台9ck4e(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;社团,社团加入,学生,社团活动,活动报名,社团成员,物资信息,物资申请 开题报告内容 基于Vue框架的校园社团管理平台开题报告 一、研究背景与意义 随着信息化技术的快速发展&#xff0c;校园管理正逐步向数字化、智能化转型。校园社团作…

网络安全 基础入门-概念名词

域名相关 域名 域名和IP地址相互映射&#xff0c;这样不用去记住能够被机器直接读取的IP地址数串 域名系统(DNS) 它作为将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便地访问互联网。DNS使用UDP端口53。 1. 如果是自动获取dns,就向上查询&#xff…

CSS Grid 布局全攻略:从基础到进阶

文章目录 一.Grid 是什么二.示例代码1. 基础使用 - 固定宽高2.百分百宽高3.重复设置-repeat4.单位-fr5.自适应6.间距定义其他 一.Grid 是什么 CSS 中 Grid 是一种强大的布局方式&#xff0c;它可以同时处理行和列 Grid 和Flex有一些类似&#xff0c;都是由父元素包裹子元素使用…

自动驾驶控制算法-油门刹车标定

本文是学习自动驾驶控制算法第十讲 油门刹车标定表的制作以及后续一节的学习笔记。 车辆油门刹车标定的目的是获取不同车速下不同的油门踏板或刹车踏板行程下车辆的加速度&#xff0c;标定的结果作为纵向控制模型的输入&#xff0c;用于计算输出合理的油门或刹车。 1 Apollo中…

2024年1月4日蜻蜓hr人才招聘系统v1.1.7更新-正式版发布-客户端源代码开源发布供学习-本产品完成上线正式版-修复多个bug-优雅草果果|小无

2024年1月4日蜻蜓hr人才招聘系统v1.1.7更新-正式版发布-客户端源代码开源发布供学习-本产品完成上线正式版-修复多个bug-优雅草果果|小无 前端代码开源库 关于开源说明&#xff1a;企业服务-招聘信息管理系统-前端uniapp-系统前端开放源代码仅供学习-优雅草科技-目前优雅草科…

Java-JVM详解

Java-JVM ①JVM概述 ❶基本介绍 JVM&#xff1a;全称 Java Virtual Machine&#xff0c;一个虚拟计算机&#xff0c;Java 程序的运行环境&#xff08;Java二进制字节码的运行环境&#xff09; 特点&#xff1a; Java 虚拟机基于二进制字节码执行&#xff0c;由一套字节码指…

PyTorch 框架实现线性回归:从数据预处理到模型训练全流程

系列文章目录 01-PyTorch新手必看&#xff1a;张量是什么&#xff1f;5 分钟教你快速创建张量&#xff01; 02-张量运算真简单&#xff01;PyTorch 数值计算操作完全指南 03-Numpy 还是 PyTorch&#xff1f;张量与 Numpy 的神奇转换技巧 04-揭秘数据处理神器&#xff1a;PyTor…

升级 Spring Boot 3 配置讲解 —— 支持断点传输的文件上传和下载功能

学会这款 &#x1f525;全新设计的 Java 脚手架 &#xff0c;从此面试不再怕&#xff01; 在现代 Web 应用中&#xff0c;文件上传和下载是非常常见的需求。然而&#xff0c;当文件较大时&#xff0c;传统的上传下载方式可能会遇到网络不稳定或传输中断的问题。为了解决这些问题…

R语言安装教程与常见问题

生物信息基础入门笔记 R语言安装教程与常见问题 今天和大家聊一个非常基础但是很重要的技术问题——如何在不同操作系统上安装R语言&#xff1f;作为生物信息学数据分析的神兵利器&#xff0c;R语言的安装可谓是入门第一步&#xff0c;学术打工人的必备技能。今天分享在Windows…

UI自动化测试保姆级教程--pytest详解(精简易懂)

欢迎来到啊妮莫的学习小屋 别让过去的悲伤&#xff0c;毁掉当下的快乐一《借东西的小人阿莉埃蒂》 简介 pytest是一个用于Python的测试框架, 支持简单的单元测试和复杂的功能测试. 和Python自带的UnitTest框架类似, 但是相比于UnitTest更加简洁, 效率更高. 特点 非常容易上手…

基类指针指向派生类对象,基类指针的首地址永远指向子类从基类继承的基类首地址

文章目录 基类指针指向派生类对象&#xff0c;基类指针的首地址永远指向子类从基类继承的基类起始地址。代码代码2 基类指针指向派生类对象&#xff0c;基类指针的首地址永远指向子类从基类继承的基类起始地址。 代码 #include <iostream> using namespace std;class b…

分布式Id方案选择

分布式 ID 方案选择 在当今分布式系统日益盛行的背景下&#xff0c;分布式 ID 生成方案的选择成为了众多开发者关注的焦点。一个优秀的分布式 ID 方案&#xff0c;不仅能够确保生成的 ID 全局唯一&#xff0c;避免数据冲突&#xff0c;还能在高并发、大规模的分布式环境中保持…