For a basic installation of ROS components, please refer to the ROS installation page.
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.
C++ versions for ROS kinetic and greater
Starting from ROS kinetic, you should use naoqi_driver to connect to Pepper.
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. Use the following link to know how to get started with naoqi_driver.
Briefly from source:
$ 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/$ROS_DISTRIB/setup.sh $ cd ../ && catkin_make
To connect with the robot afterwards, run:
$ source <catkin_ws>/devel/setup.bash $ roslaunch naoqi_driver naoqi_driver.launch nao_ip:=<yourRobotIP> [network_interface:=<eth0|wlan0|vpn0>] [username:=<name>] [password:=<passwd>]
The first parameter is your nao_ip. You can get the nao_ip by clicking one time on the chest button of your robot. The second 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. Finally, the username and the password of your robot are optional and only used for 2.9 version.
C++ versions for ROS jade and lower
Before noetic, starting from indigo, you should use pepper_bringup.
In order to use the pepper bringup, you need some additional ROS packages. To install them, depending on your ROS distribution:
sudo apt-get install ros-$ROS_DISTRIB-driver-base ros-$ROS_DISTRIB-move-base-msgs ros-$ROS_DISTRIB-octomap ros-$ROS_DISTRIB-octomap-msgs ros-$ROS_DISTRIB-humanoid-msgs ros-$ROS_DISTRIB-humanoid-nav-msgs ros-$ROS_DISTRIB-camera-info-manager ros-$ROS_DISTRIB-camera-info-manager-py
Please note to change those packages to meet your local installation of ROS (e.g. export ROS_DISTRIB=jade beforehand ).
You can simply install the released packages via aptitude. There exist official releases for indigo and jade. Simply run
sudo apt-get install ros-$ROS_DISTRIB-pepper-.*
Also here, please be aware of which version of ROS you have (e.g. jade , indigo )
Most of ROS application needs a core to run. To start a core, just type
Note that only one core can run at once.
To bring-up Pepper with all actuators and sensors, run:
$ roslaunch pepper_bringup pepper_full.launch nao_ip:=<yourRobotIP> roscore_ip:=<roscore_ip> [network_interface:=<eth0|wlan0|vpn0>]
This version need to specifies the IP of your robot. Since there is no roscore running on the robot, we have to tell which roscore IP to use.
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 documentation. We cross-reference this here to avoid duplication.
You need to install Pepper bring-up. But in order 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-$ROS_DISTRIB-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.