Building over Gentoo Prefix, over that ros-overlay (ROS Kinetic on branch master
, ROS Melodic on branch melodic
, plus anything extra
needed to make Pepper robots able to do more with the latest available software. The base image is the
raw Pepper hard disk image on version 2.5.5.5 (so you can use it as a cross-compilation platform).
Pre-compiled software includes:
- ROS Kinetic/Melodic (ROS desktop + navigation stack + many others) (274 packages list)
- Latest Python 2.7.17 with a lot of libraries like dlib, Theano, OpenCV, Tensorflow, numpy (255 packages list)
- All the necessary dependencies that make it possible to build it thanks to Gentoo Prefix (latest GCC, latest CMake, etc) (767 packages list)
You can use this repository as a reference to build your own image for your robot based on your software needs. Let me know if it's missing documentation, you find rough corners, etc!
Go to the releases section and download the latest release of the OS titled "Pepper OS based on Gentoo Prefix and ROS Kinetic" (or Melodic). It is divided in parts of <1GB, total ~4GB. For example:
aria2c -x 10 https://github.com/awesomebytes/pepper_os/releases/download/release%2F2020-03-20T20at22plus00at00/pepper_os_ros-kinetic-x86_2020-03-20T20at22plus00at00.tar.lzma.part-00 &
aria2c -x 10 https://github.com/awesomebytes/pepper_os/releases/download/release%2F2020-03-20T20at22plus00at00/pepper_os_ros-kinetic-x86_2020-03-20T20at22plus00at00.tar.lzma.part-01 &
aria2c -x 10 https://github.com/awesomebytes/pepper_os/releases/download/release%2F2020-03-20T20at22plus00at00/pepper_os_ros-kinetic-x86_2020-03-20T20at22plus00at00.tar.lzma.part-02 &
aria2c -x 10 https://github.com/awesomebytes/pepper_os/releases/download/release%2F2020-03-20T20at22plus00at00/pepper_os_ros-kinetic-x86_2020-03-20T20at22plus00at00.tar.lzma.part-03 &
wait
echo "Done with all the downloads!"
Now merge together the files, you can use the instruction from the release notes:
cat pepper_os_ros-kinetic-x86_*.tar.lzma.part-* > pepper_os_ros-kinetic-x86.tar.lzma
WARNING You may want to empty the home folder of your robot, after a backup of course, before doing the next step. This includes hidden files (starting with .
). You can do rm -rf * .*
.
Extracting this .tar.gz will write on a new folder called gentoo
, where most of the stuff will reside. But it will also write a new .bash_profile
, and a new .local
folder with all Python libraries. It will also overwrite
your ~/naoqi/preferences/autoload.ini
with a script that will boot roscore on your next reboot of the robot.
Now extract in your robot in one command (avoiding copying the file and then extracting):
cat pepper_os_ros-kinetic-x86.tar.lzma | ssh nao@192.168.1.12 "tar xzf - -C /home/nao"
Note that the gentoo
folder uncompressed weights ~8GB and .local
~850MB.
In case you want to modify/fix/work on anything...
Takes 6h on the build farm (2core 2.2GHz), 3h in a faster machine (8core 3.6GHz).
docker build --network host -f Dockerfile -t pepper_os .
You can speed it up by using the cache of the latest version from the CI (5.3GB download though):
# For Kinetic
docker pull awesomebytes/pepper_os_image
docker build --network host -f Dockerfile --cache-from awesomebytes/pepper_os_image -t pepper_os .
# For melodic
docker pull awesomebytes/pepper_os_image_melodic
docker build --network host -f Dockerfile --cache-from awesomebytes/pepper_os_image_melodic -t pepper_os .
From the CI:
# For Kinetic
docker run -it -h pepper awesomebytes/pepper_os_image
# For Melodic
docker run -it -h pepper awesomebytes/pepper_os_image_melodic
If you built your own:
docker run -it -h pepper pepper_os