适配要求
准备URDF文件
请您准备好机器人的URDF文件,要求:
- 关注各关节的限位,确保机器人的实机结构限位与URDF中的关节限位完全匹配,不会发生自身碰撞
- URDF中应包含您所希望控制的全部自由度并设置为旋转"revolute"或平动"prismatic"关节,包括但不限于:手臂、夹爪、灵巧手、头、升降躯干、腰、底盘
- 对于URDF中加载的mesh文件,应使用合理大小的模型,全部mesh总和不应超过50MB
关节反馈接口测试
请您获取到希望控制的机器人各自由度的关节位置反馈,可能包括:
- 手臂
- 夹爪或灵巧手
- 头
- 腰
- 升降躯干
将所有的反馈整合起来,通过ROS1或ROS2以 JointState 消息类型发布到 /io_teleop/joint_states
话题中。
要求按照URDF中的关节命名准确的填写 JointState.name
,将对应的关节角(弧度制)填写到 JointState.position
,并更新header中的时间戳
通过以下命令检查:
rostopic hz /io_teleop/joint_states
(ROS1)ros2 topic hz /io_teleop/joint_states
(ROS2)
能够看到稳定的频率,并且确认具体的数值与机器人实机关节角匹配且可动态随变即可。
对于反馈,不强制要求具体的频率,但需要保证获取反馈的接口不会阻塞控制接口的调用。
若您希望后续将遥操作采集到的机器人数据用于训练具身智能模型,推荐您保障反馈频率在15Hz以上。
控制接口测试
TeleXperience的控制指令发布频率皆为100Hz,请您确认机器人的不同模块可以响应该频率下的控制
1. 机械臂
对于机械臂,TeleXperience会输出两种控制指令:
a.(推荐)关节空间:
TeleXperience内置通用控制器,通用控制器实现了如下功能:
- 将VR获取到末端位姿指令与从动捕获取到了关节参考结合,并解算为平滑的关节空间指令(弧度制)
- 保障了当人在遥操作过程中发出了机械臂不可达的动作指令时,机械臂也可以保持响应,响应内容为可达空间内与期望指令最接近的姿态,不会出现超限即停止响应或者响应跳变的情况
您可以使用此处工具检查您的关节空间控制接口是否满足要求,请您阅读README并按照指引实现测试节点。
在测试过程中,请注意保障安全!
b. 末端笛卡尔空间:
若您想要使用末端笛卡尔空间控制,请确认:
- 末端控制接口支持100Hz的实时响应,无阻塞
- 当接收到 超出机械臂可达空间的末端指令时,机械臂仍可持续保持响应,响应内容为可达空间内与期望指令最接近的位姿,不会出现超限即停止响应或者响应跳变的情况
2. 末端执行器
对于您使用的夹爪或者灵巧手,最好提供100Hz的控制接口,若无法满足,可在进行实机控制时做相应的降频处理。
3. 底盘、升降躯干
请提供100Hz的底盘、升降躯干速度控制接口,若无法满足,可在进行实机控制时做相应的降频处理。
4. 头、腰等其他身体自由度
请提供100Hz的关节位置控制接口,若无法满足,可在进行实机控制时做相应的降频处理。
图像反馈接口测试
TeleXperience支持图像同步,若您希望在VR内同步显示机器人的感知图像,请确保按照以下规格,将图像信息以ROS1或ROS2CompressedImage格式发布出来
- 分辨率可以为:1920x1080, 1440x1080, 1280x720, 960x720, 640x480
- 帧率可以为:30fps, 15fps, 10fps
- 最多同时支持4路图像的显示
同样的,使用 rostopic hz
或 ros2 topic hz
来检查图像频率的稳定。
工控机环境要求
需要准备一个具有ROS环境的主机,在其上部署机器人工控机节点。
ROS可以选择ROS1或ROS2,但是ROS2不支持 Humble以上版本。
若机器人自带开发板允许,可直接将工控机节点部署在机器人开发板上;否则,请您额外准备一台具有ROS环境的电脑以部署工控机节点,实现与TeleXperiece和机器人的通信。