I’d like to deploy PX4 distributed as in this figure (Fig 4 from the paper PX4: A Node-Based Multithreaded Open Source Robotics Framework for Deeply Embedded Platforms)
More specifically, I’d like to run the commander and navigator modules in the companion computer. Is there any documentation or example showing how to do this? If not, could you give me some hints as to where to start?
You could try doing this with RTPS. https://dev.px4.io/en/middleware/micrortps.html
I’d recommend keeping commander on the same side as the actuators, it’s responsible for safety critical things like arming/disarming.
Yes, that would be an option, but does that mean that I need to re-implement navigator, or at least change how it interacts with the pub/sub middleware? I assume that would be needed because the interface on the companion computer side of RTPS is different.
Isn’t there a way to compile the existing PX4 modules to run as ROS nodes in the companion computer? From this paragraph in the paper, I assumed that would be possible:
“Our framework supports the native operation of nodes originally designed for the autopilot on ROS. This is feasible as the node centered design of the deeply embedded solution has the same architecture as on a Linux platform. Therefore we also build our software-in-the-loop simulation based on the ROS native port.”