Skip to content
Jasper edited this page Jul 24, 2014 · 14 revisions

This is a brief guide on how to start development on this project. Refer to the Developers' guide after following these steps.

Install Ubuntu

We use Ubuntu 14.04 (code name "trusty") at CUED as a host OS. Download the Ubuntu install image. Follow the instructions on the Ubuntu website to create a bootable USB stick from the image:

Install Docker

Before we can do anything else, we must install Docker. We want to make use of the latest version of Docker and so we will install it from the upstream Docker repo:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo add-apt-repository "deb https://get.docker.io/ubuntu docker main"
$ sudo apt-get update
$ sudo apt-get install lxc-docker

In order to avoid having to use sudo to run Docker each time, add yourself to the Docker group:

$ sudo usermod -a -G docker `whoami`

NOTE: You may have to log out and log back in for this to take effect.

Check that you can run docker commands without any errors. For example, try downloading the latest Ubuntu image for Docker:

$ docker pull ubuntu

Install other software

Need VNCviewer for GUI

$ sudo apt-get install xtightvncviewer #Install vncviewer for 'make gui'

Fix networking

There is a bug in Ubuntu 14.04 when it comes to DNS resolution. The solution, copied from a comment on the bug, is to edit the /etc/NetworkManager/NetworkManager.conf and comment out a line. The following command will do it for you:

$ sudo sed -i -e 's/^dns=dnsmasq/#&/' /etc/NetworkManager/NetworkManager.conf

Now, restart networking and then Docker itself.

$ sudo restart network-manager
$ sudo restart docker

Clone this repo

Make a project directory, change to it and run:

$ git clone [email protected]:sigproc/robotic_surgery
$ cd robotic_surgery

Look at the GitHub help if you're having trouble cloning the repo.

Make an image

Try to build an image:

$ make image

You may need to change the permission for the SSH key for the following commands:

$ chmod 400 config/ros_user_ssh_key

If that works, try logging into the image:

$ make shell  # Log into a command line. Type 'exit' to quit.
$ make gui    # Launch a GUI session into the container.

The make gui command should launch a GUI session inside the container. It should look like this:

Compile the software

You can compile the software inside the currently running image:

$ make        # Compile all the things
$ make test   # Test all the things

Go forth and develop

Now you can move on to reading the Developers' guide