跳转至

R1 Lite Teleop 遥操作教程

在本教程中,我们将提供详细的说明,一步步陪同您完成开箱,自检和连接等步骤。我们将提供清晰的说明,帮助您快速熟悉新设备并确保一切准备就绪。请跟随步骤操作,确保顺利开启您的机器!

1.开箱

1.1 开箱前准备

物品 数量 备注
笔记本(X86 & Ubuntu 22.04 ROS Humble) 1/台 请勿在虚拟机中使用 R1 Lite Teleop ,否则可能无法连接蓝牙遥控器。
局域网/网线 1 1用于 R1 Lite 和 R1 Lite Teleop 之间的通信。
为了更稳定的连接,建议您准备一根网线。

1.2 物品清单检查

收到产品时,请根据以下清单检查包装盒内的物品是否齐全。

物品 数量
R1 Lite Teleop 1/套
JoyCon 手柄 1/对
G夹固定器 1/对
电源适配器及接线 1/套
Type-C 手柄充电线 1/根
Micro USB 数据线 1/根

2. 连接 R1 Lite Teleop

  1. 固定设备:使用G夹将设备固定在桌面上,建议左右设备间距在30cm以内。
  2. 正确摆放设备:正确摆放设备的所有连杆位置,妥善放置在定位槽中。
  3. 连接设备至上位机:使用 Micro USB 线,连接设备同上位机。
  4. 连接电源:将电源适配器一端连接至设备的DC插头,另一端接入电源中。 R1_Lite_Teleop_connection 注意:
    每次启动R1 Lite Teleop之前,请务必将其姿态调整为初始姿态,否则可能存在使用风险。

3. 软件准备

注意:
1. 不建议使用主机作为上位机,可能会有蓝牙连接不稳定的情况。
2. 建议您准备一台 Ubuntu22.04 ROS Humble 的笔记本电脑,作为 R1 Lite Teleop 的上位机。

3.1 下载并解压SDK

访问 Galaxea R1 Lite 软件版本更新日志 查看,获取最新的SDK包及更新信息。

3.2 安装软件依赖环境

  1. 请在 R1 Lite Teleop 上位机配置相关环境依赖。

    sudo apt install tmux tmuxp -y
    sudo apt install python3-pip
    sudo apt install ros-humble-dynamixel-sdk
    pip install evdev
    pip install pyserial
    

  2. 将上位机用户添加到dialout组,将下列命令中的username改为上位机的用户名。
    注意:此命令用于赋予上位机/dev/ttyUSB权限,您只需要输入一次后,关机重启即可。

    sudo usermod -aG dialout <username>
    

  3. USB端口重映射

    echo 'SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", SYMLINK+="r1litet_usb"' | sudo tee /etc/udev/rules.d/litet.rules > /dev/null
    sudo udevadm control --reload-rules
    sudo udevadm trigger
    

4. 数据采集流程

请按照以下步骤操作,了解并配置数据采集。

4.1 数据格式介绍

数据采集的文件格式为 ros2 bag ,文件后缀为 *.mcap

4.2 数据获取

默认存储路径为:/home/r1lite/GalaxeaDataset/{date}/ date 为当天的日期,格式参考如下:20250307

4.3 配置文件介绍

4.3.1 配置文件的默认存储路径

默认数据录制使用的配置文件位于:

/opt/galaxea/data_collection/data_task_config.json

4.3.2 配置文件说明

配置文件用于描述此次采集任务的信息,您可以根据需求自行修改。

{
   "project_info": {
        "project_name": "test"},
   "task_info": {
        "task_name": "test_data_collection",
        "task_owner": "galaxea" }
    "operation_info": {
        "teleoperation_type": "teleop",
        "location": "suzhou",
        "operator_name": "galaxea"}
}

4.4 数据落盘文件介绍

数据以 mcap + json 格式保存,文件一一对应。例如:

 # 例如以下两个文件代表了一个数据包
 S2R12000P18245_20240213173320125_RAW.mcap
 S2R12000P18245_20240213173320125_RAW.json
 # 格式为 robot_serial_number+timestamp+RAW
 # robot_serial_number:机器人序列号,位于 /opt/galaxea/body/RSN
 # timestamp:数据采集的时间戳精确到毫秒。
 # RAW:代表数据采集原始落盘数据
保存位置示例: R1_Lite_data_collection

5. 遥操作流程

请按照以下步骤操作,配置并开始遥操任务。

5.1 多机通信设置

5.1.1 配置网络

我们提供 有线连接无线连接 两种方式。推荐您使用有线方式配置网络,这有利于提升多机通信的稳定性
两种连接方式的设置方法如下: 1. 有线连接方式: - 将 R1 Lite NUC 与 R1 Lite Teleop 上位机连接起来,并且将 R1 Lite Teleop 上位机的有线设置为“共享至其他计算机”; - 将 R1 Lite NUC 与 R1 Lite Teleop 上位机连接起来,并且将 R1 Lite Teleop 上位机的有线设置为“共享至其他计算机”;
注意:R1 Lite NUC 的有线IP通常为10.42.0.xxx; R1 Lite Teleop 上位机的有线IP通常为10.42.0.1 2. 无线连接: - 将R1 Lite NUC 与 R1 Lite Teleop 上位机连接到同一局域网下,通过 ifconfig 命令查看两台设备的无线IP。

5.2 修改文件

  1. 修改 R1 Lite 的 NUC ~/.bashrc
    #R1Lite NUC ROS IP设置
    export ROS_DOMAIN_ID={0-101} #介于0和101之间的值,建议设置为R1Lite IP的后两位
    export ROS_IP={R1_Lite_IP}
    export ROS_LOCALHOST_ONLY=0
    
  2. 修改 R1 Lite Teleop 上位机 ~/.bashrc
    #R1Lite Teleop 上位机 ROS IP设置
    export ROS_DOMAIN_ID={0-101} #与R1Lite中设置的ROS_DOMAIN_ID保持一致
    export ROS_IP={R1_Lite-T_IP}
    export ROS_LOCALHOST_ONLY=0
    
    以上两个文件修改之后可分别重启确保生效
  3. 示例 R1 Lite 和 R1 Lite Teleop 上位机同处于10.200.3.0网关下,分别修改 R1 Lite 和 R1 Lite Teleop 上位机的 ~/.bashrcR1_Lite_bashrc_cn

5.2 开启遥操

5.2.1 启动 R1 Lite

使用以下命令启动 R1 Lite 所有节点:

#进入存放脚本的目录之后执行脚本
cd ~{your_download_path}/install/startup_config/share/startup_config/script/
./robot_startup.sh boot ../sessions.d/ATCStandard/R1LITEBody.d/

5.2.2 启动 R1 Lite Teleop

注意:请您确认 R1 Lite Teleop 的连杆已摆放至零点位置。
1. 连接蓝牙手柄。
a. 长按蓝牙手柄内侧开机键,成功开启后,您可观测到蓝色流水灯。
b. 打开上位机的蓝牙设置,搜索 JoyCon(L) 与 JoyCon(R) 两个手柄设备并连接。
c. 连接成功后,蓝牙会提示“已连接两个蓝牙设备”,并且手柄内侧蓝色流水灯效果消失,转为蓝灯常亮。
d. 若此时的蓝灯表示为手柄剩余电量,则表示您已成功连接蓝牙手柄。
R1_Lite_Teleop_bluetooth_controllers_cn

  1. 一键启动。
    a. 使用以下命令启动 R1 Lite Teleop 所有节点:
    #进入存放脚本的目录之后执行脚本
    cd ${R1Lite-T_SDK_path}/install/startup_config/share/startup_config/script/
    ./robot_startup.sh boot ../sessions.d/ATCHostStandard/R1LITET.d/
    
    b. 启动后,可以在终端输入 tmux a 进入 tmux 后台。
    c. 先按下 Ctrl+B 键后松开,再按下 W 键,可以看到 tmux 后台的所有会话.。
    d. 此时可以通过键盘的上下键切换会话.
    e. 按下 Enter 进入会话,可以检查是否有报错信息。
    f. 上述步骤执行完毕后,若无报错信息,即可开始进行对 R1 Lite 的全身遥操作。

5.2.3 手柄按键说明

R1_Lite_Teleop_bluetooth_controllers_configuration_cn

摇杆/按键 左手柄 右手柄
摇杆X 正方向 底盘向前移动(Vx 为正) 躯干向上移动(Vz 为正)
摇杆X 负方向 底盘向后移动(Vx 为负) 躯干向下移动(Vz 为负)
摇杆Y 正方向 底盘向左平移(Vy 为正) 底盘逆时针自旋(Vw 为正)
摇杆Y 负方向 底盘向右平移(Vy 为负) 底盘顺时针自旋(Vw 为负)
按键 ↑ 躯干Pitch角正转 -
按键 ↓ 躯干Pitch角反转 -
按键 A - 躯干向前移动(Vx为正)
按键 B - 躯干向后移动(Vx为负)
按键 X - 开启录制:按一次开始录制数据
删除数据:间隔5秒后再按一次删除数据
按键 Y - 停止录制数据
按键 ZL 左夹爪闭合 -
按键 L 左夹爪张开 -
按键 ZR 右夹爪闭合 -
按键 R 右夹爪张开 -

蓝牙手柄原始消息,会转为rostopic发布,源码路径为{R1Lite-T_SDK_path}/install/joycon_evdev_publisher/lib/python3.10/site-packages/joycon_evdev_publisher/joy_evdev_exe_node.py
您可以调整元素顺序,改变手柄键位,如下图所示。 R1_Lite_Teleop_ros2_remap_bluetooth_controller_buttons_cn

5.3 夹爪控制模式切换

按照以下方式修改 launch 文件,您可以切换夹爪控制模式,修改完后重启程序即可使用。

5.3.1 开关控制模式

  1. 输入以下命令,打开对应的 launch 文件。
    cd ${R1Lite-T_SDK_path}/install/mobiman/share/mobiman/launch/simpleExample/
    vim tabletop_gello_tele_a1x_launch.py
    
  2. 修改 gripper_modemode1 ,此模式下,夹爪控制逻辑为开关控制模式R1_Lite_Teleop_gripper_mode1_cn

5.3.2 增量控制模式

  1. 输入以下命令,打开对应的 launch 文件。
    cd ${R1Lite-T_SDK_path}/install/mobiman/share/mobiman/launch/simpleExample/
    vim tabletop_gello_tele_a1x_launch.py
    
  2. 修改 gripper_modemode2 ,此模式下,夹爪控制逻辑为增量控制模式R1_Lite_Teleop_ros2_gripper_mode1_cn

5.4 底盘线速度设定

使用同构遥操作时,底盘默认线速度(Vx、Vy方向)为 0.2m/s ,底盘默认角速度(Vw)为 0.6rad/s ,其中底盘线速度可以通过以下方式设定。
注意:为避免速度过快而发生碰撞,请按照需求谨慎修改底盘线速度。

5.4.1 在launch启动文件中设定

  1. 输入以下命令,打开对应的launch文件。
    cd ${R1Lite-T_SDK_path}/install/mobiman/share/mobiman/launch/simpleExample/
    vim tabletop_gello_tele_a1x_launch.py
    
  2. 修改 default_chassis_value ,这个参数为程序启动后底盘默认线速度。 R1_Lite_Teleop_ros2_chassis_value_cn