Upload
others
View
29
Download
0
Embed Size (px)
Citation preview
Collision and proximity avoidance for robustbehaviour of real-time robot applications
Alexandru Dumitrache Theodor Borangiu Anamaria Dogar
Centre for Research & Training in Industrial ControlRobotics and Materials EngineeringUniversity Politehnica of Bucharest
RAAD 2010
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 1 / 17
Outline
1 OverviewApplication – 3D Laser Scanning SystemCollision detection support in robot controllers
2 Related WorkSurveysCollision detection libraries
3 Collision detection and avoidanceImplementation with Open Dynamics EngineIntegration with motion planning algorithms
4 ExperimentsCollision query benchmarkPredictive collision detection for manual operationCollision detection for existing robot applicationsEducational robot simulator
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 2 / 17
3D Laser Scanning System Overview
Robot Controller Rotary table controller
4-Axis CNC Milling Machine
1
23
4
5
7
6
Data acquisition module (PC)
Instantaneous encoder positions
Laser probe location with respect to
scanned workpiece
USB
Point Cloud COM
PC
6-DOF VerticalRobot Arm
Laser probe
Rotary table
Scanned workpiece
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 3 / 17
3D Laser Scanning System Overview
6-DOF ArticulatedRobot Arm
4-Axis CNCMilling Machine
Laser Probe
Scanned Workpiece
Rotary Table
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 4 / 17
Collision detection support in robot controllers
Adept Technology - SmartController4 user-defined static objectsOnly the tool center point is tested against the obstaclesRobot program cannot alter the obstacles
FrustumSphereCylinderBox
ABB Robotics - IRC5RobotWare option for Collision DetectionStops the robot if the torques exceed allowed values
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 5 / 17
Surveys
Ming C. Lin and Stefan GottschalkCollision Detection Between Geometric Models: A SurveyIn Proc. of IMA Conference on Mathematics of Surfaces,pp. 37–56, 1998.
P. Jiménez and F. Thomas and C. Torras3D Collision Detection: A SurveyComputers and Graphics, vol. 25, pp. 269–285, 2000.
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 6 / 17
Collision detection libraries
Engines for rigid body dynamicsProprietary licenses: NVidia PhysX, Intel HAVOK, Newton GameDynamics, True AxisPublic licenses: Open Dynamics Engine (LGPL/BSD), Bullet Physics(zlib), JigLib (zlib), Tokamak (BSD)
Standalone libraries for collision and proximity queriesTraditional (discrete) collision detection
Convex polyhedra: GJK, I-COLLIDE, SWIFTPolygon soups: RAPID, PQP, V-COLLIDE, SWIFT++, V-CLIP,OPCODE, GIMPACT
Continuous collision detection (CCD)FAST: for rigid polyhedraCATCH: for articulated models
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 7 / 17
Implementation with Open Dynamics Engine
Open Dynamics EngineOpen source physics engine (LGPL / BSD)Python wrappers: PyODE (low level), cgkit (3D rendering)It is possible to use only the collision tests (OPCODE/GIMPACT)
Primitive function: collisionQueryVerifies a given robot configuration against collisionsdef collisionQuery(Robot, Joints)
...collisions = []space.collide(collisions, nearCallback)...
def nearCallback(collisions, geom1, geom2):if collisions: returnif ode.collide(geom1, geom2):
collisions.append((geom1,geom2))
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 8 / 17
Integration with motion planning algorithms
Heuristic motion planner: Ray ShootingExploits redundancy of the 7-DOF mechanismGenerates smooth motions for rotary tableAvoids singularities, robot configurations close to joint limits, andalso collisions
ConstraintsReal-valued functions in [0 . . .1]
fi = 1: fully satisfiedfi = 0: not satisfied0 < fi < 1: satisfied only partly
Multiply all constraints to get the global value:
f =m
∏i=1
fi
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 9 / 17
Integration with motion planning algorithms
The constraints can be visualized as grayscale configuration maps
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 10 / 17
Integration with motion planning algorithms
Constraint function for collision detectionInput: minimum distance between two bodiesTuning parameters:
A = dlowmin B = dhigh
min γC – shape factor
fC(dmin) =
0,dmin < A
sin(
dmin−AB−A · π
2
)γC
1,dmin > B
0 A = dlowmin B = dhigh
min
0
0.5
1
γ = 1γ = 2γ = 4
γ = 0.5
Minimum distance has to be higher than A
If it is B or higher, that’s perfect
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 11 / 17
Collision query benchmark
Robot meshes: from manufacturer’s CAD filesWorkspace: acquired by 3D scanningMeshes were simplified in MeshLab
Element Triangles VerticesRobot base 5000 2490Robot link 1 5000 2538Robot link 2 2500 1257Robot link 3 2500 1262Robot link 4 2500 1252Robot link 5-6 5000 1275Robot gripper 388 1963D sensor 10000 4489Sensor fixture 5000 2494Workspace 50000 26344
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 12 / 17
Collision query benchmark
Monte Carlo simulation1000 random configurationsfor the robot armEach joint is uniformly distributedbetween 0 and 360◦
Average query time: 2.2 msWorst case: under 10 ms.
0 1 2 3 4 5 6 7 8Collision query time (milliseconds)
050100150200250300350
Num
bero
fque
ries
collisionBenchmark100.00%
1×
collisionQuery97.22%1000×
setRobotPos22.41%2000×
ode.SpaceBase.collide65.53%1000×
nearCallback59.04%14076×
ode.collide57.44%14076×
Python
C/C++
An implementation in C/C++ willbe max. 1.5 times faster
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 13 / 17
Predictive collision detection for manual operation
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 14 / 17
Collision detection for existing robot applications
Motion supervisor taskRobot motion capture via EthernetTrajectory is known in advance⇒ no prediction necessary
Continuous CollisionDetection
Adjust monitor speed
RobotController
Motion Query(current positionand destination)
RobotApplication
Watchdog Task
Network delay may slow the robot down, but it should not affect reliability
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 15 / 17
Cross-platform robot arm simulator
robot-sandbox http:// alexdu.github.com/ robot-sandbox/Open source implementation using Python, cgkit and ODEUses rigid body dynamics, including collision detectionSuitable for classroom usageRobot language: a subset of Adept V+
(a) Hanoi towers (b) Conveyor belt (c) Robot drawing
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 16 / 17
Conclusions
Collision avoidance techniques for robot applications
Open source implementation: Python, Open Dynamics Engine
Applicable in physical and simulated environments
Suitable for real-time applications
Can be implemented on existing robot controller
Requires 3D meshes of the robot and environment
Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 17 / 17