Absolute motion in serial protocol

Does the Turtlebot2 (aka Kobuki) serial protocol have commands for absolute motion (i.e., 1m forward, rotate 90°, etc.)?

I know that no such commands are in the official documentation, but maybe it was never asked for, and the command were just not documented?

I need absolute motion and it seems silly to implement a position control loop over the serial line, when the internal micro-controller could probably do this trivially.

Could, should, would have …

The program inside the microcontroller is essentially the same, with minor modifications, to that used in Yujin’s cleaning robot products. There are a few reasons why it’s nonsensically expensive to make too many changes to microcontroller code within a company:

  1. RFC (Request for Change) processes need to be followed to any modification of the flashed program at the factory. These processes are typically long, require a significant round of testing and QA to approve.
  2. If a bug gets through the cracks, you inflict re-flashing on your company’s partners and users and then you have to deal with a very very (did I already say very?) unhappy CTO/Business Director. Alternatively, inflicting a deb update on users is something that people rarely even notice has happened.
  3. Usually there’s only one person with the knowledge (more would be a waste) to develop the microcontroller code with its esoteric toolset AND that person is on the product team. You should be thankful for the few brief stints he has available to contribute to a research robot!
  4. Expanding the serial protocol is more work than just creating a ROS message and developers, unless motivated by the appropriate carrots, will always choose the path of least resistance.

We would have loved to make that code open source so others could have evolved the controller. Unfortunately given the history of that codebase, this was never going to be possible without completely rewriting it.

Thanks for the reply. I’m not expecting you to change the firmware for me! I’ve just been wondering whether, maybe, this was already in there. From your answer I surmise that it’s not.

btw, you mention open source firmware. Would you be prepared to make available documentation on the micro-controller and board, so that others could write one? We’re currently engaged in a micro-controller oriented project for ROS and would be interested in something like that to make a show-case on widely available hardware.

No longer with the company, so can’t help you there, sorry.