autonomy for general assembly reid simmons research professor robotics institute carnegie mellon...
TRANSCRIPT
Autonomy for General AssemblyAutonomy for General Assembly
Reid SimmonsResearch ProfessorRobotics Institute
Carnegie Mellon University
Autonomy for General Assembly Carnegie Mellon2
The ChallengeThe Challenge
• Autonomous manipulation of flexible objects for general assembly of vehicles– Dexterity
– Precise perception
– Speed
– Reliability
• The Specific Task– Insert clip attached to cable into
hole with millimeter tolerance
– Year 2: Moving taskboard
Autonomy for General Assembly Carnegie Mellon3
Overall ApproachOverall Approach
• Utilize our previous work in robot autonomy– Multi-layered software architecture
– Hierarchical, task-level description of assembly
– Robust, low-level behaviors
– Distributed visual servoing
– Force sensing
– Exception detection and recovery
Autonomy for General Assembly Carnegie Mellon4
Architectural FrameworkArchitectural Framework
Deals with goals and resource interactionsTask decomposition; Task synchronization; Monitoring; Exception handlingDeals with sensors and actuators
• Three-Tiered Architecture
• Reactive & Deliberative• Modular• Control loops at multiplelevels of abstraction
Executive
BehavioralControl
Planning
Autonomy for General Assembly Carnegie Mellon5
Syndicate: Multi-Robot ArchitectureSyndicate: Multi-Robot ArchitectureSynchronization / Coordination
Gra
nula
tity
Executive
BehavioralControl
Planning
Executive
BehavioralControl
Executive
BehavioralControl
Planning Planning
Autonomy for General Assembly Carnegie Mellon6
Syndicate Layers: BehavioralSyndicate Layers: Behavioral
• Made up of “blocks”– Each block is a small thread/function/process
– Represent hardware capabilities or repeatable behaviors
– “Stateless”: relies on current data; no knowledge of past or future
• Communicate with sensors
• Send commands to robots and get feedback
• Communicate data to other blocks
Autonomy for General Assembly Carnegie Mellon7
Ace Control BehaviorsAce Control Behaviors
Autonomy for General Assembly Carnegie Mellon8
Distributed Visual ServoingDistributed Visual Servoing• Mast Eye tracks fiducials
– Uses ARTag software package to detect fiducials– Provides 6-DOF transform between fiducials
• Mobile Manipulator uses information to plan how to achieve goal– Use data base describing positions of fiducials on objects
• Behavioral layer enables dynamic, transparent inter-agent connections
Mobile Manipulator
VisualServoRelativepositions
ArmControl
End effector delta
Mast Eye
Tracking
Images (via cameras)
The World
Manipulate environment (via arm)
Autonomy for General Assembly Carnegie Mellon9
Distributed Visual ServoingDistributed Visual Servoing
• Fairly precise– millimeter resolution at one meter
• Relatively fast– 3-4 Hz
• Basically unchanged from Trestle code
• Operates in relative frame– Poses of one object relative to another
– Controller continually tries to reduce pose difference
– Cameras do not need to be precisely calibrated with respect to base or arm
Autonomy for General Assembly Carnegie Mellon10
Distributed Visual ServoingDistributed Visual Servoing
• Associating Fiducials with Objects– Programmer provides file listing the pose of each fiducial
with respect to an object
– Multiple fiducials can be associated with each object
– Can measure directly, or use system to give us the poses
• Reducing Pose Differences– “Waypoint” is the pose of one object with respect to another
• Everything is relative!
– Visual servo block multiplies pose difference by gain
– Update moves when new information arrives
Autonomy for General Assembly Carnegie Mellon11
Syndicate Layers: ExecutiveSyndicate Layers: Executive
• Made up of “tasks”– Each task is concerned with achieving a single goal
– Tasks can be arranged temporally
• Tasks can:– Spawn subtasks
– Enable and connect blocks in the behavioral layer to achieve the task
• Enable tell a block to start running
• Connect tell blocks to send data to other blocks
– Monitor blocks for failure
– Provide failure recovery
Autonomy for General Assembly Carnegie Mellon12
Ace Task DecompositionAce Task Decomposition
Child link
Serial Constraint
Autonomy for General Assembly Carnegie Mellon13
Example TDL Code (somewhat simplified)Example TDL Code (somewhat simplified)
Goal ClipInsertion ( ) {
loadPlugArmPose : spawn ArmMove (loadPose);
stowArmPose: spawn ArmMove (stowPose) WITHSERIAL loadPlugArmPose;
roughBaseMove: spawn RoughBaseMove (roughBaseWaypoint)
WITH SERIAL loadPlugArmPose;
spawn RoughArmMove (roughArmWaypoint)WITH SERIAL roughBaseMove, SERIAL stowArmPose;
…}
A keyword that says this is not supposed to be a “leaf” in the task tree
Reusing task with different parameters
In the tree, this is the task name, but this is the actual function being executed
Tells the system to execute this task
after LoadPlugArmPose completes
Wait until both tasks have completed before starting RoughArmMove
Autonomy for General Assembly Carnegie Mellon14
Initial Results (December 2007)Initial Results (December 2007)
• Used Previous Hardware– RWI base
– Metrica 5 DOF arm
– Metal & plastic gripper
• Successfully Inserted Clip– 60% success rate (15 trials)
• Mainly attributable to hardware problems
– Fairly slow (~1 minute)
– Scripted base move
Autonomy for General Assembly Carnegie Mellon15
Insertion VideoInsertion Video
Autonomy for General Assembly Carnegie Mellon16
Current StatusCurrent Status• Moved to New Hardware
– Powerbot base– WAM arm (Barrett)– All-metal gripper
• Still Successfully Inserting Clip– Much faster
• Better hardware• “Rough” moves
– Base motion is planned, not scripted– Uses force sensing to detect completion / problem– Have not yet characterized success rate
Autonomy for General Assembly Carnegie Mellon17
Upcoming WorkUpcoming Work• Near Term (1 month)
– Complete hardware integration• Laser, PTU, VizTracker
– Characterize success rate of system
• Mid Term (2-6 months)– Convert to velocity control of WAM– Use force control for actual insertion– Increase reliability through execution monitoring and
exception handling
• Farther Term (2nd year of contract)– Insert clip into moving taskboard