Lecture 7 - Obstacle Avoidance with Dynamical Systems


Abstract


This lecture presents how dynamical systems can be used to create robust obstacle avoidance when controlling robots. In order to guarantee obstacle avoidance, one can locally modulate the dynamical system (DS) to contour obstacles or to remain within a given workspace. Importantly, while doing so, we can preserve some of the inherent properties of the DS, such as convergence on a given target. We start with a modulation that allows for avoiding convex obstacles, and then extend it to concave obstacles and to multiple obstacles in movement. We show that the formulation can also be used to enforce a flow to move inside a volume, which would be useful to ensure that the path stays within the robot’s workspace.


Lecture Video



Slides


Click here to download a pdf version of the ppt presentation.


Exercises Instructions


Click here to download a pdf of the instructions for the exercises.


Code for MATLAB Exercises


The recommended way to do the MATLAB exercises is to download the entire repository once, then go to each lecture's folder. Detailled instructions for installation can be found on the Software page.


Click here to download the corresponding exercise for this lecture as a zip file.
Note you will also need this libraries folder placed with the correct directory structure.


First Theoretical Exercise Solution


Click here to download a pdf of the solution of the first handwritten exercise.




Supplements


Guaranteed obstacle avoidance of dense and dynamic obstacles in enclosed spaces




L. Huber, A. Billard and J.-J. Slotine (2019) "Avoidance of Convex and Concave Obstacles With Convergence Ensured Through Contraction". In IEEE Robotics and Automation Letters 4 (2), 1462-1469.


L. Huber, J.-J. Slotine and A. Billard (2022) "Avoiding Dense and Dynamic Obstacles in Enclosed Spaces: Application to Moving in Crowds". In IEEE Transactions on Robotics 38 (5), 3113-3132.


Python packages by Lukas Huber for :

Non linear obstacle avoidance

Dynamic obstacle avoidance


This is a closed-form approach to obstacle avoidance for multiple moving convex and star-shaped concave obstacles, inspired from harmonic-potentials fields. It was applied on an autonomous robot (QOLO) in a static complex indoor environment and tested in simulations with dense crowds.

Obstacle Type : Convex, Concave, multiple, moving
Theoritical guarantees : Asymptotic stability, Impenetrability of obstacles hull
Type of dynamics : non-linear, task-space



Fast obstacle avoidance


lukas 2022


L. Huber, A. Billard and J.-J. Slotine (2022) "Fast Obstacle Avoidance Based on Real-Time Sensing". In IEEE Robotics and Automation Letters (RA-L).


Python packages by Lukas Huber for : Fast obstacle avoidance


This method addresses the issue of enabling obstacle avoidance based on sparse and asynchronous perception. The proposed control scheme combines a high-level input command provided by either a planner or a human operator with fast reactive obstacle avoidance (FOA). The sampling-based sensor data can be combined with an analytical reconstruction of the obstacles for real-time collision avoidance.

Obstacle Type : Convex, star-shaped, multiple, moving
Theoritical guarantees : Asymptotic stability, Impenetrability of obstacles hull
Type of dynamics : non-linear



Avoidance of concave obstacles through rotation of nonlinear dynamics


lukas 2023


L. Huber, J.-J. Slotine and A. Billard (2023) "Avoidance of concave obstacles through rotation of nonlinear dynamics". In IEEE Transaction on Robotics.


Controlling complex tasks in robotic systems, such as circular motion for cleaning or following curvy lines, can be dealt with using nonlinear vector fields. This article introduces a novel approach called the rotational obstacle avoidance method (ROAM) for adapting the initial dynamics when obstacles partially occlude the workspace. ROAM presents a closed-form solution that effectively avoids star-shaped obstacles in spaces of arbitrary dimensions by rotating the initial dynamics toward the tangent space. The algorithm enables navigation within obstacle hulls and can be customized to actively move away from surfaces while guaranteeing the presence of only a single saddle point on the boundary of each obstacle. We introduce a sequence of mappings to extend the approach for general nonlinear dynamics.


Obstacle Type : Convex, star-shaped, multiple, moving
Theoritical guarantees : single saddle point on boundary of obstacle, Impenetrability of obstacles hull
Type of dynamics : dynamic, non-linear


Passive obstacle aware control to follow desired velocities


lukas 2024


L. Huber, T. Trinca, J.-J. Slotine and A. Billard (2024) "Passive Obstacle Aware Control to Follow Desired Velocities".


Evaluating and updating the obstacle avoidance velocity for an autonomous robot in real-time ensures robustness against noise and disturbances. A passive damping controller can obtain the desired motion with a torque-controlled robot, which remains compliant and ensures a safe response to external perturbations. Here, we propose a novel approach for designing the passive control policy. Our algorithm complies with obstacle-free zones while transitioning to increased damping near obstacles to ensure collision avoidance. This approach ensures stability across diverse scenarios, effectively mitigating disturbances. Validation on a 7DoF robot arm demonstrates superior collision rejection capabilities compared to the baseline, underlining its practicality for real-world applications. Our obstacle-aware damping controller represents a substantial advancement in secure robot control within complex and uncertain environments.



Real-time Joint-Space Obstacle Avoidance



M Koptev, N Figueroa, A Billard (2022) "Real-Time Self-Collision Avoidance in Joint Space for Humanoid Robots". In IEEE Robotics and Automation Letters 6 (2), 1240-1247.


koptev_shelf


M Koptev, N Figueroa, A Billard (2022) "Neural Joint Space Implicit Signed Distance Functions for Reactive Robot Manipulator Control". In IEEE Robotics and Automation Letters 8 (2), 480-487.


Python code by Mikhail Koptev for : Reactive joint space obstacle avoidance.


This method uses a neural implicit signed distance function expressed in joint space coordinates, that efficiently computes distance-to-collisions for arbitrary robotic manipulator configurations. This distance function can be used to achieve real-time reactive control by i) formulating it as a collision-avoidance constraint for a quadratic programming (QP) inverse kinematics (IK), and ii) introducing it as a collision cost in a sampling-based joint space model predictive controller (MPC).

Obstacle Type : Convex, Concave, multiple, moving
Theoritical guarantees :
Type of dynamics : non-linear, joint-space