One way to generate primitives is to look at words. Each of these words could be a different primitive. Here are some examples from WordNet, dictionaries, and thesauruses. For those of you who know other languages, think about how many words (or characters) there are for these basic acts. ****************** Let's begin to create a hierarchy for verbs involving actions a physical robot can do (acts) A middle-down approach would define a hierarchy of primitives rooted in an "API", which is a list of basic acts. The API might look like: 1 MOVE X displace, propel, ease, translate, rotate 1.1 MOVE SELF 1.1.1 MOVE SELF TO CHANGE LOCATION [not considering flying or moving on or under water.] locomote, crawl, walk, creep, run, scramble, slither, slide, wheel, roll, glide, go, come, travel, wend, wander, wind, thread, meander, weave, stray, err, drift, rise, move up, ascend, descend, zigzag, jump, sashay, trot, sidle, careen, steal, dance, whirl, stumble, trip, mill about, turn, climb, leap, bound, spring, bolt, enter, come in, arrive, exit, go out, get out, leave, bustle, linger, dawdle, lunge, swoop, flurry, crash, thunder, hop, leap, sneak 1.1.2 MOVE SELF TO REORIENT/CHANGE POSTURE/POSE reorient, look at, gaze at, pay attention to, turn, step, avoid, circle, fall, lie down, sit, get up, duck, bob, wallow, writhe, wriggle, worm, squirm, twist, wobble, waggle, nod, pulsate, quiver, tremble, teeter, tilt, lean, slant, pitch, roll, yaw, cant, twitch, falter, waver, undulate, flap, wave, startle, start, jump, mope, hop, get down, assume/take/strike a pose, tumble, hug, fidget, flinch, cringe, wince, recoil, heave, fling, dodge 1.2 MOVE OBJECT displace, shift, manipulate, carry, transport, put, set, place, pose, position, lay, center, align, even, pour, spill, slop, splatter, separate, sort, divide, part, transfer, throw, wrestle 1.2.1 MOVE TO ORIENT TO OBJECT pre-grasp 1.2.2 MOVE WHILE TOUCHING OBJECT compliant move, press, depress 1.2.2.1 MOVE OBJECT WHILE HOLDING IT 1.2.2.2 MOVE OBJECT NOT HOLDING IT (NON-PREHENSILE MANIPULATION) 1.3 MAINTAIN POSTURE (NOT MOVE) stand still, hold still, freeze 2 FIND X (which may involve moving) seek 2.1 FIND AN OBJECT 2.1.1 FIND A SPECIFIED OBJECT 2.1.2 FIND AN OBJECT THAT OPTIMIZES CRITERION AND SATISFIES CONSTRAINTS 2.2 FIND A LOCATION 2.2.1 FIND A SPECIFIED LOCATION 2.3.2 FIND A LOCATION THAT OPTIMIZES CRITERION AND SATISFIES CONSTRAINTS 3 CONTACT/ATTACH/ACQUIRE X 3.1 MOVE TO TOUCH OBJECT guarded move, move until contact, make contact, reach catch 3.2 CONTACT X 3.3 GRASP X grab 4 RELEASE X put, drop, expell, slip, throw, ungrasp 5 TRANSFORM X change, alter, modify, affect 5.1 TRANSFORM SELF 5.2 TRANSFORM OBJECT some examples: shape, mold break, crush, pulverize, liquify stir, mix, churn, roil, agitate, shake, vibrate, jerk, sweep, brush, collect stretch, compress tear, rip heat, cool, boil clean, wash sand, smooth, polish, even, coarsen sharpen, flatten, dull tighten, loosen open, close lock, unlock engage, mesh, interlock, disengage join, glue roll, unroll ruffle, riffle arrange, straighten, string, thread cut, slice, dice, whittle, chop, saw drill, dig, carve, whittle ***************************************************************** Behaviors built out of these primitives: Travel/go/locomote = MOVE SELF Put = FIND/ATTACH/MOVE/RELEASE OBJECT Open door by pulling = FIND handle and hinges, ATTACH handle, MOVE handle, RELEASE handle Swap X and Y = FIND X, ATTACH X, MOVE X, FIND Y, RELEASE X, ATTACH Y, MOVE Y, RELEASE Y (may need to go back and reposition X exactly where Y was). Make the bed Set the table Clear the table tidy up, clean up, neaten, straighten wash, clean disentangle, unsnarl, loosen, unravel pack, bundle, wrap, drape pile, heap ... and so on. ***************************************************************** How many PUSH primitives are there? Let's look in detail at PUSH - "apply force into the interior of a surface of an object" (CGA's definition) or "generate force on an object not towards an agent (force is away from or to the side of the agent)" This definition handles forces like gravity and magnetism that don't act at a contact point or on a surface. The object may or may not move or change as a result of the push. In robotics pushing is a form of nonprehensile manipulation (no grasping). * Vary speed, force, and amount and type of movement (with some suggestion of tool): touch, contact (to make contact without much force) nudge, bump (to push against gently) shift, dislodge, reposition, displace (push to get something to move) jostle, jar (push or shake strongly enough to induce some movement or vibration) jog (give a slight push to) stroke, brush, skim, skim over, graze (touch while moving) feel, palpate (push for sensing) jerk, flick, snap (throw or toss with a quick motion) budge (move a small amount) thrust (push forcefully) shove, bulldoze, manhandle (push roughly) shoot (push fast) propel, impel (push as if providing a motor) tap (push quickly but lightly) hit, whack, punch, knock, strike, jolt, stamp, kick (a very forceful and fast push) drive (having been pushed hard: "The nail was driven deeply into the wood") pound, beat, thump (repeated hits) rock, sway, oscillate, move back and forth fluctuate pulse glide flex, bend spread * Vary direction push out, thrust out (push to thrust outward) push aside, push away, thrust aside (push out of the way) lift, raise, elevate, bring up (push upward) lower, take down, let down, bring down * Vary body part elbow (push with an elbow) shoulder (push with a shoulder) lean (typically with shoulder or hands, using gravity to generate force) toe (push with the front of the foot) nose (push or move with the nose (quadrupeds do this)) slap (forcefull hit with open hand) punch (forcefull hit with knuckles of a closed hand) butt (push or hit with head (quadrupeds do this)) stamp (hit downward with foot) choke, strangle (compress neck with hands) puff, blow (use mouth) extend (muscle movement or force to extend a limb) * Vary tool and scale prod, goad (push gently with a stick-like object or finger) poke, stab, jab, stick, prick, plunge, dig (push with a sharp stick-like object or finger) ram (poke at forcefully with a large pole-like object or vehicle) * Specify something about the object or what happens to it. topple, tumble, tip, tip over, overturn, roll, upset, knock over, bowl over, (cause to topple or tumble by pushing) slide, slip, glide (push resulting in the object sliding) stab, jab, pierce (attempt to pierce an object with or without a sharp tool) press (object doesn't move or moves in a prefined way (button)) bear down (on), press down on, weigh down, knuckle, load (force is needed for push) send (object moves) boost (lift another agent) force (significant force is/was needed to move an object) sweep (move typically small or granular materials, or liquids with a surface) squeeze, squash, crush, mash, mash, crunch, flattened (material is crushed or flattened) scrape squeegie tighten compress constrict saltate Specify situation or task move, displace (object actually moves) place, position, locate (move to a specified location or pose) slot (move object into a slot) jam, ram, thrust, stuff, shove, squeeze, insert, fit (press or force an object into a constrained space with multiple contacts, robotics term is peg-in-hole) wedge, lodge, work, tuck, pop (move object where supported by mechanical constraints) ****************** How many PULL primitives are there? PULL - "apply force on an object that points outward at the point of contact" (CGA's definition) or "generate force on an object towards an agent" (Wordnet) This second definition handles forces like gravity and magnetism that don't act at a contact point or on a surface, but attract an object. In robotics pulling is a form of nonprehensile manipulation (no grasping). The object may or may not move or change as a result of the pull. Note that WordNet defines pull as relative to an agent, while push is defined relative to an object's surface. With that definition, push and pull are not quite opposites. An agent can pull on an object by pushing on its surface on the far side from the agent (granted, this is an unusual case). One fires a gun by pulling the trigger, which actually involves pushing the trigger towards the hand. you could do these with a rope: stretch, tug, haul, drag, draw, tow, heave, lug, strain, strain at, jerk yank here we are using a mechanical lever lever, pry, prise These involve twisting wrench, wrest, twist These suggest removing an object from a group, a container, or other constraints remove, extract, pick, take, take away, take out, withdraw These suggest making a group (pull things together) gather, attract These removing objects from a surface uproot, weed, pluck, pick at, pull at These involve subdividing or breaking an object rip, rend, tear, pull apart, dislocate These suggest particular objects or tools winch, rake, comb, brush, unsheath These suggest a limb retract, flex (muscle movement or force to retract a limb) These suggest clothes or cloth hike up, hitch up, strip, undress, unveil A wind can push (blow) and pull (suck) ****************** How many PUT primitives are there? PUT - move object to a specific location or to satisfy a constraint position Put something on another object, resulting in the object being supported lay, plant, pile, set, place, seat, stand, rest, load Put something inside another object or group put in, insert, enclose, stick in, introduce, plug, inset, intersperse, interleave, slip, inject, shoot, pigeonhole, shelve, cram, stuff, jam, ram, wad, overstuff Put something inside another object or group continuously feed Put something next to another object nestle, snuggle, butt, juxtapose Put something in a geometric relationship with another object or context align, line up, parallelize, aim, point, level Put something over something else cover Put something under something else underlay Put parts of a movable object in an arrangement pose Put parts of a group somewhere arrange, set up Discard something throw away, discard Put something in a previous location replace, put back, reposition, relocate Put something in the wrong place misplace Put something in a position so another act can be performed tee, rack up ****************** SET ****************** GET ****************** HOLD ****************** GRASP grip clutch clasp hold clench lay hold of catch seize grab snatch latch onto catch at grapple crush put/get hands on clinch clamp ****************** DROP let go let fall let go (of) fail to hold lose one's grip on release unhand relinquish put place rest deposit set set down lay leave settle shove pop plonk drip fall in drops fall dribble trickle drizzle flow run plop leak come/go down descend sink plunge plummet tumble pitch ***************************************************************** CUT ***************************************************************** OTHER MOVEMENTS swing, sling throw, launch ***************************************************************** ***************************************************************** ***************************************************************** Under construction: distinctive actions wring (twist) use of tools or other object (wrapping paper, rope, ...) wiping sweeping sponging combing brushing rake whisk stir, mix slash stab sift funnel guide wind (a string) unwind wrap unwrap tie, untie tangle, disentangle lasso grind pump row paddle pass around, pass on cinch ... MULTIPLE MOVERS follow lead pass chase, pursue capture evade maneuver race formation drive herd crowd guard move over, give way, yield, ease up hop on, mount, mount up, get on, jump on, climb on, bestride LIQUIDS AND GRANULAR MATERIALS pour ladle A way to describe primitives is phrases: verb - grasp verb object - open door verb object-v preposition1 object-p1 preposition2 object-p2 ... - insert peg into hole by rotating it ...