Skip to content
Development scripts from the SPQReL team
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
actions interact and interactq actions adapted to new modimwsclient class Jul 4, 2018
behaviors Create start_proxies.py Jul 18, 2017
config languange understand and config manager and task def Jun 19, 2018
detect_waving folder reorganization Jul 11, 2017
face_detection Update log_face_people_detection.py Jul 22, 2017
html webinit and logo Jul 12, 2017
maps local changes Jun 19, 2018
modim_actions interactq clear conditions before ask Jun 15, 2018
move_head folder reorganization Jul 11, 2017
msface_naoqi showimage false Jul 25, 2017
naoqibag
openchallenge Open Challenge System Jul 28, 2017
people_detection folder reorganization Jul 11, 2017
person_follower folder reorganization Jul 11, 2017
plans interact and interactq actions adapted to new modimwsclient class Jul 4, 2018
ros_ws publish info Jul 29, 2017
scripts init tablet service Nov 19, 2018
slu4p fixed aiml Jun 19, 2018
topological_navigation
turn_to_sound_source - Jul 26, 2017
ui KILLKILLKILL Jun 18, 2018
.gitignore ignore local config May 10, 2018
INSTALL.md Update INSTALL.md May 24, 2018
LICENSE Initial commit Jun 1, 2017
Makefile montreal maps added Jun 16, 2018
README.md improved the documentation for initial pepper setup. Jun 13, 2018
requirements.txt improved the documentation for initial pepper setup. Jun 13, 2018
setup-dev.bash improved the documentation for initial pepper setup. Jun 13, 2018
setup-local.bash added comment in setup-local.bash Jun 11, 2018
setup.bash init scripts: tmuxinit and tablet manager Apr 4, 2014
spqrel-local-config.yaml
spqrel-pepper-config.yaml recovery time for planner in setup Jun 19, 2018

README.md

spqrel_tools

Development scripts from the SPQReL team.

Install on PC

  • follow instructions in 'INSTALL.md'
    • you may check out the Dockerfile in lcas/spqrel_launch for reference of all the steps to set up a system from scratch. This Dockerfile is not meant to be taken verbatim, but it documents all general steps required to get a suitable local workspace. Or, simply use the docker image: docker run --rm -it lcasuol/spqrel_launch (but only if you understand docker).
    • The docker image also provides the perfect, clean cross-compilation environment for pepper. Steps to cross compile in docker, see the nut.yml

Working with checked-out code:

  1. go to the workspace you want to use (assuming $HOME/spqrel/workspace, so cd $HOME/spqrel/workspace)
  2. clone our top-level repository: git clone --recurse-submodules https://github.com/LCAS/spqrel_launch.git (this will pull in all submodules as well
    • the workspace has the following structure (more or less):
      <ROOT>
        bin/ (where all compiled binaries will end up in)
        lib/ (where all compiled libraries will end up in)
        worktree/
          PetriNetPlans/ (submodule via git clone https://github.com/iocchi/PetriNetPlans.git)
          spqrel_navigation/ (submodule via git clone https://github.com/lcas/spqrel_navigation.git)
          spqrel_tools/ (submodule via git clone https://github.com/lcas/spqrel_tools.git)
      
  3. go to cd worktree/spqrel_tools
  4. edit the local config file setup-local.bash so that cour SDKs are being found and your top-level SPQReL root is being set (note: Make sure you don't commit you local changes. run git update-index --skip-worktree setup-local.bash once to avoid it being accidentally committed. It's your own configuration that goes in here only.)
  5. If you are going to develop in any of the submodules (most likely in spqrel_tools/), you will notice that the git head is detached (don't worry if you don't know what I'm talking about). Simply check out the branch you want to work on (usually git checkout master) and you are good to go.

Compile

  1. go to your spqrel_tools directory (e.g. cd $HOME/spqrel/workspace/spqrel_launch/worktree/spqrel_tools)
  2. run make install in spqrel_tools, it should compile all binaries and translate all plans found, and install everything in the respective places. It will find all qibuild workspaces under worktree/ (all submodules configured)

Note: do not source setup.bash or source setup-dev.bash as they are needed only for running, and somehow get in cmake's way of finding boost.

Run

  1. make sure you load your local development environment: source setup-dev.bash (local computer only) and source setup.bash (both local computer and Pepper robot). If you are using tmule (see below, those will be outloaded).

    • make sure you haven't sourced any other configurations, e.g. ROS workspaces etc. Never autoload any project-specific environments in your .bashrc.
  2. fire up TMule as either:

    • tmule --config spqrel-local-config.yaml server (if you want to run locally)
    • tmule --config spqrel-pepper-config.yaml server (this is the config usually run on Pepper)

    Either will result in the TMule control server being launched and accessible via web browser wherever it was launched (E.g. on Pepper Wifi address) at port 9999, e.g. http://localhost:9999.

  3. Start the TMule sub-systems you want to use (in the browser)

  4. In order to make everything is orderly terminated, stop the TMule server with [Ctrl-C] and follow this by

    • tmule --config spqrel-local-config.yaml terminate
    • tmule --config spqrel-pepper-config.yaml terminate

    respectively

Installation on Pepper:

Initial git setup (only once):

  1. initial SSH setup for git:
    1. ssh-keygen -t rsa if ~/.ssh/id_rsa.pub doesn't exist yet.
    2. configure the public key in ~/.ssh/id_rsa.pub with github and bitbucket
  2. create local workspace dir mkdir -p ~/spqrel and change into it cd ~/spqrel
  3. Download snapshot of pepper branch of spqrel_launch to get initial binaries: wget https://github.com/LCAS/spqrel_launch/archive/pepper.zip and unzip it (will give you directory spqrel_launch-pepper).
  4. export GIT_EXEC_PATH=$HOME/spqrel/spqrel_launch-pepper/libexec/git-core to make sure git finds its helpers and set PATH=$HOME/spqrel/spqrel_launch-pepper/bin:$PATH
  5. still in ~/spqrel run git clone --recurse-submodules --depth 1 -b pepper git@github.com:LCAS/spqrel_launch.git to clone the repository (only shallow clone, we don't need the entire history here)
  6. cd spqrel_launch and run update-all.sh once to make sure everything is updated
  7. you may now remove the bootstrap installation rm -r ~/spqrel/spqrel_launch-pepper

Python installations

  1. a hack is needed to get psutil working correctly:
    1. download this psutil zip for binaries for i386: wget -O /tmp/psutil.zip http://lcas.lincoln.ac.uk/owncloud/index.php/s/p57cSlU8588CdUT/download
    2. unzip into local python install with unzip -d ~ /tmp/psutil.zip
  2. pip install -U --user tmule trollius requests

completing installation on Pepper

  1. go to cd ~/spqrel/spqrel_launch/worktree/spqrel_tools
  2. edit setup-local.bash with the correct paths
  3. source setup.bash
  4. make sure setup-local.bash is not committed: git update-index --skip-worktree setup-local.bash
  5. configure git:
    1. git config --global user.email "spqrel@googlegroups.com"
    2. git config --global user.name "SPQReL team"
    3. git config --global push.default simple
  6. you are ready to go, now let's Run

General Design Considerations about environment setup and making:

  • all general configurations (applying to both local installation on your computer and on pepper should you into setup.bash. This file loads setup-local.bash if it exists and must respect the variables defined in spqrel-local.bash. They must always take precendence. setup.bash is the place to set all required environment variables
  • all development configurations (e.g. where the find the SDK, etc.) are configured in setup-dev.bash. This file also reads setup-local.bash, but should only be source-d on development machines (i.e. linux64) and not on Pepper.
  • the setup-local.bash contains all the local paths you need to configure for your environment. Changes to that file shall not be committed to the repository ever. Hence, it is good practice to configure it in git to be ignored using git update-index --skip-worktree setup-local.bash
You can’t perform that action at this time.