Author: Cedric Le Bono ==== Pepper ==== IMT Atlantique’s Pepper status. This readme covers the packages and code and that was installed and produced either for the Robocup@Home 2023 competition or experiment with ROS2. ==== Gentoo ==== On both pepper a gentoo OS was added on top of the existing OS in order to bypass the lack of root access and more easily install packages. The gentoo OS is active by default and can be deactivated with: $ exit It can be activated again with: $ /tmp/gentoo/startprefix With the gentoo OS deactivated the robots’ behaviour is the same as Pepper’s default behaviour. While it is activated, Pepper has access to ROS1, python3.10 and several utility libraries like OpenCV. ==== Code ==== === ROS2 === * Pepper with the IP address 10.77.3.15 has ROS2 installed. The DDS installed is FastRTPS (Cyclone DDS doesn’t work on 32 bits environment.). Asio, [[https://mycore.core-cloud.net/index.php/s/Rh4EbGqxc05W3ap/download?path=%2F&files=pepper_os_11.0.4.tar.lzma|The source code can be found here]] If necessary, it can be reinstalled on Pepper with the following commands: #Download and start the docker (~20 minutes) docker run -it neaum/pepper_os_ros2_humble_32b:latest #In another terminal docker scp DOCKER_SESSION_ID:/tmp/pepper_os.tar.lzma . scp pepper_os.tar.lzma nao@PEPPER_IP #Connect to Pepper and untar the archive cd ~/ && tar --lzma -xvf ./pepper_os.tar.lzma #Remove the archive. rm ./pepper_os.tar.lzma * DOCKER_ID being the unique identifier of the docker session (nao@DOCKER_SESSION_ID) * PEPPER_IP being the IP address of the Pepper. ssh nao@PEPPER_IP #Start ROS2 humble (a function was added in the .bash_profile so it should be the default behaviour) source ~/ros2_humble/install/setup.sh #Source the packages with the naoqi_drivers source ~/catkin_ros2/install/setup.sh ros2 launch naoqi_driver naoqi_driver.launch.py nao_ip:=PEPPER_IP network_interface:=wlan0 * PEPPER_IP being the IP address of the Pepper. * network_interface:=wlan0 is only if the Pepper is connected to the network using wifi. If it is connected to the network via ethernet, use network_interface:=eth0 instead. The correct behaviour should look like this: {{:ros2_naoqi_driver_launch.png|alt text}} The topics can be viewed with: ros2 topic list {{:ros2_naoqi_driver_list.png| alt text}} At last, the camera topics can be viewed using rviz: #From another on the same network as peppper export ROS_MASTER_URI=http://PEPPER_IP:11311 rviz2 rviz {{:ros2_naoqi_driver_rviz.png| alt text}} === Robocup@Home === * Pepper with the IP address 10.77.3.16 has a code similar to the one used in the Robocup@Home SSPL 2023. It uses ROS1 and has several packages to perform some tasks during the competition. A [[https://hub.docker.com/repository/docker/neaum/pepper_os_ros2_humble_32b/general|docker]] was made with the ROS1 and a gentoo OS that can be installed on Pepper. Note this doesn’t correspond to the final version used in the competition. That code is on the Pepper’s at the CERV and the latest version of the code hasn’t been turned into an archive yet. If necessary, it can be reinstalled on Pepper with the following commands: cd path_to_pepper_os_archive scp pepper_os_11.0.4.tar.lzma nao@PEPPER_IP #Connect to Pepper and untar the archive cd ~/ && tar --lzma -xvf ./pepper_os_11.0.4.tar.lzma #Remove the archive. rm ./pepper_os_11.0.4.tar.lzma * PEPPER_IP being the IP address of the Pepper. The code can be started with: roslaunch manager_pepper robobreizh_manager.launch receptionist:=true #Start the recepptionist scenario Alternatively, the scenario can be started using the tablet. This will start the receptionist scenario without the navigation aspect. The navigation aspect requires mapping the environment and labelling where is each room and the initial position of the robot. For more details on how to do so, ask Maelic as I didn’t touch this part of the code :) {{tag>pepper robocup robot}}