Looking For Robust Firmware And Drivers That Are Easy To Deploy With ROS2
ROS and ROS2 are great at abstracting many of the reusable components in building robots; like messaging, a standard message type for velocity commands, etc. ROS is very much built on a "don't repeat yourself" (DRY) principle.
It's pretty easy to get started building some software that's intended to run on a robot, test it in Gazibo or Rviz. The problem for me is finding a compliment to this in the Firmware/Drivers side of the equation.
For example, I've been forced to spend months learning about the STM32 blue pill, bare metal programming on the RaspberyPi, I2C, UART, SPI, PWM but I have yet to find something that I can "plug" into some motor controllers and sensors, and have them work robustly in the way that the middle ware (ROS2) does.
For example, when running motor controllers from RapberryPi's using Linux and GPIO libraries, there's always an inherent lag due to kernel scheduling. This then leads into the world of RTOS and PREMPT_RT Linux, which is a whole other rabbit whole.
Then there's sensor synchronization. It is impossible to use a multi camera setup on any kind of SoC. You must be an FPGA programmer, or spend thousands of dollars to get cameras that work with Nvdia's Jetson platforms.
It just seems to me like there's a big divide between going from ROS2 and/or Nvidia's Isaac, to an actual physical robot that is production capable; unless you hire a team of embedded programmers.
Unless I am missing something here??