ros-noetic is necessary to launch the HPP scripts.
HPP prerequisites:
apt-get install robotpkg-py${pyver}-hpp-manipulation-corba
apt-get install robotpkg-py${pyver}-qt5-hpp-gepetto-viewer
apt-get install robotpkg-py${pyver}-qt5-hpp-gui
apt-get install robotpkg-py${pyver}-hpp-environments
To load the Talos robot, table, boxes, and contact surfaces, you need to install the following repositories:
git clone --recursive -b devel https://github.com/stack-of-tasks/talos-data.git
git clone --recursive -b devel https://gitlab.laas.fr/gepetto/gerard-bauzil.git
git clone --recursive -b devel https://github.com/agimus/agimus-demos.git
hpp_dataset folder contains HPP scripts used to generate collision-free trajectories given a target to reach. To run the scripts, open 3 terminals. In the first one, launch the corba-server:
hpp-manipulation-server
In the second one, launch Gepetto viewer:
gepetto-gui
In the third one, launch any python script. script_lean.py
generates a contact motion with the table in full body.
generate_reduced_wp.py
generates a dataset of waypoints for a reaching motion with torso + right arm, given an obstacle to avoid. Target to reach and initial pose are sampled uniformly.
Example of boos-minions architecture to generate HPP trajectories on the LAAS computation platform. It uses apptainer as a container. To build the container:
sudo apptainer build pfc-hpp.sif pfc-hpp.def
scp pfc-hpp.sif $USER@pfcalcul.laas.fr:/pfcalcul/work/$USER/hpp-dataset/
Then start a manager on the pfc frontend:
ssh $USER@pfcalcul.laas.fr
cd /pfcalcul/work/$USER/pfc-hpp
apptainer run --app manager pfc-hpp.sif
And run a boss wherever you want:
apptainer run --app boss pfc-hpp.sif
Then, you should be good for sbatch ./schedule.sh
The script neural_network.py
takes as argument the dataset generated by HPP scripts and trains a neural network to output a collision-free state trajectory given target to reach + initial robot configuration.
The script reduced_ocp.py
generates a Crocoddyl optimal control problem with reduced Talos model (torso + arm) and solves it using a neural network warm-start. It displays the trajectory using pybullet.
The problem configuration is stored in configuration_reduced.py
.
The OCP formulation is performed in problem_formulation.py
.
The bullet simulation code is handled in bullet_Talos.py
.