2026-03-09 23:35:48 +07:00
# Blockly ROS2 Robot Controller — Documentation
2026-03-07 11:13:06 +07:00
2026-03-09 23:35:48 +07:00
Visual programming interface for controlling a ROS2 Jazzy Kiwi Wheel AMR.
See [readme.md ](readme.md ) for project overview and status.
2026-03-07 11:13:06 +07:00
---
2026-03-09 23:35:48 +07:00
## Documentation Index
2026-03-07 11:13:06 +07:00
2026-03-09 23:35:48 +07:00
| Topic | File |
2026-03-07 11:13:06 +07:00
|---|---|
2026-03-09 23:35:48 +07:00
| System architecture & Blockly– ROS2 integration flow | [docs/architecture.md ](docs/architecture.md ) |
| Installation, directory structure & running | [docs/installation.md ](docs/installation.md ) |
| Troubleshooting & known issues | [docs/troubleshooting.md ](docs/troubleshooting.md ) |
| Guide: adding a new ROS2 package | [docs/ros2-package-guide.md ](docs/ros2-package-guide.md ) |
| `blockly_app` — file reference | [src/blockly_app/README.md ](src/blockly_app/README.md ) |
| `blockly_app` — creating custom blocks (full guide + reference) | [src/blockly_app/BLOCKS.md ](src/blockly_app/BLOCKS.md ) |
| `blockly_executor` — file reference, handlers & testing guide | [src/blockly_executor/README.md ](src/blockly_executor/README.md ) |
2026-03-10 21:22:09 +07:00
| `blockly_interfaces` — ROS2 action & message interfaces | [src/blockly_interfaces/README.md ](src/blockly_interfaces/README.md ) |
2026-03-12 10:27:47 +07:00
| `gpio_node` — Raspberry Pi GPIO node (C++, libgpiod) | [src/gpio_node/ ](src/gpio_node/ ) |
2026-03-16 13:38:11 +07:00
| `pca9685_node` — PCA9685 16-channel PWM controller (C++, I2C) | [src/pca9685_node/ ](src/pca9685_node/ ) |
2026-03-16 20:08:07 +07:00
| `as5600_node` — AS5600 12-bit magnetic encoder (C++, I2C) | [src/as5600_node/ ](src/as5600_node/ ) |
2026-03-07 11:13:06 +07:00
---
2026-03-09 23:35:48 +07:00
## Quick Start
2026-03-07 11:13:06 +07:00
2026-03-16 05:15:50 +07:00
### Desktop (linux-64)
2026-03-07 11:13:06 +07:00
```bash
2026-03-09 23:35:48 +07:00
pixi install # first time only
pixi run build-interfaces # must build interfaces first
pixi run build # build all packages
pixi run setup-ui # download Blockly JS vendor files (first time, needs internet)
2026-03-09 23:08:46 +07:00
2026-03-09 23:35:48 +07:00
pixi run executor # Terminal 1 — start Action Server
pixi run app # Terminal 2 — start desktop GUI
2026-03-09 23:08:46 +07:00
```
2026-03-16 05:15:50 +07:00
### Raspberry Pi (linux-aarch64)
```bash
pixi install # install ROS2 + deps via conda
pixi run build-gpio # installs system deps (apt) + builds gpio_node
2026-03-16 13:38:11 +07:00
pixi run build-pca9685 # installs system deps (apt) + builds pca9685_node
2026-03-16 20:08:07 +07:00
pixi run build-as5600 # installs system deps (apt) + builds as5600_node
2026-03-16 05:15:50 +07:00
pixi run gpio-node # start GPIO node
2026-03-16 13:38:11 +07:00
pixi run pca9685-node # start PCA9685 PWM node
2026-03-16 20:08:07 +07:00
pixi run as5600-node # start AS5600 encoder node
2026-03-16 05:15:50 +07:00
```
2026-03-16 20:08:07 +07:00
`build-gpio` , `build-pca9685` , and `build-as5600` automatically run `setup-dep` which installs system libraries (`libgpiod-dev`, `liblttng-ust-dev` , `i2c-tools` ) via `apt` .
2026-03-16 05:15:50 +07:00
2026-03-09 23:35:48 +07:00
See [docs/installation.md ](docs/installation.md ) for full setup and prerequisites.