Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option...

17
Collision and proximity avoidance for robust behaviour of real-time robot applications Alexandru Dumitrache Theodor Borangiu Anamaria Dogar Centre for Research & Training in Industrial Control Robotics and Materials Engineering University Politehnica of Bucharest RAAD 2010 Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 1 / 17

Transcript of Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option...

Page 1: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 2: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 3: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 4: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 5: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 6: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 7: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 8: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 9: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 10: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 11: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 12: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 13: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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%

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

Page 14: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

Predictive collision detection for manual operation

Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 14 / 17

Page 15: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 16: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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

Page 17: Collision and proximity avoidance for robust behaviour of ...ABB Robotics - IRC5 RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values Alexandru

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