通过可穿戴外骨骼,以更灵活的方式操作你的机器人。
今天,我们将介绍一款专为控制 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 机械臂而设计的创新外骨骼。这种外骨骼以人类手臂的结构为蓝本,可实现直观和精确的控制。 开发这种外骨骼的动机源于人们对深度学习和机器学习等领域日益增长的兴趣。这些技术使机器人能够自主学习…...
【大数据基础】大数据概述
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈大数据技术原理与应用 ⌋ ⌋ ⌋专栏系统介绍大数据的相关知识,分为大数据基础篇、大数据存储与管理篇、大数据处理与分析篇、大数据应用篇。内容包含大数据概述、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数…...
使用双向链表优化数组操作的性能
🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 背景 双向链表的优势 实现方案 性能优化 …...
Lua语言的语法
Lua语言的探索与应用 引言 Lua是一种轻量级、高性能的脚本语言,广泛应用于游戏开发、嵌入式系统和很多应用程序中。它的灵活性和高效性使得Lua成为软件开发中不可或缺的一部分。本文将从Lua的历史、语法、特色、使用案例及其在实际开发中的应用进行深入探讨。 Lu…...
Linux随记(十四)
一、处理vsftpd漏洞 【vsftpd安全漏洞(CVE-2021-30047)】 #操作系统1:bclinux euler 21.10#操作系统2:kylin v10二、处理ntp漏洞 【NTPMode6检测漏洞【原理扫描】】 #操作系统1:bclinux euler 21.10 cp /etc/ntp.conf /etc/ntp.conf.bak202…...
【Linux网络编程】第二十二弹---深入理解 I/O 多路转接之 epoll:系统调用、工作原理、代码演示及应用场景
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、I/O 多路转接之 epoll 1.1、epoll 初识 1.2、epoll 的相关系统调用 1.2.1、epoll_create 1.2.2、epol…...
AI赋能服装零售:商品计划智能化,化危机为转机
在服装零售这片竞争激烈的战场上,每一个细微的决策都可能成为品牌兴衰的关键。当市场波动、消费者口味变化、供应链挑战接踵而至时,许多品牌往往将危机归咎于外部环境。然而,真相往往更为深刻——“危机不是外部的,而是你的商品计…...
课程预告|卓翼飞思多旋翼无人机集群实验课程即将上线,互动赢好礼
《多旋翼无人飞行器控制系统开发》实验课程自推出以来,吸引了众多高校的关注。目前,该课程已在多所学校成功实施,并广受好评。 点击链接查看飞控课程详情:课程上新| 卓翼飞思《多旋翼无人飞行器控制系统开发》实验课程正式发布 …...
AWS Glue从GCP的bigquery导入数据到AWS Redshift数据仓库
准备工作 创建账号与服务账号:拥有Google Cloud账号,创建有BigQuery权限的服务账号;拥有AWS账号,创建有相关权限的IAM用户。创建资源:创建Amazon Redshift集群或Redshift Serverless工作区,创建用于存储数…...
zookeeper shell操作和zookeeper 典型应用(配置中心、集群选举服务、分布式锁)
文章目录 引言I zookeeper客户端命令查看子节点 ls创建子节点 create获取节点信息 get更新节点数据 set删除节点 delete\ rmrII 监听机制node1:设置监听node3:修改监听节点node1:得到监听反馈III zookeeper 典型应用分布式锁集群选举服务数据发布/订阅(配置中心)引言 zk 的…...
如何解决HTML和CSS相关的问题,什么情况下会导致元素被遮挡?
在开发过程中,HTML 和 CSS 中的元素遮挡问题通常是由于布局、定位、层级等因素导致的。在使用 Vue.js 时,这些问题依然常见,尤其是涉及到动态渲染、条件渲染和组件嵌套的场景。以下是一些常见的导致元素被遮挡的原因,并通过 Vue.j…...
Java(3)封装、继承、多态
1.封装 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。 pu…...
【深度学习】多目标融合算法(二):底部共享多任务模型(Shared-Bottom Multi-task Model)
目录 一、引言 1.1 往期回顾 1.2 本期概要 二、Shared-Bottom Multi-task Model(SBMM) 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 三、总结 一、引言 在朴素的深度学习ctr预估模型中(如DNN),通常以一个行…...
后端:Spring(IOC、AOP)
文章目录 1. Spring2. IOC 控制反转2-1. 通过配置文件定义Bean2-1-1. 通过set方法来注入Bean2-1-2. 通过构造方法来注入Bean2-1-3. 自动装配2-1-4. 集合注入2-1-5. 数据源对象管理(第三方Bean)2-1-6. 在xml配置文件中加载properties文件的数据(context命名空间)2-1-7. 加载容器…...
基于SpringBoot的诊所管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
基于GA遗传优化的最优阈值计算认知异构网络(CHN)能量检测算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)…...
【技术分享】如何利用rdesktop实现Linux远程Windows桌面高效办公
文章目录 前言1. Windows 开启远程桌面2. Linux安装rdesktop工具3. Win安装Cpolar工具4. 配置远程桌面地址5. 远程桌面连接测试6. 设置固定远程地址7. 固定地址连接测试 前言 随着技术的飞速发展,我们有了越来越多的方法来实现远程办公。今天我要给大家介绍一个特别…...
PDFelement 特别版
Wondershare PDFelement Pro 是一款非常强大的PDF编辑软件,它允许用户轻松地编辑、转换、创建和管理PDF文件。这个中文特别版的软件具有许多令人印象深刻的功能,PDFelement Pro 提供了丰富的编辑功能,可以帮助用户直接在PDF文件中添加、删除、…...
【江协STM32】10-2/3 MPU6050简介、软件I2C读写MPU6050
1. MPU6050简介 MPU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角,常应用于平衡车、飞行器等需要检测自身姿态的场景3轴加速度计(Accelerometerÿ…...
【首发 1day】WordPress Crypto 插件存在前台任意用户登录漏洞(CVE-2024-9989)
漏洞描述 WordPress 的 Crypto 插件在 2.15 及以下版本(包括 2.15)中容易受到身份验证绕过攻击。这是由于对 ‘crypto_connect_ajax_process’ 函数中 ‘crypto_connect_ajax_process::log_in’ 函数的任意方法调用有限。这使得未经身份验证的攻击者可以以站点上的任何现有…...
c语言-----常识问题
1.VS的C4996错误 由于微软在VS2013中不建议再使用C的传统库函数scanf,strcpy,sprintf等,所以直接使用这些库函数会提示C4996错误: VS建议采用带_s的函数,如scanf_s、strcpy_s,但这些并不是标准C函数。 要想继续使用此函数&…...
MIUI显示/隐藏5G开关的方法,信号弱时开启手机Wifi通话方法
5G网速虽快,手机功耗也大。 1.取消MIUI强制的5G,手动设置4G的方法! 【小米澎湃OS, Xiaomi HyperOS显示/隐藏5G开关的方法】 1.1.小米MIUI系统升级后,被强制连5G,手动设置开关被隐藏,如下图: 1…...
超简单,使用Kube-Vip实现K8s高可用VIP详细教程
具体步骤如下: 以下步骤在其中一个 master 上操作即可, 1、参数配置 export VIP192.168.0.110 export INTERFACEens33 export KVVERSIONv0.8.7VIP 是虚拟IP地址,和主机同一个网段,且未被占用。INTERFACE 是你当前主机的网络接口…...
中国数字化发展的问题与机会
橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、埃域知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能,如智能化推荐、…...
为什么ip属地一会河南一会江苏
在使用互联网的过程中,许多用户可能会遇到这样一个问题:自己的IP属地一会儿显示为河南,一会儿又变成了江苏。这种现象可能会让人感到困惑,甚至产生疑虑,担心自己的网络活动是否受到了某种影响。为了解答这一疑问&#…...
【机器学习】神经网络(BP算法)含具体计算过程
目录 神经元的“激活函数” 多层前馈网络结构编辑 BP(BackPropagation:误差逆传播算法) BP算法推导 手动计算BP神经网络的权值来实现学习 前向传播(正向运算)的过程 隐藏层输入: 隐藏层输出: 输出层输入: 输出层输出: …...
【HarmonyOS NEXT】鸿蒙应用点9图的处理(draw9patch)
【HarmonyOS NEXT】鸿蒙应用点9图的处理(draw9patch) 一、前言: 首先在鸿蒙中是不支持安卓 .9图的图片直接使用。只有类似拉伸的处理方案,鸿蒙提供的Image组件有与点九图相同功能的API设置。 可以通过设置resizable属性来设置R…...
Swift语言的网络编程
Swift语言的网络编程探秘 随着移动互联网的迅猛发展,网络编程已经成为开发者必备的核心技能之一。尤其在iOS开发领域,Swift语言作为Apple官方推荐的编程语言,以其简洁的语法和强大的功能受到了广泛的关注。本文将深入探讨Swift语言的网络编程…...
江科大STM32入门——UART通信笔记总结
wx:嵌入式工程师成长日记 1、简介 简单双向串口通信有两根通信线(发送端TX和接收端RX)TX与RX要交叉连接当只需单向的数据传输时,可以只接一根通信线当电平标准不一致时,需要加电平转换芯片 传输模式:全双工;时钟&…...
2. 使用springboot做一个音乐播放器软件项目【框架搭建与配置文件】
上一章文章 我们做了 音乐播放器这个项目的 前期规划 项目需求, 环境安装 和 springboot框架的 搭建与配置。如果有小伙伴没看过 第一章文章 可以去看一下 https://blog.csdn.net/Drug_/article/details/144994317 今天这篇文章 我们来 主要分享一些 我们在开发中…...
历代iPhone运行内存大小和电池容量信息
系列设备名称充电端口标配充电线PD快充无线充电 (W)标配充电器电池容量 (mAh)发布时间RAM运存iPhone 16iPhone 16 Pro MaxUSB Type-CUSB-C to USB-C支持25无47472024/9/108GB LPDDR5XiPhone 16 ProUSB Type-CUSB-C to USB-C支持25无35772024/9/108GB LPDDR5XiPhone 16 PlusUSB …...
(STM32笔记)十二、DMA的基础知识与用法 第三部分
我用的是正点的STM32F103来进行学习,板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话,用的也是这个板子和教程。 DMA的基础知识与用法 三、DMA程序验证1、DMA 存储器到存储器模式实验(1)DMA结构体解释(2…...
ThinkPHP 8高效构建Web应用-获取请求对象
【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...
深入解析 Python 2 与 Python 3 的差异与演进
Python 2 和 Python 3 是 Python 编程语言的两个主要版本。Python 3 于 2008 年发布,旨在解决 Python 2 中的一些设计缺陷,并引入了许多新特性。虽然 Python 2 在很长一段时间内仍然被广泛使用,但自 2020 年 1 月 1 日起,Python 2…...
57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景
57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景 实现效果 该案例实现了使用Three.js创建一个带有聚光灯和旋转立方体的3D场景。 知识点 WebGLRenderer(WebGL渲染器) THREE.WebGLRenderer 是 Three.js 中用于将场景渲染为 WebGL 内容的核…...
移动端可互动轮播图
首先通过事件监听获得到初始滑动位置,并关闭掉轮播图的自动轮播定时器 //设置事件代理 $(".slider").on("touchstart", function (e) {// 当滑动触发的时候关闭定时器clearInterval(time);// 开始时的pxstartX e.touches[0].clientX; }); 然…...
深入讲解 Docker 及实践
Docker 是现代化应用开发、测试和生产环境部署中不可或缺的工具。它能够为开发人员提供与生产环境一致的开发环境,同时支持高效的容器化部署、资源隔离、容器编排等高级功能。尤其在微服务架构和云原生应用中,Docker 更是提供了简化的流程和高效的可扩展…...
科大讯飞前端面试题及参考答案( 上)
前端有用到哪些数据结构? 在前端开发中,会运用到多种数据结构,以下是一些常见的类型及其应用场景。 数组(Array) 数组是一种有序的元素集合,可以存放不同类型的数据(在 JavaScript 等前端常用语言中)。比如在构建一个网页的列表展示时,像新闻列表、商品列表等,我们可…...
本地导入封装的模块 在docker内报错ImportError
本地封装了一个login方法 在写testcase的时候去复用这个方法 但是进入docker运行的时候一直报上面的错误 目录 出现的原因: 解决方法: 1. 根据docker的路径写绝对路径 2. 用sys 加入path到code 作用: 好处: 出现的原因…...
Java-日志技术大全
一:目录 1.jul的使用 2.log4j的使用 3.logback的使用 4.log4j2的使用 二:jul使用 jul是JDK自带的日志技术,不需要导入其他依赖,默认的级别为info 1.关键组件: (1).Logger:记录器 (2).Handler&…...
ARP-Batch-Retargeting 部署实战
git 地址: https://github.com/Shimingyi/ARP-Batch-Retargeting bpy安装: pypi上搜索 bpy bpy 4.3.0,4.2.0版本报错: Traceback (most recent call last):File "E:\project\jijia_4d\retarget\ARP-Batch-Retargeting-…...
二分查找题目:寻找峰值 II
文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法证明代码复杂度分析 题目 标题和出处 标题:寻找峰值 II 出处:1901. 寻找峰值 II 难度 7 级 题目描述 要求 一个二维网格中的峰值元素是指其值严格大于相邻值(左、…...
调和级数不为整数的证明
文章目录 1. 问题引入2. 证明2.1 引理12.2 引理22.3 引理3:2.4 核心证明: 3. 参考 1. 问题引入 s ( n ) 1 1 2 1 3 ⋯ 1 n , n ∈ N ∗ , n ≥ 2 s(n) 1\frac{1}{2}\frac{1}{3}\cdots\frac{1}{n}, \quad \\n \in N^*, n \ge2 s(n)12131⋯n1,…...
Redis 源码分析-内部数据结构 dict
Redis 源码分析-内部数据结构 dict 在上一篇 Redis 数据库源码分析 提到了 Redis 其实用了全局的 hash 表来存储所有的键值对,即下方图示的 dict,dict 中有两个数组,其中 ht[1] 只在 rehash 时候才真正用到,平时都是指向 null&am…...
git相关操作笔记
git相关操作笔记 1. git init git init 是一个 Git 命令,用于初始化一个新的 Git 仓库。执行该命令后,Git 会在当前目录创建一个 .git 子目录,这是 Git 用来存储所有版本控制信息的地方。 使用方法如下: (1ÿ…...
STM32小实验2
定时器实验 TIM介绍 TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断…...
Oracle Dataguard(主库为双节点集群)配置详解(2):备库安装 Oracle 软件
Oracle Dataguard(主库为双节点集群)配置详解(2):备库安装 Oracle 软件 目录 Oracle Dataguard(主库为双节点集群)配置详解(2):备库安装 Oracle 软件一、Orac…...
基于 Pod 和 Service 注解的服务发现
基于 Pod 和 Service 注解的服务发现 背景 很多应用会为 Pod 或 Service 打上一些注解用于 Prometheus 的服务发现,如 prometheus.io/scrape: "true",这种注解并不是 Prometheus 官方支持的,而是社区的习惯性用法,要使…...
操作系统之文件的逻辑结构
目录 无结构文件(流式文件) 有结构文件(记录式文件) 分类: 顺序文件 特点: 存储方式: 逻辑结构: 优缺点: 索引文件 目的: 结构: 特点…...
网络分析与监控:阿里云拨测方案解密
作者:俞嵩(榆松) 随着互联网的蓬勃发展,网络和服务的稳定性已成为社会秩序中不可或缺的一部分。一旦网络和服务发生故障,其带来的后果将波及整个社会、企业和民众的生活质量,造成难以估量的损失。 2020 年 12 月: Ak…...