Skip to content

[ICRAM 2023] V-RPC : Vision-Based Reactive Planning and Control of Quadruped Robots in Unstructured Dynamic Environments

License

Notifications You must be signed in to change notification settings

P1terQ/quad_controller

Repository files navigation

V-RPC : Vision-Based Reactive Planning and Control of Quadruped Robots in Unstructured Dynamic Environments

Website: https://sites.google.com/view/v-rpc
Paper: https://arxiv.org/pdf/2307.10243.pdf

Dependency Installation

Note: Users should install all the following dependencies into one ros work space.

OCS2:
git clone https://github.com/P1terQ/ocs2 -b master
Original Repo: https://github.com/leggedrobotics/ocs2
(note: OCS2 also needs Hpp-fcl,ocs2_robotic_assets,pinocchio. Users should follow the installation manual in https://leggedrobotics.github.io/ocs2/installation.html)

Quad_Controller:
git clone https://github.com/P1terQ/quad_controller -b master
Original Repo: https://github.com/qiayuanliao/legged_control

Elevation_Mapping_Cupy:
https://github.com/P1terQ/elevation_mapping_cupy -b master
Original Repo: https://github.com/leggedrobotics/elevation_mapping_cupy

realsense_ros_gazebo:
https://github.com/P1terQ/realsense_ros_gazebo -b master
Original Repo: https://github.com/nilseuropa/realsense_ros_gazebo

Build

  1. Build OCS2 by 'catkin build ocs2_legged_robot_ros ocs2_self_collision_visualization'
  2. Build Elevation_Mapping_Cupy by 'catkin build elevation_mapping_cupy' and 'catkin build convex_plane_decomposition_ros'
  3. Build realsense_ros_gazebo by 'catkin build realsense_ros_gazebo'
  4. Build Quad_Controller by 'legged_controllers legged_unitree_description legged_gazebo legged_unitree_hw'

Usage

  1. Launch gazebo simulation:
    roslaunch legged_unitree_description empty_world.launch
  2. Launch controller:
    roslaunch legged_controllers load_controller.launch
    Use ros controller_manager plugin to start the controller. Note: User can specify whether to use perceptive controller by modifying 'if_perceptive' flag in the launch file.
  3. Launch mapping:
    roslaunch elevation_mapping_cupy a1_segmentation.launch
  4. Input the gait in the terminal of controller and Input target by /cmd_vel, /move_base_simple/goal, /dummy_navigator_PTP/rel_goal, and /dummy_navigator_PTP/abs_goal (The above are ros topics.)

Robot

Now this repo support unitree A1 and unitree aliengo. To play with different robots, user should modify the robot and parameters in load_controller.launch, empty_world.launch, SwitchedModelReferenceManager.cpp.

Experiment in Reality

Users should modify IP address in udp.h to your robot's PC IP address. To compensate for IMU drift or model error, modify the valuezyxOffset_ in StateEstimateBase.cpp.

Robot Walking Stairs

4-26.4.mp4

Acknowledgement

This work was supported in part by the National Natural Science Foundation of China under Grant U2013601, 62173314 and CAAI-Huawei MindSpore Open Fund.

About

[ICRAM 2023] V-RPC : Vision-Based Reactive Planning and Control of Quadruped Robots in Unstructured Dynamic Environments

Resources

License

Stars

Watchers

Forks

Packages

No packages published