/pepper_os

Base image for using Pepper (2.5) with ROS Kinetic or Melodic (and much more!)

Primary LanguageDockerfile

pepper_os

Kinetic build: Build Status Melodic build: Build Status

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!

How to deploy on your robot

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.

Build it yourself

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 .

Run just the docker image

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

Buildfarm

Link: https://dev.azure.com/ROOGP/ROOGP_CI/_build