This example shows how to connect to a TurtleBot® using the MATLAB® ROS interface. You can use this interface to connect to a wide range of ROS-supported hardware from MATLAB. If you are using a TurtleBot in Gazebo® refer to the Get Started with Gazebo and a Simulated TurtleBot example.
The following steps use the TurtleBot 2 platform with the Kobuki base (https://www.turtlebot.com/). The kit comes with a laptop that has a pre-installed copy of ROS with the appropriate TurtleBot software. This procedure assumes that you are using a new TurtleBot of similar configuration. If you are already using a TurtleBot and communicating with it through an external computer, do not perform this procedure.
Unpack the TurtleBot and fully charge the notebook.
Make sure that the TurtleBot base is fully charged.
Turn on the TurtleBot base.
Connect the notebook to the TurtleBot base (via USB cable).
Turn on the notebook (in many cases the username is
turtlebot and password is
turtlebot, but it depends on the vendor).
Make sure that you have a network set up to connect the host computer (the one with MATLAB) to the notebook. Use a wireless router or an Ethernet cable.
Open a terminal on the notebook and run
ifconfig. The IP address associated with the network that you connected to is displayed.
Set the appropriate environment variables on the TurtleBot by executing the following commands. Execute these command only once.
echo export ROS_HOSTNAME=IP_OF_TURTLEBOT >> ~/.bashrc echo export ROS_MASTER_URI=http://IP_OF_TURTLEBOT:11311 >> ~/.bashrc sudo sh -c 'echo export ROS_HOSTNAME=IP_OF_TURTLEBOT >> /etc/ros/setup.sh'
Make sure that you can ping the host machine from the notebook:
ping is shown on the left. An unsuccessful
ping is shown on the right.
Note: These environment variables must always have the correct IP address assigned to the TurtleBot. If the IP address of the TurtleBot laptop changes, you must also change the environment variables using the preceding commands.
Here is a diagram illustrating the proper assignment of environment variables:
ROS should be running on your TurtleBot now. If it is not you can restart the TurtleBot laptop. ROS starts automatically on reboot and the robot will chirp. You can also start ROS by using the TurtleBot icon on the right side of the top navigation bar and selecting the option to start the TurtleBot.
Once ROS is running, launch the Kinect® that is mounted on the TurtleBot. If you are using Gazebo, type the following command in a terminal on the TurtleBot laptop:
roslaunch turtlebot_bringup 3dsensor.launch
A possible output is shown below.
If you have a TurtleBot with a different setup from the setup previously described, before trying to communicate through MATLAB make sure that the following information is true:
You have set up your network so that you can ping the host machine.
You have access to the following topics. On the TurtleBot laptop, type
rostopic list to see the topics.
/odom /mobile_base/commands/velocity /mobile_base/commands/sound /mobile_base/commands/reset_odometry /mobile_base/sensors/bumper_pointcloud /mobile_base/events/cliff /camera/rgb/image_color/compressed /scan
On the network, find the IP address of your host computer. On a Windows® machine, at the command prompt, type
ipconfig. On a Mac or Linux® machine, open a terminal and type
ifconfig. Here is an example of
Make sure that you can ping the notebook:
ping is shown first, followed by an unsuccessful
The Robotics System Toolbox Support Package for TurtleBot based Robots provides a streamlined interface to TurtleBot. It enables you to:
Acquire sensor data and send control commands without explicitly calling ROS commands.
Communicate transparently with a simulated robot in Gazebo or with a physical TurtleBot.
To install the support package, open Add-Ons > Get Hardware Support Packages on the MATLAB Home tab and select ROS Toolbox Support Package for TurtleBot based Robots. Alternatively, use the
Refer to the next example: Communicate with the TurtleBot