{"id":17327544,"url":"https://github.com/esteve/ros2_pepper","last_synced_at":"2025-04-14T17:30:49.080Z","repository":{"id":21815636,"uuid":"94122225","full_name":"esteve/ros2_pepper","owner":"esteve","description":"Scripts for cross-compiling ROS and ROS2 for Softbank's Pepper","archived":false,"fork":false,"pushed_at":"2022-04-27T09:36:40.000Z","size":78,"stargazers_count":23,"open_issues_count":13,"forks_count":20,"subscribers_count":6,"default_branch":"master","last_synced_at":"2023-04-12T09:51:33.750Z","etag":null,"topics":["aldebaran","nao","naoqi","pepper","robotics","ros","ros2","softbank"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esteve.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-12T17:24:56.000Z","updated_at":"2023-03-15T03:07:22.000Z","dependencies_parsed_at":"2022-07-22T04:02:03.651Z","dependency_job_id":null,"html_url":"https://github.com/esteve/ros2_pepper","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esteve%2Fros2_pepper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esteve%2Fros2_pepper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esteve%2Fros2_pepper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esteve%2Fros2_pepper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esteve","download_url":"https://codeload.github.com/esteve/ros2_pepper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219843687,"owners_count":16556502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aldebaran","nao","naoqi","pepper","robotics","ros","ros2","softbank"],"created_at":"2024-10-15T14:20:03.486Z","updated_at":"2024-10-15T14:20:03.629Z","avatar_url":"https://github.com/esteve.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction\n\nThis project contains a set of patches and scripts to compile and run ROS 1 and ROS 2 onboard a Pepper robot, without the need of a tethered computer.\n\n## Pre-requirements\n\nDownload and extract the [NaoQi C++ framework](http://doc.aldebaran.com/2-5/index_dev_guide.html) and Softbanks's crosstool chain and point the `AL_DIR` and `ALDE_CTC_CROSS` environment variables to their respective paths:\n\n```\nexport AL_DIR=/home/NaoQi  \u003c-- Or wherever you installed NaoQi\nexport ALDE_CTC_CROSS=$AL_DIR/ctc-linux64-atom-2.5.2.74\n```\n\n## Prepare cross-compiling environment\n\nWe're going to use Docker to set up a container that will compile all the tools for cross-compiling ROS and all of its dependencies. Go to https://https://www.docker.com/community-edition to download it and install it for your Linux distribution.\n\n\n1. Clone the project's repository\n\n```\n$ git clone git clone https://github.com/esteve/ros2_pepper.git\n$ cd ros2_pepper\n```\n\n## ROS 1\n\n### Prepare the requirements for ROS 1\n\nThe following script will create a Docker image and compile Python interpreters suitable for both the host and the robot.\n\n```\n./prepare_requirements_ros1.sh\n```\n\n### Build ROS 1 dependencies\n\nBefore we actually build ROS for Pepper, there's a bunch of dependencies we'll need to cross compile which are not available in Softbank's CTC:\n\n- console_bridge\n- poco\n- tinyxml2\n- urdfdom\n- urdfdom_headers\n\n```\n./build_ros1_dependencies.sh\n```\n\n### Build ROS 1\n\nFinally! Type the following, go grab a coffee and after a while you'll have an entire base ROS distro built for Pepper.\n\n```\n./build_ros1.sh\n```\n\n### Copy ROS and its dependencies to the robot\n\nBy now you should have the following inside .ros-root in the current directory:\n\n- Python 2.7 built for Pepper (.ros-root/Python-2.7.13)\n- All the dependencies required by ROS (.ros-root/ros1_dependencies)\n- A ROS workspace with ROS Kinetic built for Pepper (.ros-root/ros1_inst)\n- A helper script that will set up the ROS workspace in the robot (.ros-root/setup_ros1_pepper.bash)\n\nWe're going to copy these to the robot, assuming that your robot is connected to your network, type the following:\n\n```\n$ scp -r .ros-root nao@IP_ADDRESS_OF_YOUR_ROBOT:.ros-root\n```\n\n### Run ROS 1 from inside Pepper\n\nNow that we have it all in the robot, let's give it a try:\n\n*SSH into the robot*\n\n```\n$ ssh nao@IP_ADDRESS_OF_YOUR_ROBOT\n```\n\n*Source (not run) the setup script*\n\n```\n$ source .ros-root/setup_ros1_pepper.bash\n```\n\n*Start naoqi_driver, note that NETWORK\\_INTERFACE may be either wlan0 or eth0, pick the appropriate interface if your robot is connected via wifi or ethernet*\n\n```\n$ roslaunch naoqi_driver naoqi_driver.launch nao_ip:=IP_ADDRESS_OF_YOUR_ROBOT \\\n    roscore_ip:=IP_ADDRESS_OF_YOUR_ROBOT network_interface:=NETWORK_INTERFACE\n```\n\n## ROS 2\n\nBEWARE: The ROS 2 port is still experimental and incomplete, simple sensors such as the bumpers work, but the camera driver has not been ported yet.\n\nThe following instructions require that you have ROS 1 built for Pepper.\n\n### Prepare the requirements for ROS 2\n\nThe following script will create a Docker image and compile Python interpreters suitable for both the host and the robot.\n\n```\n./prepare_requirements_ros2.sh\n```\n\n### Build ROS 2\n\nLet's now build ROS 2 for Pepper:\n\n```\n./build_ros2.sh\n```\n\n### Copy ROS 2 and its dependencies to the robot\n\nBesides the ROS 1 binaries and its dependencies, we'll now a few more directories inside .ros-root in our current directory:\n\n- Python 3.6 built for Pepper (.ros-root/Python-3.6.1)\n- A ROS 2 workspace built for Pepper (.ros-root/ros2_inst)\n\nWe're going to copy these to the robot, assuming that your robot is connected to your network, type the following:\n\n```\n$ scp -r .ros-root nao@IP_ADDRESS_OF_YOUR_ROBOT:.ros-root\n```\n\n### Run ROS 2 from inside Pepper\n\nNow that we have it all in the robot, let's give it a try:\n\n*SSH into the robot*\n\n```\n$ ssh nao@IP_ADDRESS_OF_YOUR_ROBOT\n```\n\n*Source (not run) the setup script*\n\n```\n$ source .ros-root/setup_ros2_pepper.bash\n```\n\nROS 2 does not have a something like roslaunch yet, so you'll have to run naoqi_driver directly:\n\n*Start naoqi_driver, note that NETWORK\\_INTERFACE may be either wlan0 or eth0, pick the appropriate interface if your robot is connected via wifi or ethernet*\n\n```\n$ naoqi_driver_node --qi-url=tcp://IP_ADDRESS_OF_YOUR_ROBOT:9559 \\\n    --roscore_ip=IP_ADDRESS_OF_YOUR_ROBOT --network_interface=NETWORK_INTERFACE \\\n    --namespace=naoqi_driver\n```\n\n## Demos\n\nThe folks at the [Universidad Rey Juan Carlos](http://robotica.gsyc.es/) and [Intelligent Robotics](http://inrobots.es/) have produced the following video showing a Pepper robot runnning ROS onboard using the code from this repository:\n\n[![Pepper Navigation](http://img.youtube.com/vi/0wIWJHMchaU/0.jpg)](https://www.youtube.com/watch?v=0wIWJHMchaU \"Pepper Navigation\")\n\nEnjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Festeve%2Fros2_pepper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Festeve%2Fros2_pepper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Festeve%2Fros2_pepper/lists"}