Skip to content

Beam Robotics Installation Guide

Alexander Thoms edited this page Jun 25, 2023 · 50 revisions

Instruction for Installations

Preliminary

Our installation guide makes the distinction between development machines (i.e. your laptop) and beam robots (i.e. ig2, ig_handle, roben, pierre, etc.). This allows for conflict-free software development across all platforms.

Minimum PC requirements

  1. four or more processors
  2. eight or more gigabytes of RAM

It is recommended to have a hard drive with at least 60 GB of free space for development machines (i.e. your laptop) and 500 GB of free space for beam robots

Supported Linux Distributions

As with all robotics software development, Ubuntu is required. Our installation supports Ubuntu 20.04 for development machines and beam robots.

Required Apt Packages

This installation guide assumes you have the following installed on your Ubuntu machine

  1. git:
sudo apt install git
  1. openssh-server:
sudo apt install openssh-server
  1. gdown
sudo apt install python3-pip && pip3 install gdown && pip3 install --upgrade gdown && reboot

Items 2 and 3 are required when installing software and working with beam robots

SSH key

Before you install any beam code from github, You will likely need to setup an ssh key on your computer. Follow Github's tutorials for generating an SSH key and adding an SSH key to your Github account.

Virtual Machine

If you cannot install Ubuntu onto a development machine or you are testing our installation scripts, we offer a simple virtual machine environment to develop within. The virtual machine is created in VirtualBox, which you may download here. Once downloaded and installed, download the Ubuntu 20.04 virtual machine here

Virtual machines come with git and openssh-server, though you still need to run through the process of generating and adding an SSH key to your virtual machine.

Installation

Beam Robotics contains installation scripts to automatically install and configure the environment for certain packages. The current installation procedure follows:

  1. We recommend creating a folder titled projects (e.g. ~/projects).
mkdir -p ~/projects

The projects folder should be seen as a destination for other cloned repositories, though you are not required to follow this naming convention. We further recommend creating a personal Dropbox account and mounting the Dropbox folder to your machine to act as an extra back-up layer (e.g. ~/Dropbox/projects). Once created, cd into the ~/projects folder.

cd ~/projects
  1. Clone the beam_robotics repository recursively.
git clone --recursive git@github.com:BEAMRobotics/beam_robotics.git
  1. Navigate to the beam_robotics/scripts folder. If following recommended file structure:
cd ~/projects/beam_robotics/scripts/
  1. If installing on a development machine (i.e. your laptop):
bash install.bash

optional commandline flags for additional software installs include: -g (installs GTSAM); -p (installs pytorch). These optional installations are not requied by the beam robotics stack, but do come in handy when working on other projects in the same software ecosystem.

If installing on a beam robot:

bash install.bash -r BEAM_ROBOT

where BEAM_ROBOT is the name of a beam robot. Currently, the following robots are supported: ig-handle, ig2, pierre

  1. Create a symbolic link for beam_robotics in your catkin workspace. If following recommended file structure:
ln -s ~/projects/beam_robotics/ ~/catkin_ws/src/beam_robotics
  1. Open a new terminal (this automatically resources ~/catkin_ws/devel/setup.bash) and build your catkin workspace. If following recommended file structure:
cd ~/catkin_ws/src && catkin build -j$NUM_PROCESSORS

where -j$NUM_PROCESSORS specifies the number of processors to use and $NUM_PROCESSORS is equal to half of the number of processors available as written in ~/.bashrc. For Ubuntu 18.04, your system may crash if you do not pass this command line argument.

Component install scripts (in development)

  • Each package within the BEAMRobotics organization should have its own install script.
  • If you want to install a single component without installing all of beam_robotics, clone that component and run the script using $ bash scripts/install.sh
  • The script should install all the dependencies you need for that component. Please open an issue in beam_install_scripts if that is not the case for the component you are trying to install.
Clone this wiki locally