[Dprglist] Robotics "Capability Maturity Model" - Thoughts?

Chris N netterchris at gmail.com
Wed Oct 27 08:03:40 PDT 2021


So in part because of questions along the line of "where do I get started"
from Kumar, and others before him, that we occasionally get, I thought it
might help to have some sort of capability model in mind that can be
referenced.

That way one can ask "OK - what level are you at currently?  What level are
you trying to reach in the near term?"

Below is what I mean.  For now this is focused on software and locomotion
(but starting with Level 8,  perception comes into the picture)

I have more explanation to go along with each item but wanted to keep it
brief in this e-mail.

The idea is not to explain how to do these things.  This just represents
milestones along the journey.  This is really more about having an agreed
upon vocabulary.

Thoughts?   Is something like this helpful to have written down?  Is it
already written down somewhere ? (I am sure that in some ways, this is
captured in some of the material that David Anderson has published over the
years)

Level 0: I have an API through which I can control the speed and direction
of the individual wheels. My robot can move!

Level 1: I have an API through which I can reliably get the incremental
encoder counts for each wheel.  When motors are commanded with a certain
duty cycle, I can measure what that translates to in terms of encoder
counts per time unit.

Level 2: I am keeping track of my Robot's X, Y and Theta via dead-reckoning
/ odometry

Level 3: I have taken at least basic steps to calibrate my robot's odometry
calculations.

Level 4: I can command the robot to move, but using more abstract units
such as "meters/second" or at least "encoder ticks per time unit"

Level 5: My robot actually moves at the linear and angular velocity I tell
it to, even when battery voltage is lower or surface friction is higher.
And because I have completed Level 3, it can go in a somewhat straight line
when I ask it to.

Level 6: My robot moves in a fairly smooth fashion, i.e. it changes speed
and direction somewhat gradually. Movement is not "robotic"

Level 7:  I can command my robot to go to a certain X,Y coordinate aka
waypoint relative to its current location,  and the robot more or less
reaches that location provided nothing is in the way

Level 8:  My robot can reach the target location, even if there are
obstacles in the way.

Level 9:  My robot can come back after reaching its destination.

Level 10: My robot can do all this, even if the obstacles are moving around
quite a bit or if there are other sources of possible confusion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dprg.org/pipermail/dprglist-dprg.org/attachments/20211027/f25f65a9/attachment.html>


More information about the DPRGlist mailing list