All Projects → UMich-BipedLab → CLF_reactive_planning_system

UMich-BipedLab / CLF_reactive_planning_system

Licence: AGPL-3.0 License
This package provides a CLF-based reactive planning system, described in paper: Efficient Anytime CLF Reactive Planning System for a Bipedal Robot on Undulating Terrain. The reactive planning system consists of a 5-Hz planning thread to guide a robot to a distant goal and a 300-Hz Control-Lyapunov-Function-based (CLF-based) reactive thread to co…

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to CLF reactive planning system

Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+66252.38%)
Mutual labels:  robot, robotics, path-planning, autonomous-navigation
robot
Functions and classes for gradient-based robot motion planning, written in Ivy.
Stars: ✭ 29 (+38.1%)
Mutual labels:  robot, motion-planning, path-planning
SLAM AND PATH PLANNING ALGORITHMS
This repository contains the solutions to all the exercises for the MOOC about SLAM and PATH-PLANNING algorithms given by professor Claus Brenner at Leibniz University. This repository also contains my personal notes, most of them in PDF format, and many vector graphics created by myself to illustrate the theoretical concepts. Hope you enjoy it! :)
Stars: ✭ 107 (+409.52%)
Mutual labels:  robotics, motion-planning, path-planning
RustRobotics
Rust implementation of PythonRobotics such as EKF, DWA, Pure Pursuit, LQR.
Stars: ✭ 40 (+90.48%)
Mutual labels:  robotics, navigation, path-planning
Pathplanning
Common used path planning algorithms with animations.
Stars: ✭ 3,418 (+16176.19%)
Mutual labels:  rrt, path-planning, rrt-star
Free gait
An Architecture for the Versatile Control of Legged Robots
Stars: ✭ 263 (+1152.38%)
Mutual labels:  robot, robotics, motion-planning
Fourth robot pkg
4号機(KIT-C4)用リポジトリ
Stars: ✭ 7 (-66.67%)
Mutual labels:  robot, robotics, navigation
path planning GAN
Path Planning using Generative Adversarial Network (GAN)
Stars: ✭ 36 (+71.43%)
Mutual labels:  navigation, pathfinding, path-planning
scikit-robot
A Flexible Framework for Robot Control in Python
Stars: ✭ 70 (+233.33%)
Mutual labels:  robot, motion-planning, path-planning
2019-UGRP-DPoom
2019 DGIST DPoom project under UGRP : SBC and RGB-D camera based full autonomous driving system for mobile robot with indoor SLAM
Stars: ✭ 35 (+66.67%)
Mutual labels:  robotics, path-planning
neonavigation
A 2-D/3-DOF seamless global/local mobile robot motion planner package for ROS
Stars: ✭ 199 (+847.62%)
Mutual labels:  robotics, navigation
StuyLib
Award-Winning FRC Library by StuyPulse Team 694
Stars: ✭ 17 (-19.05%)
Mutual labels:  robot, robotics
piper
No description or website provided.
Stars: ✭ 50 (+138.1%)
Mutual labels:  robotics, motion-planning
erwhi-hedgehog
Erwhi Hedgehog main repository
Stars: ✭ 31 (+47.62%)
Mutual labels:  robot, robotics
ROS Basic SLAM
BUILDING AN AUTOMATIC VEHICLE BASED ON STEREO CAMERA
Stars: ✭ 16 (-23.81%)
Mutual labels:  robotics, navigation
igvc-software
The code base for the RoboNav team's IGVC robot.
Stars: ✭ 78 (+271.43%)
Mutual labels:  robotics, pathfinding
Object-Goal-Navigation
Pytorch code for NeurIPS-20 Paper "Object Goal Navigation using Goal-Oriented Semantic Exploration"
Stars: ✭ 107 (+409.52%)
Mutual labels:  robotics, navigation
aerial autonomy
Easily extendable package for interacting with and defining state machines for autonomous aerial systems
Stars: ✭ 22 (+4.76%)
Mutual labels:  robotics, autonomy
AVO2
Reciprocal Collision Avoidance with Acceleration-Velocity Obstacles (C++)
Stars: ✭ 24 (+14.29%)
Mutual labels:  robotics, motion-planning
tdme2
TDME2 - ThreeDeeMiniEngine2 is a lightweight, multi-platform 3D engine including tools suited for 3D game/application development using C++
Stars: ✭ 86 (+309.52%)
Mutual labels:  terrain, pathfinding

CLF_reactive_planning_system

Overview

This package provides a CLF-based reactive planning system, described in the paper: Efficient Anytime CLF Reactive Planning System for a Bipedal Robot on Undulating Terrain (PDF)(arXiv). The reactive planning system consists of a 5-Hz planning thread to guide a robot to a distant goal and a 300-Hz Control-Lyapunov-Function-based (CLF-based) reactive thread to cope with robot deviations. The planning system allowed Cassie Blue to autonomously traverse sinusoidally varying terrain. More experiments are still being conducted and this repo and the paper will be updated accordingly.

  • Author: Jiunn-Kai (Bruce) Huang and Jessy W. Grizzle
  • Maintainer: Bruce JK Huang, brucejkh[at]gmail.com
  • Affiliation: The Biped Lab, the University of Michigan

This package has been tested under [ROS] Melodic and Ubuntu 18.04.
[Note] More detailed introduction will be updated shortly. Sorry for the inconvenient!
[Issues] If you encounter any issues, I would be happy to help. If you cannot find a related one in the existing issues, please open a new one. I will try my best to help!

Abstract

We propose and experimentally demonstrate a reactive planning system for bipedal robots on unexplored, challenging terrains. The system consists of a low-frequency planning thread (5 Hz) to find an asymptotically optimal path and a high-frequency reactive thread (300 Hz) to accommodate robot deviation. The planning thread includes: a multi-layer local map to compute traversability for the robot on the terrain; an anytime omnidirectional Control Lyapunov Function (CLF) for use with a Rapidly Exploring Random Tree Star (RRT*) that generates a vector field for specifying motion between nodes; a sub-goal finder when the final goal is outside of the current map; and a finite-state machine to handle high-level mission decisions. The system also includes a reactive thread to obviate the non-smooth motions that arise with traditional RRT* algorithms when performing path following. The reactive thread copes with robot deviation while eliminating non-smooth motions via a vector field (defined by a closed-loop feedback policy) that provides real-time control commands to the robot's gait controller as a function of instantaneous robot pose. The system is evaluated on various challenging outdoor terrains and cluttered indoor scenes in both simulation and experiment on Cassie Blue, a bipedal robot with 20 degrees of freedom. All implementations are coded in C++ with the Robot Operating System (ROS) and are available at https://github.com/UMich-BipedLab/CLF_reactive_planning_system.

Video

Please checkout the introduction video. It highlights some important keypoints in the paper!

Quick View

Cassie Blue autonomously traverses the Wave Field via the proposed reactive planning system. More Cassie experiments are still being conducted. More images will be updated!

What does This Reactive Planning System Contain?

This reactive planning system consists of a low-frequency (5 Hz) planning thread and a high-frequency (300 Hz) reactive thread (see here). The planning thread involves a multi-layer local map to compute traversability, a sub-goal finder, and an omnidirectional Control Lyapunov Function RRT*. Instead of a common waypoint-following or path-tracking strategy, the reactive thread copes with robot deviation while eliminating non-smooth motions via a vector field (defined by a closed-loop feedback policy) that provides real-time control commands to the robot's gait controller as a function of instantaneous robot pose.

What is Reactive and Why

A reactive planning replaces the concept of trajectory with a vector field arising as the gradient of a potential function. Therefore, instead of a common waypoint-following or path-tracking strategy, the reactive thread copes with robot deviation while eliminating non-smooth motions via a vector field (defined by a closed-loop feedback policy) that provides real-time control commands to the robot's gait controller as a function of instantaneous robot pose. In other words, the reactive planner automatically adjusts the control commands to handle any deviations the robot may incur!

Overall Pipeline for Autonomy

Illustration of how the various processes in the overall autonomy system are distributed and their computation frequencies. The larger boxes indicate various modules such as Data Acquisition, Planning, and Control. The smaller boxes are colored according to the processor that runs them.

Results

Both simulation and experimental results are provided. All the followings results are shown as GIFs, which are generated by extracting 300 frames from the original videos and then are played back by 10 FPS. The real videos with 1x speed can be found at here.

Experimental Results

More experiments are still being conducted! More visual will be added soon.

Cassie Blue on Undulating Terrain

The experimental terrain is the Wave Field is located on the North Campus of the University of Michigan. The Wave Field consists of sinusoidal humps with a depth of approximately 1.5 m from the bottom of the valleys to the crest of the humps; there is a second sinusoidal pattern running orthogonal to the main pattern, which adds 25 cm ripples peak-to-peak even in the valleys.

Wave Field on the North Campus of the University of Michigan

Simulation Results of an ALIP Model Robot on the Wave Field

The simulated robot is based on the ALIP model and accepts piece-wise constant inputs at the beginning of each step. The highlighted areas show the local maps being provided to the robot.

Simulation Results of an ALIP Model Robot in Synthetic, Noise, and Patchy Maps

The simulated robot is based on the ALIP model and accepts piece-wise constant inputs at the beginning of each step. The highlighted areas show the local maps being provided to the robot.

-- cluttered indoor scenes with obstacles and holes

-- noisy undulating outdoor terrains

-- high-level missions

Simulation Results of a Whole-body Cassie Simulator in a Perfect Map

To ensure the control commands from the reactive planning system are feasible for Cassie-series bipedal robots, we sent the commands via User Datagram Protocol (UDP) from ROS C++ to Matlab-Simmechanics, which simulates a 20 DoF of Cassie, using footfalls on the specified terrain. The simulator then sent back the pose of the simulated Cassie robot to the planning system to plan for the optimal path via UDP. The planner system successfully took the simulated Cassie to the goal without falling!

Required Libraries / Packages

  1. Please install ROS Melodic.
  2. Please install this package.
  3. Please install planner_msgs.
  4. Please install grid_map.

The structure should be catkin
└── src
         ├── CLF_reactive_planning_system (This package)
         ├── planner_msgs
         └── customized_grid_map

Datasets

All the datasets (bagfiles) are available on Google Drive: please download them here

Running

Using provided bagfiles:

  1. Please download at least one bagfile from here.
  2. catkin_make the package in the catkin folder.
  3. source devel/setup.bash
  4. roslaunch cassie_planning fake_robot.launch
  5. roslaunch cassie_planning wavefield.launch
  6. rosbag play -l -q bagfile.bag
  7. To see the results, rosrun rviz rviz. You can directly open wavefield.rviz under the CLF_reactive_planning_system/rviz/ folder.

Onboard processing:

  1. catkin_make the package in the catkin folder.
  2. source devel/setup.bash
  3. roslaunch cassie_planning wavefield.launch
    • ensure you have robot pose and map information published
  4. To see the results, rosrun rviz rviz. You can directly open wavefield.rviz under the CLF_reactive_planning_system/rviz/ folder.
Note: More detailed explanation about how to use configuration files (*.yaml) with launch files will come soon.

Citations

The detail is described in: Efficient Anytime CLF Reactive Planning System for a Bipedal Robot on Undulating Terrain, Jiunn-Kai Huang and Jessy W. Grizzle. (PDF) (arXiv)

@article{huang2021efficient,
      title={{Efficient Anytime CLF Reactive Planning System for a Bipedal Robot on Undulating Terrain},
      author={Jiunn-Kai Huang and Jessy W. Grizzle}},
      year={2021},
      journal={arXiv preprint arXiv:2108.06699},
      primaryClass={cs.RO}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].