设置 Haply 远程操作#
Haply Devices 提供触觉设备,可实现具有定向力反馈的直观机器人远程操作。Haply Inverse3 与 VerseGrip 配对,创建了一个具有力反馈功能的末端执行器控制系统。
Isaac Lab 支持 Haply 设备用于需要精确空间控制和触觉反馈的远程操作工作流程。这使操作员能够在操作任务期间感受接触力,从而提高控制质量和任务性能。
本指南介绍如何设置和使用 Haply 设备与 Isaac Lab 进行机器人远程操作。
概述#
使用 Haply 与 Isaac Lab 涉及以下组件:
Isaac Lab 模拟机器人环境并将接触力流式传输回操作员
Haply Inverse3 在操作员的工作空间中提供 3 自由度位置跟踪和力反馈
Haply VerseGrip 添加方向感知和用于夹爪控制的按钮输入
Haply SDK 管理 Isaac Lab 和 Haply 硬件之间的 WebSocket 通信
本指南将引导您完成:
系统要求#
硬件要求#
Isaac Lab 工作站
Ubuntu 22.04 或 Ubuntu 24.04
200Hz 物理模拟的硬件要求:
CPU: 8 核 Intel Core i7 或 AMD Ryzen 7(或更高)
内存: 32GB RAM(推荐 64GB)
GPU: RTX 3090 或更高
网络: 与 Haply 设备在同一局域网中,用于 WebSocket 通信
Haply 设备
Haply Inverse3 - 用于位置跟踪和力反馈的触觉设备
Haply VerseGrip - 用于方向和按钮输入的无线控制器
两个设备都必须开机并连接到 Haply SDK
软件要求#
Isaac Lab(请遵循 安装指南 )
Haply SDK(由 Haply Robotics 提供)
Python 3.10+
websocketsPython 包(随 Isaac Lab 自动安装)
安装#
1. 安装 Isaac Lab#
遵循 Isaac Lab 安装指南 设置您的环境。
websockets 依赖项自动包含在 Isaac Lab 的要求中。
2. 安装 Haply SDK#
从 Haply Devices 网站下载 Haply SDK。安装 SDK 软件并配置设备。
3. 验证安装#
测试 Haply Device Manager 是否检测到您的 Haply 设备。您应该看到 Inverse3 和 VerseGrip 都已连接。
设备设置#
1. 物理设置#
将 Haply Inverse3 放在稳定的表面上
确保 VerseGrip 已充电并配对
舒适地定位自己以到达 Inverse3 工作空间
保持工作空间无障碍物
2. 启动 Haply SDK#
根据 Haply 的文档启动 Haply SDK。SDK 通常:
在
localhost:10001上运行 WebSocket 服务器以 200Hz 的频率流式传输设备数据
显示两个设备的连接状态
3. 测试通信#
您可以使用以下 Python 脚本测试 WebSocket 连接:
import asyncio
import websockets
import json
async def test_haply():
uri = "ws://localhost:10001"
async with websockets.connect(uri) as ws:
response = await ws.recv()
data = json.loads(response)
print("Inverse3:", data.get("inverse3", []))
print("VerseGrip:", data.get("wireless_verse_grip", []))
asyncio.run(test_haply())
您应该看到来自 Inverse3 和 VerseGrip 的设备数据流。
运行演示#
Haply 远程操作演示展示了使用 Franka Panda 机械臂进行具有力反馈的机器人操作。
基本用法#
# Ensure Haply SDK is running
./isaaclab.sh -p scripts/demos/haply_teleoperation.py --websocket_uri ws://localhost:10001 --pos_sensitivity 1.65
REM Ensure Haply SDK is running
isaaclab.bat -p scripts\demos\haply_teleoperation.py --websocket_uri ws://localhost:10001 --pos_sensitivity 1.65
演示将:
通过 WebSocket 连接到 Haply 设备
在仿真中生成 Franka Panda 机器人和一个立方体
将 Haply 位置映射到机器人末端执行器位置
将接触力流式传输回 Inverse3 以提供触觉反馈
控制#
移动 Inverse3: 控制机器人末端执行器位置
VerseGrip 按钮 A: 打开夹爪
VerseGrip 按钮 B: 关闭夹爪
VerseGrip 按钮 C: 旋转末端执行器 60°
高级选项#
使用命令行参数自定义演示:
# Use custom WebSocket URI
./isaaclab.sh -p scripts/demos/haply_teleoperation.py \
--websocket_uri ws://192.168.1.100:10001
# Adjust position sensitivity (default: 1.0)
./isaaclab.sh -p scripts/demos/haply_teleoperation.py \
--websocket_uri ws://localhost:10001 \
--pos_sensitivity 2.0
演示功能#
工作空间映射: Haply 工作空间映射到具有安全限制的机器人可达空间
逆运动学: 逆运动学(IK)计算所需末端执行器姿态的关节位置
力反馈: 来自末端执行器传感器的接触力被发送到 Inverse3 以提供触觉反馈
故障排除#
无触觉反馈#
问题: 在 Inverse3 上感受不到触觉反馈
解决方案:
验证 Inverse3 是 Haply SDK 中的活动设备
检查仿真中的接触力是否为非零(尝试抓取立方体)
确保
limit_force未设置得太低(默认值: 2.0N)
后续步骤#
自定义演示: 修改工作空间映射或添加自定义按钮行为
实现您自己的控制器: 在您自己的脚本中使用
HaplyDevice
有关设备 API 的更多信息,请参阅 API 文档中的 HaplyDevice 。