通过可穿戴外骨骼,以更灵活的方式操作你的机器人。
今天,我们将介绍一款专为控制 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 dataser.write(hex_array_l)time.sleep(0.01)count = ser.in_waitingdata = 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 0if encode == 2048:angle = 0elif encode < 2048:angle = -180 * (2048 - encode) / 2048else:angle = 180 * (encode - 2048) / 2048l_angle_list[i] = anglebutton = 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)
基于此基本设置,可以记录特定运动期间的关节参数并用于训练机器学习模型,从而有助于为后续算法开发收集有价值的数据。
展望
展望未来,我们设想通过触觉反馈和自适应运动算法等高级功能来增强外骨骼,以进一步弥合人类控制和机器人精度之间的差距。这些改进将为操作员提供更身临其境的体验,提供实时传感反馈,并允许在操作过程中进行更直观的调整。此外,我们计划扩展外骨骼的兼容性,以便与更广泛的机器人平台配合使用,从而在制造、医疗保健和研究等各个行业实现更广泛的应用。这一进展将支持更广泛的数据收集,并促进可以处理日益复杂任务的协作人机系统。
相关文章:
通过可穿戴外骨骼,以更灵活的方式操作你的机器人。
今天,我们将介绍一款专为控制 Mercury X1 和 Mercury B1 机械臂而设计的创新外骨骼。这种外骨骼以人类手臂的结构为蓝本,可实现直观和精确的控制。 开发这种外骨骼的动机源于人们对深度学习和机器学习等领域日益增长的兴趣。这些技术使机器人能够自主学习…...
记录将springboot的jar包和lib分离,使用docker-compose部署
本文讲诉如何把jar里的lib依赖包独立出来,方便更新服务时,缩小jar的体积,下面以若依的system服务为例,配置中的路径请酌情修改,主要提供大致配置逻辑 第一步:修改项目的pom.xml,调整build的配…...
JavaScript 延迟加载的方法
延迟加载(Lazy Loading)是一种优化网页性能的技术,它允许资源(如图片、脚本等)在需要时才被加载,而不是在页面初次加载时全部加载。这可以减少初始页面加载时间,提升用户体验,特别是…...
xrdp连接闪退情况之一
错误核查 首先使用命令vim ~/.xsession-errors,当里面的报错信息为WARNING **: Could not make bus activated clients aware of XDG_CURRENT_DESKTOPGNOME environment variable:Failed to execute child process “dbus-launch” (No such file or directory)&am…...
数据分析思维(八):分析方法——RFM分析方法
数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取…...
WebRTC 在视频联网平台中的应用:开启实时通信新篇章
在当今这个以数字化为显著特征的时代浪潮之下,实时通信已然稳稳扎根于人们生活与工作的方方面面,成为了其中不可或缺的关键一环。回首日常生活,远程办公场景中的视频会议让分散各地的团队成员能够跨越地理距离的鸿沟,齐聚一堂共商…...
Vue3(elementPlus) el-table替换/隐藏行箭头,点击整行展开
element文档链接: https://element-plus.org/zh-CN/component/form.html 一、el-table表格行展开关闭箭头替换成加减号 注:Vue3在样式中修改箭头图标无效,可能我设置不对,欢迎各位来交流指导 转变思路:隐藏箭头&…...
oracle闪回恢复数据:(闪回查询,闪回表,闪回库,回收站恢复)
oracle的闪回查询,可以查询提交在表空间的闪回数据,并可以还原所查询的数据,用于恢复短时间内的delele 或者 update 误操作,非常方便,缺点是只能恢复大概几小时内的数据。 文章目录 概要闪回查询恢复数据的主要方法包括…...
C语言——结构体,位段,枚举和联合
目录 前言 结构体 1含义 2语法 3匿名结构体 4结构体自引用 5结构体的定义与初始化 6内存对齐 7修改对齐数 8结构体传参 位段 1含义 2位段的内存分配 编辑3位段的问题 4位段的应用 枚举 1含义 2定义 3枚举优点 4枚举使用 联合 1含义 2定义 3特点 4计…...
期末概率论总结提纲(仅适用于本校,看文中说明)
文章目录 说明A选择题1.硬币2.两个事件的关系 与或非3.概率和为14.概率密度 均匀分布5.联合分布率求未知参数6.联合分布率求未知参数7.什么是统计量(记忆即可)8.矩估计量9.117页12题10.显著水平阿尔法(背公式就完了) 判断题11.事件…...
Python视频处理:噪声矩阵与并行计算的完美融合
噪声级别对视频质量有显著的影响,主要体现在以下几个方面: 1. 视觉质量 低噪声级别:当噪声级别较低时,视频的视觉质量较好。噪声对图像细节的干扰较小,画面看起来较为清晰和自然。观众可以更容易地识别图像中的细节和…...
如何使用SparkSql
一、SparkSql的前世今生 Hive->Shark->Spark SQL 二、SparkSql依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.1.2</version> </dependency> 三、…...
YOLOv8实战人员跌倒检测
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对人员跌倒目标数据集进行训练和优化,该数据集包含丰富人员跌倒图像样…...
QT-TCP-server
为了实现高性能的TCP通讯,以下是一个基于Qt的示例,展示如何利用多个线程、非阻塞I/O、数据分块和自定义协议进行优化。该示例以TCP服务器和客户端的形式展示,能够承受高负载并实现快速数据传输。 高性能TCP Server示例 #include <QTcpSe…...
【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)
视频演示: 基于STM32与QT的智慧粮仓环境监测与管理系统设计 目录: 目录 视频演示: 目录: 前言:...
robot 仿真环境安装测试 [持续更新]
将持续更新各种robot simulation环境的安装过程. RLBench 安装CoppeliaSim、PyRep、RLBench git: https://github.com/stepjam/RLBench/tree/master (1)CoppeliaSim sudo gedit ~/.bashrc设置环境变量 export COPPELIASIM_ROOT=${HOME}/CoppeliaSim export LD_LIBRARY_…...
【FlutterDart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小(11 /100)
【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100) 【Flutter&Dart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100) 上效果: 这个在知乎里找到的效果&…...
R语言的循环实现
以R语言的循环实现 引言 R语言作为一种强大的统计分析和数据可视化工具,广泛应用于数据科学、统计学和机器学习等领域。在R语言中,循环是一个基本的控制结构,用于重复执行一段代码。循环不仅可以提高代码的可读性,还可以方便地处…...
Web应用安全-漏洞扫描器设计与实现
摘 要 随着Web2.0、社交网络、微博等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上。Web应用的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显ÿ…...
视频生成Sora的全面解析:从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等
前言 真没想到,距离视频生成上一轮的集中爆发(详见《Sora之前的视频生成发展史:从Gen2、Emu Video到PixelDance、SVD、Pika 1.0》)才过去三个月,没想OpenAI一出手,该领域又直接变天了 自打2.16日OpenAI发布sora以来(其开发团队包…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
