GithubHelp home page GithubHelp logo

p1terq / quad_controller Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 0.0 242.88 MB

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

License: BSD 3-Clause "New" or "Revised" License

CMake 7.20% C++ 92.77% Shell 0.03%

quad_controller's Introduction

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.

quad_controller's People

Contributors

p1terq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

quad_controller's Issues

add reactive module

add reactive gait #3 , looking forward to more features about reactive control, eg: LTL planning

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.