RAMMP can be deployed in one of the following configurations:
- Two-machine setup
- GPU Machine (GM): Runs compute-intensive components.
- Controller Machine (CM): Handles controllers and emergency stops.
- Single-machine setup (SM): Runs all components on a single system.
- Operating System: Ubuntu 20.04
- Python: 3.10 or later
- ROS: Noetic (including
rospy)
The system uses two Conda environments:
compute– for compute-intensive componentscontroller– for control and hardware interfaces
In a two-machine setup, these environments typically live on separate machines (GM and CM).
In a single-machine setup, both environments can exist on the same machine.
-
Create the Conda environment:
conda create -n compute python=3.10
-
Activate the environment:
conda activate compute
-
Install PyTorch (CUDA 12.1):
conda install pytorch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 \ pytorch-cuda=12.1 numpy=1.26.4 numpy-base=1.26.4 \ -c pytorch -c nvidia -c defaults -
Install PyTorch3D:
python -m pip install pytorch3d \ -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py310_cu121_pyt210/download.html -
Clone the RAMMP repository:
git clone https://github.com/empriselab/RAMMP cd RAMMP -
Install additional dependencies:
pip install --no-build-isolation chumpy
-
Install RAMMP (full installation):
pip install -e ".[full]" -
Install Pinocchio:
conda install -c conda-forge "pinocchio=3.1.*" -
Add the following to your
~/.bashrc:export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/lib:/usr/local/cuda-12.1/lib64:/opt/ros/noetic/lib:/opt/ros/noetic/lib/x86_64-linux-gnu export LD_PRELOAD="/lib/x86_64-linux-gnu/libffi.so.7 /lib/x86_64-linux-gnu/libtiff.so.5"
Then reload:
source ~/.bashrc
-
Create the Conda environment:
conda create -n controller python=3.10
-
Activate the environment:
conda activate controller
-
Install the Kortex API (after downloading the wheel file):
python -m pip install kortex_api-2.6.0.post3-py3-none-any.whl
-
Clone the RAMMP repository:
git clone https://github.com/empriselab/RAMMP cd RAMMP -
Install RAMMP (controller-only installation):
pip install -e ".[controller]" -
Install Pinocchio:
conda install -c conda-forge "pinocchio=3.1.*"
- Run the arm controller server on the NUC:
- ssh to the NUC:
ssh emprise@192.168.1.3with lab password - run the controller server:
conda activate controllercd /home/emprise/RAMMP/src/rammp/control/robot_controllerpython arm_server.py
- ssh to the NUC:
- Run bulldog on the NUC:
- ssh to the NUC:
ssh emprise@192.168.1.3with lab password - run bulldog:
conda activate controllercd /home/emprise/RAMMP/src/rammp/integration./run_bulldog.sh
- ssh to the NUC:
- Run a roscore on the compute system:
roscore - Launch the roslaunch on compute system for camera / visualization / publish tfs:
conda activate computecd /home/rammp/rammp_ws/src/RAMMP/launchroslaunch robot.launch
- Run the watchdog / transfer button listener / other safety stuff:
conda activate computecd /home/rammp/rammp_ws/src/RAMMP/src/rammp/integration./launch_robot.sh
- Run the drinking demo:
conda activate computesource ~/rammp_ws/devel/setup.bashcd /home/rammp/rammp_ws/src/RAMMP/src/rammp/integrationpython run.py --user rammp --run_on_robot
You can move the robot to preset configurations by running:
cd /home/rammp/rammp_ws/src/RAMMP/src/rammp/control/robot_controller/preset_actionspython retract.py