ROS Toolbox

Design, simulate, and deploy ROS-based applications

ROS Toolbox provides an interface connecting MATLAB® and Simulink® with the Robot Operating System (ROS and ROS 2), enabling you to create a network of ROS nodes. The toolbox includes MATLAB functions and Simulink blocks to import, analyze, and play back ROS data recorded in rosbag files. You can also connect to a live ROS network to access ROS messages.

The toolbox lets you verify ROS nodes via desktop simulation and by connecting to external robot simulators such as Gazebo. ROS Toolbox supports C++ code generation (with Simulink Coder™), enabling you to automatically generate ROS nodes from a Simulink model and deploy to simulated or physical hardware. Support for Simulink external mode lets you view messages and change parameters while your model is running on hardware.


ROS Network

Connect to ROS or ROS 2 to prototype autonomous systems applications. Access hardware or simulators over a ROS network.

ROS Network Connection

Connect to and explore ROS or ROS 2 networks. Use introspection to list available topics and types. View a detailed structure of ROS messages.


Connecting to a ROS network

ROS Network Setup

Create and define your own ROS or ROS 2 network to communicate between different devices. Set up multiple ROS nodes to distribute tasks and information.


Example ROS 2 network. 

ROS Communication

Communicate with ROS nodes by passing messages.

Publishers and Subscribers

Send and receive ROS or ROS 2 messages using a topic with publish-subscribe semantics.

simulink model sensor.JPG

Simulink model for subscribing to sensor data and publishing wheel velocities. 

Services and Actions

Use a client-server architecture to send requests, perform tasks, and get feedback in ROS applications.

Client-server interaction using ROS services and actions.

Parameter Server

Use ROS parameter servers to store configuration options for multiple nodes and enable the dynamic reconfiguration of nodes.

ros parameter.JPG

Simulink model that queries and sets ROS parameters to control vehicle gear selection.

ROS Message

Work with messages to share information between ROS nodes. Use built-in messages or specify custom message definitions.

ROS Log Files (rosbags)

Import rosbag files to filter, visualize, and analyze logged data.


Workflow for ROS data selection from rosbag files.

Built-in Messages

Use a library of supported ROS message packages for your ROS applications.

ros message.JPG

Example of supported ROS messages.

Custom Messages

Add new message types for your ROS or ROS 2 applications using custom message support.


Generating ROS 2 custom messages.

ROS Deployment

Deploy standalone ROS and ROS 2 nodes to your network.

Node Generation in Simulink

Generate C++ code for standalone applications that use ROS or ROS 2 functionality.

Rose2 Node.JPG

Generating a standalone ROS 2 node from Simulink. Explore gallery (6 images)

Application Examples

Use application examples to design, simulate, and deploy systems enabled by ROS and ROS 2 communication.


Simulink model for controlling a robot running on a ROS-based simulator.

Have Questions About Robotics System Toolbox

30 Days of Exploration at Your Fingertips