Kopernikus Software Documentation
an experimental prototyping platform to test and evaluate the vision of home robotics
Developed at Intuity Media Lab GmbH in Stuttgart, Germany.
There are two software packages needed
🤖 Arduino Code
The Arduino is used for everything hardware related. This includes:
- Controlling the motors and reading their encoder values
- Receiving RC commands
- Controlling the servo
- Talking to the UpBoard via a serial protocol
We rely on some libraries that you will need to install prior to flashing the Arduino:
- CommandHandler ->
- EnableInterrupt -> GitHub Repo
They are all available through the Libary Manager included in the Arduino IDE.
Flashing the Arduino
Getting the Arduino ready should be pretty straight-forward:
- Download the Arduino IDE
- Download our files
- Install the necessary libraries
- Choose the appropriate board settings
The UpBoard is a x86 based single board computer, so we are able to run a fully-fledged Ubuntu distro on it and thus write code in all kinds of environments.
Getting the UpBoard set up properly might be a bit finicky or at least different when you come from a background mainly working with Raspberry Pis. Some packages and kernel versions are not compatible with the latest Ubuntu so better stick with Ubuntu 16.04 (Xenial Xerus).
Also make sure you install the kernel updates for the board afterwards!
Ubuntu Software Packages
These packages can be installed via apt using the following commands:
sudo apt-get install "package name" // so something like this: sudo apt-get install git
- git, gitk, git-gui (Git)
- mplayer (Media Player)
- audacity (Audacity for recording sound)
- default-jre (Java)
The main software responsible for decision making is written in Clojure. Head over to the specific readMe for further documentation.
The camera supports ROS as the main interface. Therefore we use ROS to connect the camera to Clojure. It would be possible also to run the serial connection to the base over ROS, but since ROS can be such a pain, it seems better to use it only when necessary.