MATLAB and Simulink provide algorithms, modeling, and simulation tools, ROS and hardware connectivity for developing autonomous mobile robots (AMRs), service robots, and other unmanned ground vehicles (UGVs).
With MATLAB and Simulink, you can:
- Import virtual models of your robot and refine requirements for mechanical design and electrical components
- Simulate sensor models for Inertial Navigation Systems and GNSS sensors
- Localize your robot using algorithms such as particle filter and Monte Carlo Localization
- Build environment maps using Simultaneous Localization and Mapping (SLAM) algorithms
- Find optimal paths using path planning algorithms such as A* and RRT
- Evaluate path optimality using path metrics such as smoothness and clearance to obstacles
- Navigate in dynamic environments using path following and obstacle avoidance control algorithms
- Generate production code automatically for target hardware
Using MATLAB and Simulink
for Mobile Robots
Platform Development
Build or import physical models and simulate robot dynamics for wheeled and legged robots. Apply real-world constraints such as contact forces and torques to analyze the effects of your algorithms on the hardware platform. With MATLAB and Simulink, you can:
- Use kinematic motion models and wheel encoders for typical mobile robot designs such as differential drive or Ackermann steering
- Design detailed dynamic model with physical modeling of the robot’s mechanics
- Import mechanical designs from CAD software and connect them with electrical and control systems in a single simulation model
- Interface with external robot simulators such as Gazebo for environment modeling
- Connect to ROS/ROS2 middleware
Perception and Localization
Enable robot vision to build environment maps and localize your mobile robot. Develop mapping, localization, and object detection applications using sensor models and prebuilt algorithms so your mobile robot can learn its surroundings and location. With MATLAB and Simulink, you can:
- Simulate and fuse IMU and GPS sensor readings for accurate pose estimation
- Localize a lidar-based robot using Adaptive Monte Carlo Localization algorithms
- Build and visualize 2D and 3D maps using Lidar SLAM or monocular visual SLAM
- Improve map accuracy by interactively modifying loop closures using the SLAM Map Builder app
- Represent dynamic environments by creating and visualizing egocentric occupancy maps
- Detect, identify, and track objects for safe robot navigation using deep learning and machine learning algorithms such as YOLO, SSD, and CNN
Motion Planning and Control
Find paths for your mobile robot to reach its destination. Generate waypoints and send control commands to follow a global path or a local trajectory. For a mobile robot to navigate in an unknown environment, MATLAB and Simulink provide search and sampling-based planning algorithms and path following control algorithms. With MATLAB and Simulink, your robot can:
- Find the shortest and obstacle-free path using algorithms such as A* and RRT
- Navigate safely around obstacles in a dynamic environment with local re-planning
- Visualize and evaluate the planned path with metrics such as smoothness and distance from obstacles
- Optimize the path through nonlinear model predictive control
- Follow the planned path using Pure Pursuit Controller
- Calculate steering commands to avoid obstacles using Vector Field Histograms
- Avoid obstacles using reinforcement learning methods such as DDPG
Simulation-Based Testing
Detect design errors with simulation and reduce the risk and cost of hardware testing. MATLAB and Simulink provide interactive apps and simulation tools to optimize the performance as well as development and testing time for your mobile robot applications. With MATLAB and Simulink, you can:
- Generate trajectories to emulate sensor motions and calibrate their performance
- Eliminate error sources of wheel encoders by analyzing the odometry estimate
- Use abstract models to quickly validate your autonomous algorithms or build higher fidelity models
- Connect with Gazebo to perform time-synchronized co-simulation and test your algorithms in closed-loop simulations
- Run navigation algorithms in various edge case scenarios before deploying on the mobile platform
- Automatically generate C/C++, VHDL®/Verilog®, CUDA® C/C++ code to be used for rapid-prototyping and production use