A hands-on workshop for integrating Analog Devices Industrial I/O (IIO) sensors with ROS2. Build a complete ADC data acquisition pipeline using ADI evaluation hardware and the adi_iio ROS2 package.
This workshop teaches ROS2 concepts through practical exercises with real hardware. You'll work directly with ADI's IIO-based sensor packages to:
- Interact with ADI sensors through ROS2 topics and services
- Automate sensor bringup using launch files
- Create custom ROS2 packages for data processing
| Component | Description |
|---|---|
| EVAL-AD7124-8 | 8-channel, 24-bit sigma-delta ADC evaluation board |
| ADALM2000 (M2K) | Signal generator for test input signals |
| Raspberry Pi 5 | Running Kuiper Linux with IIO drivers |
| PMD-RPI-INTZ | Interface board connecting AD7124 to RPi5 |
- Windows: WSL2, Docker Desktop, VS Code with Dev Containers extension
- Linux: Docker, VS Code (optional)
- Scopy: For M2K signal generation (Windows/Linux native install)
git clone https://github.com/Adrian-Stanea/iio_ros2_workshop
cd iio_ros2_workshop- Open the folder in VS Code
- When prompted, click "Reopen in Container"
- Wait for the container to build and initialize
Or use Docker Compose directly:
# Linux
xhost +local:docker
docker compose up -d
docker compose exec ros2 /ros_entrypoint.sh bash
# Cleanup
docker compose downInside the container:
cd /adc_workshop_ws
colcon build
source install/setup.bash# Check ROS2 environment
ros2 topic list
# Start the adi_iio_node (requires hardware connection)
ros2 run adi_iio adi_iio_node --ros-args -p uri:="ip:analog.local"| Module | Title | Description |
|---|---|---|
| 00 | Workshop Setup | Development environment and hardware verification |
| 01 | Interacting with ADI Sensors | ROS2 CLI interaction with adi_iio services and topics |
| 02 | Sensor Bringup | Launch files and automated configuration |
| 03 | Processing Package | Custom ROS2 package for data processing |
iio_ros2_workshop/
├── .devcontainer/ # VS Code Dev Container config
├── modules/
│ ├── 00-setup/ # Environment setup guides
│ ├── 01-adi-sensors/ # CLI interaction exercises
│ ├── 02-sensor-bringup/ # Launch file package
│ │ └── ad7124_workshop/ # ROS2 package with launch files
│ └── 03-processing-package/ # Processing node exercises
├── compose.yaml # Docker Compose configuration
└── README.md
| Resource | Description |
|---|---|
HANDBOOK.md |
Main workshop guide for following the session step by step |
solutions/checkpoint.md |
Expected outputs and solutions |
NOTE: The branch
solutionsholds tips and reference material for working through each module when you need extra guidance.