For a basic installation of ROS components, please refer to the ROS Installation.
In the following, we will explain how you install and start the available bridges between ROS and NAOqi. Hereby, we will install an officially supported C++ version as well as the older Python version.
In order to launch the Python version of Pepper, you are required to install the official Aldebaran NAOqi SDK. The install instructions can be found on the nao/Tutorials/Installation#NAOqi. We cross-reference this here to avoid duplication.
Furthermore, you need some additional ROS packages. To install them simply execute the following:
sudo apt-get install ros-indigo-driver-base ros-indigo-move-base-msgs ros-indigo-octomap ros-indigo-octomap-msgs ros-indigo-humanoid-msgs ros-indigo-humanoid-nav-msgs ros-indigo-camera-info-manager ros-indigo-camera-info-manager-py
Please note to change those packages to meet your local installation of ROS (e.g. replace ros-indigo-* with ros-jade-* ).
You can simply install the necessary packages via aptitude. There exist official releases for indigo and jade. Simply run
sudo apt-get install ros-indigo-pepper-.*
Also here, please be aware of which version of ROS you have (e.g. jade or indigo)
Packages from source
In case you want to start developing around Pepper, the following instructions will checkout the necessary packages from source. It will use catkin to compile, so in case you are not familiar with, don’t forget to follow the official catkin tutorials.
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ git clone https://github.com/ros-naoqi/naoqi_driver.git
make sure you get all the dependencies installed
$ rosdep install -i -y --from-paths ./naoqi_driver
And finally we build
$ source /opt/ros/indigo/setup.sh $ cd ../ && catkin_make
Starting Pepper packages
Starting the bridge on a real Pepper
Most of ROS application needs a core to run. To start a core, just type
Note that only one core can run at once.
Now we are good to go! To bring-up Pepper with all actuators and sensors, we run:
$ roslaunch pepper_bringup pepper_full.launch nao_ip:=<yourRobotIP> roscore_ip:=<roscore_ip> [network_interface:=<eth0|wlan0|vpn0>]
The first parameter specifies the IP of your robot. Since there is no roscore running on the robot, we have to tell which roscore IP to use. That's the second parameter. The third parameter network_interface specifies the network interface the bridge is connected. By default, this is set to eth0. Changing this becomes important to establish a correct network connection between robot and computer, when you are connected via a different network device, such as wlan0 or vpn0 etc. In case you are not certain which device to use, verify with ifconfig and verify which network device has the correct IP.
If you want to execute the Python bridge, we launch the second launch file.
$ roslaunch pepper_bringup pepper_full_py.launch nao_ip:=<yourRobotIP> roscore_ip:=<roscore_ip>
NOTE If you start the bridge without launching a core, the launch file will automatically start one. This can be convenient, but if you keep turning your bridge on and off, it is better to keep a core open in the background, especially if you use RViz or if you kill the bridge brutally.
Displaying Pepper in RViz
In order to visualize Pepper in RViz, simply open up a new RViz. Please take care to source your setup.bash as before.
$ rosrun rviz rviz
We provide a pre-configured RViz configuration which has all basic displays such as TF, RobotModel, Camera, Lasers and Sonars. This configuration can be found inside your catkin workspace under
Based on Aldebaran's policy, we cannot visualize the robot 3D meshes. If we wish to visualize the complete 3D model, you have to install them which includes a licence agreement term to accept. Simply trigger:
$ sudo apt-get install ros-indigo-pepper-meshes
During that installation, you have to accept the licence and you are good to go! Simply re-start your RViz and load the configuration file again. You will see a similar picture to the given screenshot down there.