Installing ROS 2 on Pepper robot

352 views
Skip to first unread message

D.Singh

unread,
Jan 29, 2024, 12:09:30 PMJan 29
to ROS Sig Aldebaran
Hello, I am a university student who is currently working with the pepper robot for a project.
To complete this project I have to install ROS 2 on the pepper robot that I am using but I have no idea where to start and how to do it since I am new to both ROS and pepper.

At the moment pepper doesn't have anything installed in it and the tablet doesn't do anything. (I can connect to pepper via ethernet cable and ssh)

Does anyone know how to install ROS 2 on pepper or have a guide that I can follow?

As for my computer, I am currently using Ubuntu 22.04 (Jammy Jellyfish)and have ROS 2 (Humble Hawksbill) installed on my computer.

D.Singh

unread,
Feb 9, 2024, 6:29:00 AMFeb 9
to ROS Sig Aldebaran
UPDATE:

ERROR: what():  Unrecognized protocol to create the TransportServer.

From the GitHub repository (https://github.com/ros-naoqi/naoqi_driver2) provided in the group chat I have managed to download and install all the dependencies required to run ROS2.
To do so I run the following commands:

sudo apt-get install ros-humble-naoqi-driver
sudo apt-get install ros-humble-naoqi-driver-dbgsym (these two commands are not in the git read me file, I had to use them since I didn't had the naoqi driver installed before)

sudo apt-get install ros-humble-naoqi-libqi
sudo apt-get installros-humble-naoqi-libqicore
sudo apt-get installros-humble-naoqi-bridge-msgs
sudo apt-get installros-humble-pepper-meshes
sudo apt-get installros-humble-nao-meshes


After I ran those commands I made a workspace in my home directory on my computer: 
mkdir -p pepperRos2/src

Once the workspace was made I followed the instruction on the read me file:
pepprRos2/src: git clone https://github.com/ros-naoqi/naoqi_driver2.git
pepprRos2/src: vcs import < naoqi_driver2/dependencies.repos
pepprRos2: rosdep install --from-paths src --ignore-src --rosdistro humble -y
pepperRos2: colcon build --symlink-install


After all these commands, two windows appeared (pepper_meshes2 and nao_meshes2) which I had to agree to carry on.

To connect the robot to my computer I ran the following commands:
sudo ifconfig enp0s31f6 (ip address of the robot -1 for the last digit, so if the ip ends with 59 I put 58)
Then I connected via ssh:
ssh @nao (ip address of the robot)

After that I pinged the robot (ping ip address of the robot) to check if it was connected. 

After the ping I ran the following command to deactivate the autonomous behaviour: 
qicli call ALAutonomousLife.setState disabled
qicli call ALMotion.wakeUp


Then I opened a new terminal on my computer and ran the following commands:
source /opt/ros/humble/setup.bash
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=0.0.0.0:0 (I changed "<robot_host>" with the ip address of the robot when I ran this command on my computer) 
(my NAOqi driver version is 2.5)

After I ran the last command I got the following error:
Screenshot from 2024-02-08 10-13-20.png
Then I tried to run the command below:
ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> nao_username:=nao nao_password:=<robot_password> qi_listen_url:=0.0.0.0:0 (I changed "<robot_host>" with the ip address of the robot when I ran this command on my computer and <robot_password> with the password of my robot. The username of my robot is the one in this command)

However I got the same errors as above.

Does anyone know how to solve this issue?

Plus the read me file mentions that I can run ros2 directly on the pepper robot, does anyone know how to install ros2 directly on the robot or have a tutorial/guide that I can follow?

Mohand Tahar Soualah

unread,
Feb 9, 2024, 7:56:57 AMFeb 9
to ROS Sig Aldebaran
Hi,

I already reached the same error this week, after several tries, I found that the problem is with the version of naoqi.
the package naoqi_driver2 uses the newest version, which is not compatible with naoqi 2.5.

Unfortunately, the only one solution I found is to use the KINETIC ROS 1 (newer versions of ros1 are not compatible with naoqi 2.5)

D.Singh

unread,
Feb 9, 2024, 2:26:21 PMFeb 9
to ROS Sig Aldebaran
Hi,

Thank you a lot! 

D.Singh

unread,
Feb 23, 2024, 6:08:07 AMFeb 23
to ROS Sig Aldebaran
UPDATE N.2:

Issues while starting Pepper packages

After finding out that the pepper robot wasn't compatible with ubuntu 22.04 and ROS 2 I tried to use docker to simulate Ubuntu 16.04 Xenial and ROS Kinetic.

Here is the docker file that I am using:
(I used Visual Studio Code as my IDE)

# Use the official ROS Kinetic base image
FROM osrf/ros:kinetic-desktop-full

# Install Ubuntu
ENV DEBIAN_FRONTEND=noninteractive
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections


RUN apt-get update && apt-get install -y \
software-properties-common \
&& apt-add-repository universe \
&& apt-get update \
&& apt-get install -y \
ubuntu-desktop \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Update package lists
RUN apt-get update

# Install X11 apps
RUN apt-get install -y x11-apps

# Install Python development tools and libraries
RUN apt-get install -y \
python-catkin-tools \
python-pip \
python-dev \
libssl-dev \
libffi-dev

# Install miscellaneous tools
RUN apt-get install -y \
cmake \
wget \
git \
nano \
vim \
tmux \
net-tools

# Install ROS packages
RUN apt-get install -y \
ros-kinetic-driver-base \
ros-kinetic-move-base-msgs \
ros-kinetic-octomap \
ros-kinetic-octomap-msgs \
ros-kinetic-humanoid-msgs \
ros-kinetic-humanoid-nav-msgs \
ros-kinetic-camera-info-manager \
ros-kinetic-camera-info-manager-py


RUN apt update
RUN apt -y upgrade

# Clean up APT cache to reduce image size
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/*

#Installing NAOqi drivers
RUN pip install qi
RUN mkdir /naoqi
WORKDIR /naoqi
RUN tar xzf naoqi-sdk-2.5.5.5-linux64.tar.gz
RUN tar xzf pynaoqi-python2.7-2.5.5.5-linux64.tar.gz
RUN echo 'export PYTHONPATH=${PYTHONPATH}:naoqi/pynaoqi-python2.7-2.5.5.5-linux64/lib/python2.7/site-packages' >> ~/.bashrc
RUN echo 'export QI_SDK_PREFIX=naoqi/pynaoqi-python2.7-2.5.5.5-linux64' >> ~/.bashrc

RUN apt update
RUN apt -y upgrade

RUN apt-get install -y ros-kinetic-nao-robot

#Retun back to the home directory
WORKDIR /

# Setup Catkin workspace
RUN mkdir -p /catkin_ws/src
WORKDIR /catkin_ws/src

RUN apt update
RUN apt -y upgrade


RUN rosdep install -i -y --from-paths ./naoqi_driver

# Initialize Catkin workspace
RUN /bin/bash -c "source /opt/ros/kinetic/setup.bash && catkin_init_workspace"

RUN apt update
RUN apt -y upgrade

# Build the Catkin workspace
WORKDIR /catkin_ws
RUN /bin/bash -c "source /opt/ros/kinetic/setup.bash && catkin_make"

# Source the setup script to set up ROS environment variables
RUN echo "source /opt/ros/kinetic/setup.bash" >> /root/.bashrc

# Source the setup script for the Catkin workspace
RUN echo "source /catkin_ws/devel/setup.bash" >> /root/.bashrc

RUN apt update
RUN apt -y upgrade

#Retun back to the home directory
WORKDIR /

# Set up entry point
CMD ["bash"]

# Set the display environment variable
ENV DISPLAY=0
ENV QT_X11_NO_MITSHM=1


############################# Build command #############################
#sudo docker build -t ros1pepper --build-arg DISPLAY=$DISPLAY .

############################# Run command #############################
#sudo docker run -it --rm --privileged --gpus all --name roskinetic --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix ros1pepper

############################# Run the following as soon as you run the docker file to download the dependencies required for the robot #############################
#sudo dpkg-reconfigure debconf (tab to move around and enter to select) select Dialog and low in the window
#sudo apt-get install ros-kinetic-pepper-.*

############################# Command to open a new terminal #############################
#sudo docker exec -it --privileged roskinetic /bin/bash

############################# Display error #############################
# xhost +local:


To create this docker file i have followed the instruction on the following 3 websites:


After I running the docker file, I have to manually run the following commands since I couldn't find a way to directly implement it in the file and I'm still working on it:
sudo dpkg-reconfigure debconf         (tab to move around and enter to select. Select Dialog and low in the window)
sudo apt-get install ros-kinetic-pepper-.*        (Accept the licence agreement)

Sometimes I get a display error to fix that i open a terminal on my computer (not in docker) and run the following command to fix it:
xhost +local:

Once all the dependencies are installed, I start by connecting the robot to my computer through an ethernet cable and run the ifconfig command:
sudo ifconfig enp0s31f6 (ip address of the robot -1 for the last digit, so if the ip ends with 59 I put 58)

After that I open a second terminal in visual studio code to run roscore:
1. Open a new terminal in visual studio code and run:  sudo docker exec -it --privileged roskinetic /bin/bash  this opens a new terminal connected to the docker file.
2. Run roscore

Once all the set up is completed I run the following command to start the pepper packages:
roslaunch pepper_bringup pepper_full_py.launch nao_ip:=<yourRobotIP> roscore_ip:=<roscore_ip> (I change both <> with the corresponding required data. For the roscore_ip I change it to the ROS_MASTER_URI displayed in the roscore)

However when I run the previous command I get the following errors:
Screenshot from 2024-02-21 15-38-19.png
Screenshot from 2024-02-21 15-38-25.png
Screenshot from 2024-02-21 15-38-27.png

To check if i have correctly installed the NAOqi driver, I run python in the docker terminal and within python I type/run from naoqi import ALProxy (as suggested here: http://wiki.ros.org/nao/Tutorials/Installation#NAOqi) which does not show any error, so I assume that the NAOqi API is in my PYTHONPATH. I also tried with import naoqi which again didn't show any error message.

Does anyone know how to solve this issue?

Victor Paléologue

unread,
Feb 23, 2024, 6:26:42 PMFeb 23
to ROS Sig Aldebaran
How about the ROS 2 package for Humble?
The documentation is on the GitHub project: https://github.com/ros-naoqi/naoqi_driver2
Let us know how it goes!

D.Singh

unread,
Feb 24, 2024, 9:35:31 AMFeb 24
to ROS Sig Aldebaran
Hi Victor,

I have already tried to use the naoqi_driver2, but after following the instructions in the documentation I was having the following error:
ERROR: what():  Unrecognized protocol to create the TransportServer.

I have discussed this error in more detail in my second post of this conversation (the one that starts with: "UPDATE: ERROR: what(): Unrecognized protocol to create the TransportServer. From the GitHub")
Another person had the same issue and they advised me to use ROS Kinetic.

If you know how to fix that error please let me know.

M.Sprich

unread,
Feb 29, 2024, 5:05:08 AMFeb 29
to ROS Sig Aldebaran
Hi 

I just installed a fresh Ubuntu 22.04 with ROS2 Humble. 
I ran i the same problem in the beginning. I seem to have found a solution that works without complications to me so far.

Instead of:

ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> qi_listen_url:=0.0.0.0:0 

Try dropping the qi_listen_url:

ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=<robot_host> 

This fixed it for me and so far I did not run in to any other errors.

Hope this helps :) 

P.S. I was wondering if you found any documentation on how to use this repo correctly : https://github.com/ros-naoqi/naoqi_driver2?tab=readme-ov-file
Right now I'm a bit confused on what functions it provides expect from the ones used in the tutorial. If you know anything, it would be highly appreciated.

Victor Paléologue

unread,
Feb 29, 2024, 5:38:25 AMFeb 29
to ROS Sig Aldebaran
Thanks for sharing the command line you ran. That's how it's meant to be done!
I understand what's wrong, I think the README is incorrect and the arg should be qi_listen_url:=tcp://0.0.0.0:0 (with that tcp:// protocol prefix).
Also, this what is passed by default already, so I'll rephrase this part of the README.
It really helps, thank you.
@D.Singh, does it solve your issue?
@M.Sprich: you are right, an exhaustive list of everything the package provide would be useful. Until I find time to write it down, you can simply ask here.

D.Singh

unread,
Mar 10, 2024, 12:20:01 PMMar 10
to ROS Sig Aldebaran
Hi Victor and M. Sprich,
Thanks for your suggestions, I followed your instructions and the good news is that I'm not having the TransportServer error anymore but the bad news is that I'm having a different error this time.
Here is a screenshot of the error I am having now:

EditedScreenshot from 2024-03-01 09-40-11.png

I tried solutions from Victor and M.Sprich however I always ended with the same error: Can't find service: ROS-Driver-Audio
I also tried to set the audio argument to false as explained by Victor in the git repo but I am still having this error.
From what I have discovered online there are no audio drivers in ROS2 Humble (the distro of ROS that I am using).
EditedScreenshot from 2024-03-10 15-28-10.png

If anyone knows how to fix this issue please let me know.

P.S.  Unfortunately M.Sprich I'm in the same situation, I am downloading the repository but haven't found any documentation on how to use it.
Reply all
Reply to author
Forward
Message has been deleted
Message has been deleted
0 new messages