Skip to content

DeepRoboticsLab/sdk_deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English

Discord

总览

本仓库使用ROS2来实现Sim-to-sim和Sim-to-real全流程,故需在电脑上先安装好ROS2,如在Ubuntu22.04上安装ROS2 Humble。我们还公布了教学视频,欢迎大家观看。

graph LR
    A["/rl_deploy"] -->|/JOINTS_CMD| B["/mujoco_simulation"]
    B -->|/IMU_DATA| A
    B -->|/JOINTS_DATA| A
Loading
# ros2 topic list
/BATTERY_DATA
/IMU_DATA
/JOINTS_CMD
/JOINTS_DATA
/parameter_events
/rosout


# ros2 node info /mujoco_simulation 
/mujoco_simulation
  Subscribers:
    /JOINTS_CMD: drdds/msg/JointsDataCmd
  Publishers:
    /IMU_DATA: drdds/msg/ImuData
    /JOINTS_DATA: drdds/msg/JointsData
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
  Service Servers:
    /mujoco_simulation/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /mujoco_simulation/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /mujoco_simulation/get_parameters: rcl_interfaces/srv/GetParameters
    /mujoco_simulation/list_parameters: rcl_interfaces/srv/ListParameters
    /mujoco_simulation/set_parameters: rcl_interfaces/srv/SetParameters
    /mujoco_simulation/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Service Clients:

  Action Servers:

  Action Clients:


# ros2 node info /rl_deploy 
/rl_deploy
  Subscribers:
    /BATTERY_DATA: drdds/msg/BatteryData
    /IMU_DATA: drdds/msg/ImuData
    /JOINTS_DATA: drdds/msg/JointsData
    /parameter_events: rcl_interfaces/msg/ParameterEvent
  Publishers:
    /JOINTS_CMD: drdds/msg/JointsDataCmd
    /parameter_events: rcl_interfaces/msg/ParameterEvent
    /rosout: rcl_interfaces/msg/Log
  Service Servers:
    /rl_deploy/describe_parameters: rcl_interfaces/srv/DescribeParameters
    /rl_deploy/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
    /rl_deploy/get_parameters: rcl_interfaces/srv/GetParameters
    /rl_deploy/list_parameters: rcl_interfaces/srv/ListParameters
    /rl_deploy/set_parameters: rcl_interfaces/srv/SetParameters
    /rl_deploy/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
  Service Clients:

  Action Servers:

  Action Clients:

二次开发

欢迎大家对我们的代码进行二次开发,无论是发现了bug还是优化了我们的训练代码,都可以提出一个pull request,我们会去研究审核并尝试融入我们的代码库。

仿真-仿真

pip install "numpy < 2.0" mujoco
git clone https://github.com/DeepRoboticsLab/sdk_deploy.git

# 编译
cd sdk_deploy
source /opt/ros/<ros-distro>/setup.bash
colcon build --packages-up-to rl_deploy --cmake-args -DBUILD_PLATFORM=x86
# 运行 (打开两个终端)
# 终端1 
export ROS_DOMAIN_ID=1
source install/setup.bash
ros2 run rl_deploy rl_deploy

# 终端2 
export ROS_DOMAIN_ID=1
source install/setup.bash
python3 src/M20_sdk_deploy/interface/robot/simulation/mujoco_simulation_ros2.py

操控(终端2)

注意:

  • 可以将仿真器窗口设为始终位于最上层,方便可视化
  • 当机器狗站起来时,有可能在仿真中会自碰撞卡住,这不是bug,请再尝试一次即可
  • z: 机器狗站立进入默认状态
  • c: 机器狗站立进入rl控制状态
  • wasd:前后左右
  • qe:顺逆时针旋转

仿真-实际

此过程和仿真-仿真几乎一模一样,只需要添加连wifi传输数据步骤,然后修改编译指令即可。目前默认实机操控为keyboard键盘模式,后续我们将会添加手柄控制模式,敬请期待。

请先使用手柄设置中的OTA升级功能将硬件升级为1.1.7版本

# 电脑和手柄均连接机器狗WiFi
# WiFi名称为 M20********
# WiFi密码为 12345678 (一般为这个,如有问题联系技术支持)

# scp传输文件 (打开本地电脑终端) 密码为' (单引号)
scp -r ~/sdk_deploy/src [email protected]:~/sdk_deploy/

# ssh连接机器狗运动主机以远程开发
ssh [email protected]
cd sdk_deploy
source /opt/ros/foxy/setup.bash
colcon build --packages-select rl_deploy --cmake-args -DBUILD_PLATFORM=arm 


sudo su # Root
source /opt/ros/foxy/setup.bash #source ROS2 env
source /opt/robot/scripts/setup_ros2.sh
ros2 service call /SDK_MODE drdds/srv/StdSrvInt32 command:\ 200 # 200 是 /JOINTS_DATA 话题的发布频率,建议设置在 500 Hz 以下,该数值只能是 1000 的因数。
# Run
source install/setup.bash
ros2 run rl_deploy rl_deploy
  
# 退出sdk模式:
ros2 service call /SDK_MODE drdds/srv/StdSrvInt32 command:\ 0

# 键盘输入状态切换
# 注意:当机器狗站起来时,有可能在仿真中会自碰撞卡住,这不是bug,请再尝试一次即可
- z: 机器狗站立进入默认状态 
- c: 机器狗站立进入rl控制状态
- wasd:前后左右
- qe:顺逆时针旋转

About

Sim-to-sim and sim-to-real deployment for Deep Robotics Robots, currently supporting M20

Resources

License

Stars

Watchers

Forks