MATLAB and Simulink for Robotics and Autonomous Systems

Develop autonomous applications from perception to motion and optimize system-level behavior

Robotics researchers and engineers use MATLAB and Simulink to design, simulate, and verify every aspect of autonomous systems, from perception to motion.

  • Model robotic systems down to the finest details such as sensor noise and motor vibration.
  • Simulate robotic systems with accurate kinematics, dynamics, and contact properties.
  • Design and optimize both high-level autonomy and low-level control.
  • Synthesize and analyze sensor data with a maintained library of algorithms.
  • Verify robot design or algorithm gradually, from simulation to hardware-in-the-loop (HIL) test.
  • Deploy algorithms to robots via ROS or directly to microcontrollers, FPGAs, PLCs, and GPUs. 

“Model-Based Design and automatic code generation enable us to cope with the complexity of Agile Justin’s 53 degrees of freedom. Without Model-Based Design it would have been impossible to build the controllers for such a complex robotic system with hard real-time performance.”

Berthold Bäuml, German Aerospace Center (DLR)

Design the Hardware Platform

Create a 3D physical model or an electromechanical model of autonomous vehicles, drones, and manipulators for simulation, optimization, and reinforcement learning of control algorithms.

  • Import existing 3D models from URDF files or CAD software.
  • Make the model physically accurate by implementing dynamics, contacts, hydraulics, and pneumatics.
  • Complete the digital twins by adding an electrical diagram layer.


Perceiving the Environment

Processing Sensor Data

Implement sensor data processing algorithms with powerful toolboxes in MATLAB and Simulink.

  • Connect to sensors through ROS, Serial, and other types of protocols.
  • Visualize data from cameras, sonar, LiDAR, GPS, and IMUs. Automate common sensor processing tasks such as sensor fusion, filtering, geometric transformation, segmentation, and registration.


Perceiving the Environment

Use built-in interactive MATLAB apps to implement algorithms for object detection and tracking, localization and mapping.

  • Experiment and evaluate different neural networks for image classification, regression, and feature detection.
  • Automatically convert algorithms into C/C++, fixed-point, HDL, or CUDA® code for deployment to hardware.


Perceiving the Environment

Planning and Decision Making

Use an actively maintained algorithm library to implement 2D or 3D path planning for a robot that is either defined as a point mass or a system with kinematic and dynamic constraints. Perform task planning with Stateflow®, defining the conditions and actions needed for decision making in real time.

Designing Control Systems

Use built-in interactive MATLAB apps to analyze the behavior of complex systems in time and frequency domains. Design feedback controllers in the deterministic approach, optimization approach, or reinforcement learning approach.

Designing Control Systems

Connecting to Hardware

Communicating with Platforms and Targets

Deploy autonomous algorithms to ROS-based systems and microcontrollers such as Arduino® and Raspberry Pi™. Communicate with embedded targets via protocols, including CAN, EtherCAT®, 802.11™, TCP/IP, UDP, I2C, SPI, MODBUS®, and Bluetooth®.

“With MATLAB and Simulink we can use a single environment for control algorithm development, debugging, data analysis, and more—instead of switching between multiple tools. That integration reduces overall project development time and the chances of introducing errors.”

Dr. John Wen, Rensselaer Polytechnic Institute

Related Applications and Topics

Panel Navigation
Panel Navigation
Panel Navigation


Panel Navigation

Free Offroad Vehicles Tutorial

Learn how to create virtual testbenches for developing and validating control and autonomy of heavy machinery.