I’m working with a group of students trying to create a bipedal wheeled robot similar to this, and I am unsure the best way to run motor control algorithms on ROS2 (which will be running on a BeagleBone Black). The main options I am considering are using normal ROS2 nodes for PID controllers, ros2_control, or running PID controllers on a separate Arduino and receiving setpoint commands from a ROS2 node. I am unsure if latency (or anything else) would become an issue for using a normal ROS2 node for PID control, especially since self-balancing will require very responsive control. I am looking for advice on whether this will cause any issues, and if it does, how to choose between using ros2_control and running control algorithms on a separate Arduino.
Thank you in advance!