跳转至

R1 Lite Teleop 遥操作教程

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

1.开箱

1.1 开箱前准备

物品 数量 备注
笔记本(X86 & Ubuntu 20.04 ROS Noetic) 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. 建议您准备一台 Ubuntu20.04 ROS noetic 的笔记本电脑,作为 R1 Lite Teleop 的上位机。

3.1 下载并解压SDK

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

3.2 安装软件依赖环境

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

    sudo apt install tmuxp
    sudo apt install tmux
    sudo apt install ros-noetic-dynamixel-sdk
    sudo apt install ros-noetic-trac-ik
    pip install pyserial
    pip install tyro
    pip install evdev
    

  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 数据格式介绍

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

4.2 数据获取

默认存储路径为:/home/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 数据落盘文件介绍

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

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

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 修改文件

注意:务必将 ROS MASTER 设置为 R1 Lite NUC 的 IP,在此多机通信中 R1 Lite NUC 作为主机,且 roscore 起在主机。

  1. 修改 R1 Lite 的 NUC ~/.bashrc
    #R1Lite NUC ROS IP设置
    export ROS_MASTER_URI=http://{R1_Lite_IP}:11311
    export ROS_IP={R1_Lite_IP}
    
  2. 修改 R1 Lite Teleop 上位机 ~/.bashrc
    #R1Lite Teleop 上位机 ROS IP设置
    export ROS_MASTER_URI=http://{R1_Lite_IP}:11311
    export ROS_IP={R1_Lite-T_IP}
    
  3. 示例 R1 Lite 和 R1 Lite Teleop 上位机同处于192.168.10.0网关下,分别修改 R1 Lite 和 R1 Lite Teleop 上位机的 ~/.bashrcR1_Lite_bashrc_cn

5.2 开启遥操

5.2.1 启动 R1 Lite

使用以下命令启动 R1 Lite 所有节点: Bash cd ~{your_download_path}/install/share/startup_config/script/ ./robot_startup.sh boot ../session.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/share/startup_config/script/
    ./robot_startup.sh boot ../session.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/lib/joycon_evdev_publisher/joy_evdev_exe_node_.py
您可以调整msg元素顺序,改变手柄键位,如下图所示。 R1_Lite_Teleop_remap_bluetooth_controller_buttons_cn

5.3 夹爪控制模式切换

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

5.3.1 开关控制模式

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

5.3.2 增量控制模式

  1. 输入以下命令,打开对应的 launch 文件。
    cd ${R1Lite-T_SDK_path}/install/share/mobiman/launch/simpleExample/
    vim tabletop_gello_tele_a1x.launch
    
  2. 修改 gripper_modemode2 ,此模式下,夹爪控制逻辑为增量控制模式R1_Lite_Teleop_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/share/mobiman/launch/simpleExample/
    vim tabletop_gello_tele_a1x.launch
    
  2. 修改 default_chassis_value ,这个参数为程序启动后底盘默认线速度。 R1_Lite_Teleop_chassis_value_cn

5.4.2 通过rostopic设定

在遥操作程序启动后,可以通过 rostopic pub的方式,临时设定底盘线速度,程序重新启动后会以launch文件中的参数为参考。
以下列代码命令行为例,将底盘线速度设为 0.3m/s 。

source ${R1Lite-T_SDK_path}/install/setup.bash
rostopic pub /teleop_chassis_vel std_msgs/Float32 "data: 0.3"