Robotics researchers and engineers use MATLAB and Simulink to design and tune algorithms, model real-world systems, and automatically generate code – all from one software environment
With MATLAB and Simulink, you can:
Connect to and control your robot with the algorithms you develop.
Develop hardware-agnostic algorithms and connect to the Robot Operating System - both ROS and ROS2.
Connect to a range of sensors and actuators so you can send control signals or analyze many types of data.
Eliminate hand-coding by automatically generating code for embedded targets like microcontrollers, FPGAs, PLCs, and GPUs in many languages such as C/C++, VHDL/Verilog, Structured Text, and CUDA.
Connect to low-cost hardware such as Arduino and Raspberry Pi using pre-built hardware support packages.
Simplify design reviews by creating shareable code and applications.
Work with legacy code and integrate with existing robotics systems.
Overview of Robotics and Autonomous Systems
Simplify the complex tasks of robotic and ground vehicle path planning and navigation using MATLAB and Simulink. This demonstration walks through how to simulate an autonomous robot using just three components: a path, a vehicle model, and a path following algorithm.
Designing the Hardware Platform
Design and analyze 3D rigid-body mechanics (such as vehicle platforms and manipulator arms) and actuator dynamics (such as mechatronic or fluid systems). You can work directly with existing CAD files by importing URDF files directly into Simulink or from CAD software like SolidWorks and Onshape. Add constraints, such as friction, and model multi-domain systems with electrical, hydraulic, or pneumatic, and other components. Once in operation, reuse design models as digital twins.
Collecting Sensor Data
You can connect to sensors through ROS. Specific sensors, such as cameras, LiDAR, and IMUs, have ROS messages that can be converted to MATLAB data types for analysis and visualization.
You can automate common sensor processing workflows such as importing and batch-processing large data sets, sensor calibration, noise reduction, geometric transformation, segmentation, and registration.
Perceiving the Environment
Built-in MATLAB apps let you interactively perform object detection and tracking, motion estimation, 3D point-cloud processing, and sensor fusion. Use deep learning for image classification, regression, and feature learning using convolutional neural networks (CNNs).
Automatically convert your algorithms into C/C++, fixed-point, HDL, or CUDA code.
Planning and Decision Making
Create a map of the environment using the LiDAR sensor data via Implement Simultaneous Localization and Mapping (SLAM) with MATLAB (2:23).
Navigate constrained environments by designing algorithms for path and motion planning. Use path planners to compute an obstacle-free path in any given map.
Design algorithms that allow your robot to make decisions when faced with uncertainty and perform safe operation in collaborative environment. Implement state machines to define the conditions and actions needed for decision making.
Designing Control Systems
You can use algorithms and apps to systematically analyze, design, and visualize the behavior of complex systems in time and frequency domains.
Automatically tune compensator parameters using interactive techniques such as bode loop shaping and the root locus method. You can tune gain-scheduled controllers and specify multiple tuning objectives, such as reference tracking, disturbance rejection, and stability margins.
Code generation and requirements traceability helps you validate your system and certify compliance.
Communicating with Other Platforms and Targets
Communicate with embedded targets using several protocols including CAN, EtherCAT, and 802.11. Use digital, RF, and other wireless technologies to connect to hardware that supports TCP/IP, UDP, I2C, SPI, MODBUS, and Bluetooth serial protocols.