Modeling arm capabilities

Then the capability will change. The capability refers to what the robot can do in that point.

The core grippers are the first example: Updating PLR API for machine interfaces discussion - #4 by rickwierenga

other robots in this space can follow a similar pattern:

cap = await robot.pick_up_tool()

star.gantryarm.ichannels
star.gantryarm.iswap

yes, see Modeling liquid handlers - #14 by rickwierenga

An arm has an end-effector that defines its capability

Yes, in physical reality that’s the closest since every machine essentially either has a gantry or joint arm. But the question is whether we should model these robots down to that level. Maybe later it will turn out we will benefit from that. For now I am thinking about “abstractions as they functionally occur”, like the arm capability just means resource movement, the liquid handler capability means tip handling and liquid handling. These capabilities are easy to pass around and use in writing robot agnostic code.