Software
Software documentation.
Deployment
Ansible (recommended)
The ansible/ directory in this repository contains a playbook that provisions a clean Raspberry Pi OS image with everything needed to run the Genbu robot software stack.
Prerequisites (on your local machine)
pip install ansible
Steps
-
Flash Raspberry Pi OS Lite onto an SD card and boot the Pi.
-
Edit
ansible/inventory.ymland set the correct IP address for your Raspberry Pi:
all:
hosts:
genbu:
ansible_host: 192.168.1.100 # replace with your Raspberry Pi's IP address
ansible_user: robot
- Run the provisioning playbook from the repository root:
ansible-playbook -i ansible/inventory.yml ansible/provision.yml --ask-become-pass
The playbook will:
- Install Docker Engine
- Download and install the latest
genbu-robotDebian package from GitHub releases
Updating the Debian Package
To update the genbu-robot Debian package to the latest release without re-running the full provisioning playbook:
ansible-playbook -i ansible/inventory.yml ansible/update.yml --ask-become-pass
This will remove the currently installed package and install the latest version from GitHub releases.
Foxglove
Foxglove provides a web-based visualization and debugging interface for ROS systems.
Starting the Foxglove Bridge
The genbu_web package contains a launch file that starts the Foxglove bridge:
ros2 launch genbu_web web.launch.xml
This starts the bridge on port 8765.
Accessing Foxglove
- Open https://app.foxglove.dev in your browser (or use the desktop app).
- Click Open connection.
- Select Rosbridge / Foxglove WebSocket and enter the WebSocket URL:
ws://<robot-ip>:8765
Replace <robot-ip> with the IP address of your robot.
Local Development
As this is a docker based system updates to the source primarily occurs using docker pull. However there is always the need for local software development. Synchronizing source code between machines can be a pain. So one solution here is to use docker context to build remotely on the raspberry pi while keeping the source workspace local.
docker context create robot --docker "host=ssh://<user>@<ip>"
From genbu_robot package.
docker build -t genbu:dev -f .\docker\Dockerfile .
On the Raspberry Pi:
nano /etc/default/genbu-robot
Update the docker image.
#GENBU_IMAGE=ghcr.io/nnarain/genbu_robot:latest
GENBU_IMAGE=genbu:dev