Hello everybody.
I’m not sure this is the best title, but there’s a lot going on and I tried to shorten as much as possible.
I have a custom speedybeef4v4
Copter 4.5 built using --enable-dds
. SERIAL3_BAUD=9
(matches stty < /dev/serial0
9600 on the Pi), SERIAL_PROTOCOL=45
.
Connected to the SpeedyBee, I have the Raspberry Pi 4:
FC — RPi
R3 — GPIO14
T3 — GPIO15
G — G
(everything has it’s own power source)
As you can see by my custom build and connections, I’m trying to get ROS2 running on the Pi to talk to ArduPilot running on the FC, but I’m unable to make that happen following the guides. I’m not sure what I’m trying is even possible (DDS via serial) or if I should use MAVLink in this case.
Using the MAVLink Inspector in Mission Planner I can see information being updated, so I assume things are fine on FC side.
On the RPi4, I have Ubuntu 22, ROS2 Humble and followed the AP guide to ROS2 ROS 2 — Dev documentation
Everything works fine until colcon test --executor sequential --parallel-workers 0 --base-paths src/ardupilot --event-handlers=console_cohesion+
This is the output of the failed tests (not sure how useful it is since it’s trying to test using SITL, but here it is):
colcon_test.txt (126.1 KB)
Also, running ros2 run micro_ros_agent micro_ros_agent serial -b 9600 -D /dev/serial0
and running ros2 node list
in another terminal doesn’t return any node.
With SITL on my machine, I have everything set up and fine, but when it comes to connecting the hardware, I’m hitting these walls. So my questions are: is this (DDS over serial and RPi connected to FC via RX/TX) even possible? If so, what am I doing wrong?
Thank you in advance!