CUAUV Software Stack
This is the repo used by the software team of Cornell University Autonomous Underwater Vehicle (CUAUV). Our website is cuauv.org.
This is the entire software stack. The stack is now Dockerized, so it is fairly easy to get everything up and running on your Linux box.
To prepare your system:
- Install Docker. (e.g.
sudo apt install dockeror
sudo pacman -S docker))
- Configure Docker with a user group and enable run on start with systemctl.
- Set up an SSH key.
- Install two pip packages that are required for our Docker script:
sudo pip3 install docker clize.
Set up Docker Hub:
- Create a Docker Hub account. This is where we store our Docker images for the time being.
- Ask Will to add your account to the CUAUV repository on Docker Hub. Without this, you won't be able to pull the image.
- Note: These steps are only required for team members because our build server makes images significantly faster than your computer can. If you don't have access to Docker Hub, you can build the image locally with the standard Docker build.
To get started with this repo:
- Clone this repo (any temporary place will do).
docker/auv-docker.py init. This will set up your machine with worktrees and move the stack to
~/cuauv/workspaces/repo/docker/auv-docker.py cdw. This will pull the latest docker image (might take a while to download, be patient), start a container, and ssh you into that container.
- In the container, run
Now you're all set.
- Make an alias for
auv-docker.py. It will save you a lot of time.
auv-docker.py --helpto see all available commands.
auv-docker.py cdw [branch]to start a container with a particular branch. The default is master. Our Docker script uses git worktrees to keep multiple branches in parallel. You can also run multiple containers at the same time.
- Containers run on 172.17.0.2, 172.17.0.3, etc. You can ssh into them directly.
startstart a container, but ending the ssh session does not stop them. Use
auv-docker.py stop [branch]to kill the container.
- The folder
~/cuauv/workspaces/repois the master branch of the repository. Each branch is stored separately in