[Dprglist] Robotics "Capability Maturity Model" - Thoughts?
Iron Reign
ironreignrobotics at gmail.com
Wed Oct 27 09:34:55 PDT 2021
Chris,
I think you've described a rational and typical path most of us have taken.
You've kept the language simple and clean. Easy for beginners to follow.
Nice job of creating a framework for thinking about these things.
Maybe think about rephrasing "API" in levels 0 and 1.
Might want to point out that not everyone passes through these steps in
this order. For example, odometry is typical but not necessary in all
circumstances.
And some might describe their path as more tree-like than a linear
progression. For example, how would you insert certain other capabilities:
- I have access to a live visualization of my robot's sensor readings
and internal state.
- My robot can transform locations between different relative and
absolute(ish) coordinate systems.
- My robot can identify specific objects as targets/beacons to assist
with navigation.
- My robot can grasp, manipulate or transport certain objects from point
A to point B.
- My robot has an internal kinematic model of itself.
- My robot can charge itself because it fears death. :)
Granted you were probably setting out to describe a straight forward model
for getting started in robotics and not intended to encompass extended
capabilities.
I just read Carl's response. There might be room for both a robot CMM and a
roboticists CMM. "These go to 11"
https://www.youtube.com/watch?v=KOO5S4vxi0o&ab_channel=pmw8000
On Wed, Oct 27, 2021 at 11:04 AM Carl Ott via DPRGlist <
dprglist at lists.dprg.org> wrote:
> Chris,
>
> What a really great idea! Borrow from the CMM - I love it.
> https://en.wikipedia.org/wiki/Capability_Maturity_Model
>
> Will take a little time to respond with better suggestions -
> but as quick feedback -
> That maturity path leans heavily on odometry to measure progress - and
> presumes a certain set of objectives.
> But I can show that my robot can reach a destination and return 'more or
> less' to start completely without odometry- using only timed motor commands
> - or a little more accurately by using motor velocity control loops.
> I think the CMM is/ should be more about range of skills, and ability to
> produce consistent results and data driven process and performance
> improvement...
>
> So I'm going to chew on this, and come back with something a little more
> abstracted, along the lines of
>
> Level 0
> no technical background
> never wrote a program
> never built mechatronics
>
> Level 1
> scattered technical skills or some experience
> * changing an existing program or writing a program from scratch
> * building a kit with software / mechanics and electronics
>
> Levels 2..10 <needs more thought> ...
>
>
> Level 11
> claims personal responsibility for developing best-in-class robots and
> robot technologies from scratch at Boston Dynamics / Tesla / CMU Robotics /
> etc...
>
> why 11 levels? simple: This Is Spinal Tap
>
>
> - Carl
>
> On Wed, Oct 27, 2021 at 10:04 AM Chris N via DPRGlist <
> dprglist at lists.dprg.org> wrote:
>
>> 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
>>
>>
>>
>>
>> _______________________________________________
>> DPRGlist mailing list
>> DPRGlist at lists.dprg.org
>> http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org
>>
> _______________________________________________
> DPRGlist mailing list
> DPRGlist at lists.dprg.org
> http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dprg.org/pipermail/dprglist-dprg.org/attachments/20211027/ad522f56/attachment.html>
More information about the DPRGlist
mailing list