# PepperPlus-RI The robot interface is a high-level API for controlling the robot. It implements the API as designed: https://utrechtuniversity.youtrack.cloud/articles/N25B-A-14/RI-CB-Communication. This is an implementation for the Pepper robot, using the Pepper SDK and Python 2.7 as required by the SDK. ## Installation ### Linux (or WSL) Start off by installing [Pyenv](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation) and walk through the steps outlined there (be sure to also add it to PATH). Also install the [Python build requirements](https://github.com/pyenv/pyenv/wiki#suggested-build-environment). Afterwards, install Python 2.7 and activate it for your current shell: ```bash pyenv install 2.7 pyenv shell 2.7 ``` You can check that this worked by typing ```bash python -V ``` Which should return `Python 2.7.18`. Next, `cd` into this repository and create (and activate) a virtual environment: ```bash cd / python -m pip install virtualenv python -m virtualenv .venv source .venv/bin/activate ``` We depend on PortAudio for the `pyaudio` package, so install it with: ```bash sudo apt install -y portaudio19-dev ``` Install the required packages with ```bash pip install -r requirements.txt ``` Now we need to install the NaoQi SDK into our virtual environment, which we need to do manually. Begin by downloading the SDK: ```bash wget https://community-static.aldebaran.com/resources/2.5.10/Python%20SDK/pynaoqi-python2.7-2.5.7.1-linux64.tar.gz ``` Next, move into the `site-packages` directory and extract the file you just downloaded: ```bash cd .venv/lib/python2.7/site-packages/ tar xvfz /pynaoqi-python2.7-2.5.7.1-linux64.tar.gz rm /pynaoqi-python2.7-2.5.7.1-linux64.tar.gz ``` Lastly, we need to inform our virtual environment where to find our newly installed package: ```bash echo /.venv/lib/python2.7/site-packages/pynaoqi-python2.7-2.5.7.1-linux64/lib/python2.7/site-packages/ > pynaoqi-python2.7.pth ``` That's it! Verify that it works with ```bash python -c "import qi; print(qi)" ``` You should now be able to run this project. ### macOS Similar to Linux, but don't bother installing `pyenv` as it won't be able to install Python 2 on Apple Silicon. Instead, install Python 2.7.18 from the [Python website](https://www.python.org/downloads/release/python-2718/). Create the virtual environment as described above in the Linux section. Stop at the point where it shows you how to download the NaoQi SDK. Instead, use: ```shell curl -OL https://community-static.aldebaran.com/resources/2.5.10/Python%20SDK/pynaoqi-python2.7-2.5.7.1-mac64.tar.gz ``` Then resume the steps from above. ## Usage On Linux and macOS: ```shell PYTHONPATH=src python -m robot_interface.main ``` On Windows: ```shell $env:PYTHONPATH="src"; python -m robot_interface.main ``` With both, if you want to connect to the actual robot (or simulator), pass the `--qi-url` argument. ## Testing To run the unit tests, on Linux and macOS: ```shell PYTHONPATH=src pytest test/ ``` On Windows: ```shell $env:PYTHONPATH="src"; pytest test/ ``` ### Coverage For coverage, add `--cov=robot_interface` as an argument to `pytest`. ## GitHooks To activate automatic commits/branch name checks run: ```shell git config --local core.hooksPath .githooks ``` If your commit fails its either: branch name != /description-of-branch , commit name != : description of the commit. : N25B-Num's