双臂移动机械手
VLAI L1 设置指南
完成 VLAI L1 的分步设置 — 从拆箱到双臂校准、移动底座导航和数据收集。
1
装配与检验
拆箱清单
- 检查两个 7 自由度臂是否有运输损坏 - 用手检查所有关节是否可自由移动
- 验证两个自主开发的 8Nm 夹具是否安装牢固
- 检查移动基轮 - 两个驱动轮应自由旋转而无卡滞
- 检查升降柱在整个范围(106–162 厘米)内是否平滑滑动
- 确认包装盒内有以太网线和电源适配器
- 阅读文档包中包含的 VLAI L1 安全指南
工作空间要求
- 最小建筑面积: 2 m × 2 m 透明、水平表面
- 机器人足迹: 46 厘米宽 × 60 厘米长 — 所有侧面均留有间隙
- 手臂伸展范围: 每只手臂 63 厘米 — 确保手臂伸展时触手可及的范围内没有障碍物
- 力量: 2m内标准110V/220V插座
2
SDK安装和网络设置
要求
- Python 3.10+(推荐3.11)
- 开发者级别或以上(青年级别不包括 SDK 访问权限)
- L1 已开机并连接到同一本地网络(以太网或 5GHz Wi-Fi)
安装SDK
pip install roboticscenter
连接并打开浏览器 teleop 面板
rc connect --device l1 # Terminal prints: Session ready → https://platform.roboticscenter.ai/session/RC-XXXX-XXXX # Open the URL in any browser to access the full teleop panel
通过 Python 传输联合数据
from roboticscenter import L1Robot
robot = L1Robot.connect()
print(robot.session_url)
for frame in robot.stream():
joints = frame.data['joints']
print(f"Left: {joints['left_arm']}")
print(f"Right: {joints['right_arm']}")
print(f"Base: {frame.data['base']}")
还没有硬件吗? 使用模拟模式
跑步
rc connect --device l1 --mock 启动完全模拟的 L1 会话。 所有 SDK 方法、浏览器远程操作面板和数据记录在模拟模式下的工作方式相同 - 对于在设备发货之前进行 CI 管道和工作流程原型设计非常有用。
3
双臂校准
L1 臂使用 MIT 电机协议,具有双编码器反馈和 FOC 控制。 校准设置起始位置并验证完整的 ±0.02mm 精度规格。
检查ROS2关节状态
ros2 topic list
ros2 topic echo /joint_states # verify all 16 DOF are publishing
启动 MoveIt2 进行运动规划
ros2 launch l1_moveit l1_moveit.launch.py
# Opens RViz with full dual-arm URDF, collision checking, and Cartesian planning
原点校准
- 在 MoveIt2 RViz 面板中,导航到 规划 选项卡
- 选择 家 为双臂指定目标
- 点击 计划与执行 — 手臂应移至中立伸展位置
- 验证关节状态与终端中预期的归属配置相匹配
夹具校准
# Open grippers fully ros2 topic pub /left_gripper/cmd std_msgs/Float32 "{data: 0.0}" ros2 topic pub /right_gripper/cmd std_msgs/Float32 "{data: 0.0}" # Close to 50% — verify 8Nm grippers engage smoothly ros2 topic pub /left_gripper/cmd std_msgs/Float32 "{data: 0.5}" ros2 topic pub /right_gripper/cmd std_msgs/Float32 "{data: 0.5}"
4
移动基地导航
WASD键盘驱动测试
打开浏览器teleop面板并使用WASD键来驱动差动底座。 速度缩放可通过面板滑块进行调整(10%、50%、100%)。
# Or command directly via ROS2 Twist ros2 topic pub /base/cmd_vel geometry_msgs/Twist \ "{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}" # Stop ros2 topic pub /base/cmd_vel geometry_msgs/Twist \ "{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
升力范围测试
使用浏览器 teleop 面板中的垂直滑块以 30 毫米/秒的速度测试整个升程范围 (106–162 厘米)。 验证整个范围内运动平稳,无卡滞或磨损。
# Monitor lift height ros2 topic echo /lift/state # current height in meters
安全
当机器人移动时,让旁观者远离手臂工作空间。 L1 达到 2 m/s 最大速度 — 以 10% 的速度缩放开始测试。
5
第一个操作任务
浏览器遥控面板控件
- 双臂视图: 两个 7 自由度手臂的实时 3D 可视化 — 关节角度、末端执行器姿势 (6D) 和夹具状态,更新速率小于 10 毫秒
- 末端执行器模式选择器: 每个手臂独立切换:夹爪(默认 8Nm)、灵巧手或吸盘
- 相机馈送: 胸部摄像头 (Developer+)、左/右腕部摄像头 (Developer Max)
通过 MoveIt2 进行简单的拾取和放置
from roboticscenter import L1Robot robot = L1Robot.connect() # Move left arm to approach pose robot.left_arm.move_to(x=0.45, y=0.15, z=0.30, roll=0, pitch=90, yaw=0) # Open left gripper robot.left_arm.gripper.open() # Move down to grasp robot.left_arm.move_to(x=0.45, y=0.15, z=0.05, roll=0, pitch=90, yaw=0) # Close gripper to grasp robot.left_arm.gripper.close(force=0.6) # Lift robot.left_arm.move_to(x=0.45, y=0.15, z=0.35, roll=0, pitch=90, yaw=0)
VR 远程操作(Developer Pro 和 Max)
插入兼容 OpenXR 的耳机并运行 rc vr --session RC-XXXX-XXXX 将手控制器姿势直接映射到笛卡尔空间中每个手臂的末端执行器,触觉反馈与估计的接触力成比例。
6
数据收集和一键式管道
每一个 rc connect 会话是一个命名的数据收集单元。 会话关闭时会自动上传到您的 Fearless Platform 工作区 - 无需手动导出步骤。
每帧捕获的内容
- 联合数据 — 约 500Hz 下所有 16 个自由度的位置、速度和力度,带有微秒时间戳
- 相机流 — 胸部 RGB (Developer+)、手腕 RGB (Developer Max) — 带时间戳并在 ±1 毫秒内同步到关节数据
- 力/接触 — 根据电机电流估算夹爪力
- 基态 — 车轮里程计、线速度/角速度、提升高度
- 操作员动作 — 用于模仿学习的原始 teleop 命令流
收集期间的剧集标记
- 按 空间 在浏览器面板中标记剧集边界
- 按 L 使用自定义标签字符串注释当前帧
云桥ROS2代理
# Run on the L1's onboard computer to bridge topics to the platform
python l1_robot_agent.py \
--backend wss://platform.roboticscenter.ai \
--session RC-XXXX-XXXX \
--ros2
数据集导出格式
清理和注释的会话导出为 LeRobot 格式(HDF5 + JSON 清单)、RLDS 或原始 JSONL + MP4。 使用 数据 平台中的选项卡可配置导出和下载。
一键式管道
会话结束后,使用平台管道:清理 → 注释 → 训练(ACT、扩散策略或 VLA)。 开发人员 Pro 和 Max 级别可解锁 VLA 培训; 开发者层支持 ACT 和扩散策略。