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 (ROS).
- 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.
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.
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.
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.
Create a map of the robot using range sensor readings and known poses of the robot, or you can import an occupancy grid. 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. Implement state machines to define the conditions and actions needed for decision making.
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.
“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