Welcome to the bright side, Michael!
ros2_control is the shortest path to world domination, and we’ll all earn extra citizen credits for advocating it when the Overlords finally take over.
I must confess — my basement and lawn are completely free of glass doors or anything expensive, so my only real concern right now is robot self-mutilation. I can claim one burned 350 W motor (the robot lost a contest with a tree), but my solution was simply to replace it with high ratio 350 W gearmotors. Now the tree is the one trembling when Dragger drives by... slowly.
I’ve also noticed that a well-tuned
nav2_params.yaml is surprisingly effective at keeping my bots safe around anything the lidar can see.
And yes — I absolutely love the idea of SIM-first and “
trouble injection.” That’s first-class engineering in my book.
Now, I have to dig really deep to find something to “
disagree” with… so let’s talk safety systems.
We can roughly split them into two categories:
1. Things the onboard
computer can handle on its own:
- Monitoring voltage and current and adjusting behavior accordingly
- Additional safety loops for collision avoidance
- Watching internal loop frequencies, CPU load, WiFi quality, delays, etc.
2. Things that happen when the onboard computer goes completely bananas or dies, and a
watchdogwolf must take over:
- Driving straight toward an obstacle and refusing to stop
- Anything overheating, smoking, or catching fire
- Main current draw going way too high
For the first case, you seem to be making good progress. But what about the second case? I'd guess you have enough Teensies to put that logic there? What about sharing sensors between the main computer and the Watchdog? Having some switches controlled by the watchdog? Does the "keep it simple" principle, when applied to the watchdog, conflict with the complexity of your Teensy hardware and software?
BTW, ROS2 Control Manager discovers Ubuntu Real Time kernel and will adjust its scheduling to run at higher priority.
P.S. - in our last Tuesday meeting I was distracted, trying to find the map offset parameter, and might have missed the important points you were making about the dynamic TF (for the moving lidar?) If, by any chance, there's a solution of further considerations - I am all ears.