Where is ardupilot_dev_docker.git?

Hi

I have reading ROS 2 — Dev documentation.

And I can’t find GitHub - ArduPilot/ardupilot_dev_docker, only get following two repos:

Anyway, according the guide on ROS 2 — Dev documentation, I get below error:

execute sudo docker build -t ardupilot/ardupilot-dev-ros -f Dockerfile_dev-ros .

PS: raspberry pi 3B+

Any tips or suggestions?

=> => extracting sha256:8451a95ea2c9925ad7dc6bd88a2097d789b120c2b99c2f135e5216e38f3fb1e4                                                                                                   0.0s
 => [dds-gen-builder 2/3] RUN apt-get update && apt-get install --no-install-recommends -y     git     && apt-get clean     && apt-get -y autoremove     && apt-get autoclean     && rm   282.6s
 => ERROR [dds-gen-builder 3/3] RUN git clone -b master --recurse-submodules https://github.com/ArduPilot/Micro-XRCE-DDS-Gen.git --depth 1 --no-single-branch --branch master dds-gen      35.6s
------
 > [dds-gen-builder 3/3] RUN git clone -b master --recurse-submodules https://github.com/ArduPilot/Micro-XRCE-DDS-Gen.git --depth 1 --no-single-branch --branch master dds-gen     && cd dds-gen     && ./gradlew assemble:
2.406 Cloning into 'dds-gen'...
33.60 error: RPC failed; curl 16 Error in the HTTP2 framing layer
33.60 fatal: expected flush after ref listing
------
Dockerfile_dev-ros:77
--------------------
  76 |
  77 | >>> RUN git clone -b master --recurse-submodules https://github.com/ArduPilot/Micro-XRCE-DDS-Gen.git --depth 1 --no-single-branch --branch master dds-gen \
  78 | >>>     && cd dds-gen \
  79 | >>>     && ./gradlew assemble
  80 |
--------------------
ERROR: failed to solve: process "/bin/sh -c git clone -b master --recurse-submodules https://github.com/ArduPilot/Micro-XRCE-DDS-Gen.git --depth 1 --no-single-branch --branch master dds-gen     && cd dds-gen     && ./gradlew assemble" did not complete successfully: exit code: 128

tried again and again, finally get this

$ sudo docker build -t ardupilot/ardupilot-dev-ros -f Dockerfile_dev-ros .
[+] Building 6.2s (2/2) FINISHED                                                                                                                                                  docker:default
 => [internal] load build definition from Dockerfile_dev-ros                                                                                                                                0.1s
 => => transferring dockerfile: 3.58kB                                                                                                                                                      0.0s
 => ERROR resolve image config for docker-image://docker.io/docker/dockerfile:1                                                                                                             1.7s
------
 > resolve image config for docker-image://docker.io/docker/dockerfile:1:
------
Dockerfile_dev-ros:1
--------------------
   1 | >>> # syntax=docker/dockerfile:1
   2 |     FROM ros:humble-ros-base as main-setup
   3 |
--------------------
ERROR: failed to solve: failed to resolve source metadata for docker.io/docker/dockerfile:1: failed to authorize: failed to fetch anonymous token: Get "https://auth.docker.io/token?scope=repository%3Adocker%2Fdockerfile%3Apull&service=registry.docker.io": EOF

@lida2003 - you may struggle to build the ROS 2 packages for ArduPilot on a RPi3. The docker image has really only been tested on docker machines running on macOS and Ubuntu 22.04.

Are you planning to run the ArduPilot DDS packages using the RPi3 as a companion computer? If this is the case then using docker may not be the best approach. I use an arm64 docker image to cross compile for the RPi then rsync the binaries and run ROS 2 natively.

docker is NOT the best way to run on board companion computer, as limited resources.

@rhys Yes, I’m trying/learning to rum latest APM 4.5.1 which is using DDS package to communicate with ROS2. And currently, I have a RPi3B+ board on copter.

So Is there any link or guide avalaible for me to try? As I’m new to this, really no experience on ROS2.

It’s my copter with Rpi3B+ running Rpanion now. I wanna switch to ROS2, and try other stuff/function.

@lida2003 if you have a PC running Ubuntu, then the best way to get familiar with DDS support in ArduPilot is to: 1. first work through the SITL examples. Then: 2. hook your flight controller up to the PC and run ROS 2 and the microxrcedds agent on the PC to check the flight controller is correctly set up, then 3. build the ROS 2 stack for the RPi and run using the companion computer. This way you can isolate where potential problems are and which components are not working correctly.

That’s a good advice. I’ll do it right away.

Hmmmm… It’s OK to attach a usb serial adapter to communicate with the FC.

Today, I have been trying to building ros from source. I think I’m close to sucess.

BTW, what version are you using for RPi? I’m using “2024-03-15-raspios-bookworm-arm64-lite.img”

Yes, you can use the USB adapter to download logs and configure with a GCS as well as test the DDS connection. You can even use PPP with the new network infrastructure on boards that do not support ethernet natively.

BTW, what version are you using for RPi? I’m using “2024-03-15-raspios-bookworm-arm64-lite.img”

Ubuntu server 22.04 for arm64. This is a Tier 1 supported platform tor ROS 2.