SmartOne Logo
Nadeau Innovations has been acquired by
Click here to learn more.

Evolutionary Motion Control Optimization in Physical Human-Robot Interaction


Given that the success of an interaction task depends on the capability of the robot system to handle physical contact with its environment, pure motion control is often insufficient. This is especially true in the context of medical freehand ultrasound where the human body is a deformable surface and an unstructured environment, representing both a safety concern and a challenge for trajectory planning and control. The systematic tuning of practical high degree-of-freedom physical human-robot interaction (pHRI) tasks is not trivial and there are many parameters to be tuned. While traditional tuning is generally performed ad hoc and requires knowledge of the robot and environment dynamics, we propose a simple and effective online tuning framework using differential evolution (DE) to optimize the motion parameters for parallel force/impedance control in a pHRI and medical ultrasound motion application. Through real-world experiments with a KUKA LBR iiwa 7 R800 collaborative robot, the DE framework tuned motion control for optimal and safe trajectories along a human leg phantom. The optimization process was able to successfully reduce the mean absolute error of the motion contact force to 0.537N through the evolution of eight motion control parameters.

2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)


The  high-level  steps  of  differential  evolution

The high-level steps of differential evolution (DE): (1) A population of candidate solution vectors is initialized;(2) Mutations are generated for each candidate; (3) The mutations are crossed with the original candidates; (4) The fitness of the crossed candidates is scored; (5) The population is updated based on the scored fitness. Steps 2-5 are repeated until a convergence criterion is met.


Evolutionary Motion Control

Evolutionary Motion Control


This work has been featured in Python meetup talks and IEEE webinars: