This repository constitutes the full model, any and all simulations related to, and implementation of the project for the D7039E and E7032E courses taken at Luleå Technical University during the first and second semester of 2020-21.
The project is to model, simulate, and implement a robot that, via communication over the Arrowhead framework, automatically picks up a processed object at the end of a conveyor belt and moves it elsewhere.
The project report can be build by running ./report.nix
. A pre-built
version can also be downloaded directly.
All software in this project (as well as the report and development environment — see the previous paragraph and Entering a development environment, respectively) is most easily built via the Nix package manager. To install Nix, either run
$ sh <(curl -L https://nixos.org/nix/install) --daemon # as a user with sudo access to root
or (recommended) install Nix via your distribution’s package manager.
If you do not need to generate the bootable image, or configure the system-external services, you need not follow the remainder of these instructions.
Some manual steps are required to build a readily working system image:
- Modify
nix/config.nix
to your environment. - Describe your network access points that have Internet access and generate a SSH key pair:
$ cat << EOF > local-secrets.nix { networks."YourSSID".psk = "hunter2"; } EOF $ ssh-keygen -f id_rsa -N ""
- Include
nix/ssh-bastion.nix
in an external NixOS system with Internet access and rebuild (or configure your Non-NixOS equivalent).
The bootable image for the Raspberry Pi 3 can be built by executing
./mmc-image.nix
. A convenience script is available for flashing a
target block device:
$ sudo ./build.sh /dev/mmcblk0 # or your equivalent