Video length is 8:56

Achieving Real-Time Robotics Control with MATLAB

From the series: MathWorks Research Summit

DI Florian Enner, HEBI Robotics

HEBI Robotics makes APIs for MATLAB® that enable the real-time control of complex robots from standard MATLAB scripts. This is accomplished by splitting the control problem into two layers:

  1. A low-level layer that handles low-level concerns such as brushless motor control and hardware drivers for various sensors. This layer runs in a real-time operating system (RTOS) on a microcontroller embedded in various hardware modules in the robot.
  2. A high-level layer that handles the overall system behavior, including tasks like synchronized communication and logging. This layer runs in MATLAB on any standard consumer OS and communicates with the hardware modules using standard Ethernet and UDP.

This allows code to be quickly prototyped, developed, and iterated upon directly in the standard MATLAB working environment, while at the same time achieving performance virtually indistinguishable from code written C++ in a real-time environment.

Just as important, this layered approach also allows the critical tasks of motor control, sensor processing, and safety monitoring to run in a set of carefully controlled real-time environments distributed throughout the robot. This enables researchers to try out new ideas directly in hardware without worrying about inconsistent performance or damaging the robot hardware.

This discussion provides the technical background and implementation details of the HEBI API for MATLAB. In particular, the discussion shows how the MATLAB Java interface allows the API to create background threads that off-load tasks like communications, synchronization, and logging in order to keep the MATLAB thread available for the main control algorithms and other calculations that are the real focus of a researcher’s work.

More information can be found at:

docs.hebi.us
github.com/hebirobotics
youtube.com/hebirobotics

 

Published: 21 Feb 2019