RAAD 2010 Alexandru Dumitrache (CIMR) Collision avoidance for robot - - PowerPoint PPT Presentation

raad 2010
SMART_READER_LITE
LIVE PREVIEW

RAAD 2010 Alexandru Dumitrache (CIMR) Collision avoidance for robot - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

Outline

1

Overview Application – 3D Laser Scanning System Collision detection support in robot controllers

2

Related Work Surveys Collision detection libraries

3

Collision detection and avoidance Implementation with Open Dynamics Engine Integration with motion planning algorithms

4

Experiments Collision query benchmark Predictive collision detection for manual operation Collision detection for existing robot applications Educational robot simulator

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

slide-3
SLIDE 3

3D Laser Scanning System Overview

Robot Controller Rotary table controller 4-Axis CNC Milling Machine 1 2 3 4 5 7 6 PC 6-DOF Vertical Robot Arm Laser probe Rotary table Scanned workpiece Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 3 / 17

slide-4
SLIDE 4

3D Laser Scanning System Overview

6-DOF Articulated Robot Arm 4-Axis CNC Milling Machine Laser Probe Scanned Workpiece Rotary Table

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

slide-5
SLIDE 5

Collision detection support in robot controllers

Adept Technology - SmartController

4 user-defined static objects Only the tool center point is tested against the obstacles Robot program cannot alter the obstacles

Frustum Sphere Cylinder Box

ABB Robotics - IRC5

RobotWare option for Collision Detection Stops the robot if the torques exceed allowed values

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

slide-6
SLIDE 6

Surveys

Ming C. Lin and Stefan Gottschalk Collision Detection Between Geometric Models: A Survey In Proc. of IMA Conference on Mathematics of Surfaces,

  • pp. 37–56, 1998.

P . Jiménez and F . Thomas and C. Torras 3D Collision Detection: A Survey Computers and Graphics, vol. 25, pp. 269–285, 2000.

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

slide-7
SLIDE 7

Collision detection libraries

Engines for rigid body dynamics

Proprietary licenses: NVidia PhysX, Intel HAVOK, Newton Game Dynamics, True Axis Public licenses: Open Dynamics Engine (LGPL/BSD), Bullet Physics (zlib), JigLib (zlib), Tokamak (BSD)

Standalone libraries for collision and proximity queries

Traditional (discrete) collision detection Convex polyhedra: GJK, I-COLLIDE, SWIFT Polygon soups: RAPID, PQP , V-COLLIDE, SWIFT++, V-CLIP , OPCODE, GIMPACT Continuous collision detection (CCD) FAST: for rigid polyhedra CATCH: for articulated models

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

slide-8
SLIDE 8

Implementation with Open Dynamics Engine

Open Dynamics Engine

Open 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: collisionQuery

Verifies a given robot configuration against collisions

def collisionQuery(Robot, Joints) ... collisions = [] space.collide(collisions, nearCallback) ... def nearCallback(collisions, geom1, geom2): if collisions: return if ode.collide(geom1, geom2): collisions.append((geom1,geom2))

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

slide-9
SLIDE 9

Integration with motion planning algorithms

Heuristic motion planner: Ray Shooting

Exploits redundancy of the 7-DOF mechanism Generates smooth motions for rotary table Avoids singularities, robot configurations close to joint limits, and also collisions

Constraints

Real-valued functions in [0...1]

fi = 1: fully satisfied fi = 0: not satisfied 0 < 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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

Integration with motion planning algorithms

Constraint function for collision detection

Input: minimum distance between two bodies Tuning parameters:

A = dlow

min

B = dhigh

min

γC – shape factor

fC(dmin) =      0,dmin < A sin

  • dmin−A

B−A · π 2

γC 1,dmin > B

A = dlow

min

B = dhigh

min

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

slide-12
SLIDE 12

Collision query benchmark

Robot meshes: from manufacturer’s CAD files Workspace: acquired by 3D scanning Meshes were simplified in MeshLab Element Triangles Vertices Robot base 5000 2490 Robot link 1 5000 2538 Robot link 2 2500 1257 Robot link 3 2500 1262 Robot link 4 2500 1252 Robot link 5-6 5000 1275 Robot gripper 388 196 3D sensor 10000 4489 Sensor fixture 5000 2494 Workspace 50000 26344

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

slide-13
SLIDE 13

Collision query benchmark

Monte Carlo simulation

1000 random configurations for the robot arm Each joint is uniformly distributed between 0 and 360◦ Average query time: 2.2 ms Worst case: under 10 ms.

1 2 3 4 5 6 7 8 Collision query time (milliseconds) 50 100 150 200 250 300 350 Number of queries

collisionBenchmark 100.00% 1× collisionQuery 97.22% 1000× setRobotPos 22.41% 2000×

  • de.SpaceBase.collide

65.53% 1000× nearCallback 59.04% 14076×

  • de.collide

57.44% 14076× Python C/C++

An implementation in C/C++ will be max. 1.5 times faster

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

slide-14
SLIDE 14

Predictive collision detection for manual operation

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

slide-15
SLIDE 15

Collision detection for existing robot applications

Motion supervisor task

Robot motion capture via Ethernet Trajectory is known in advance ⇒ no prediction necessary

Continuous Collision Detection Adjust monitor speed

Robot Controller

Motion Query (current position and destination) Robot Application

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

slide-16
SLIDE 16

Cross-platform robot arm simulator

robot-sandbox http:// alexdu.github.com/ robot-sandbox/

Open source implementation using Python, cgkit and ODE Uses rigid body dynamics, including collision detection Suitable for classroom usage Robot 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

slide-17
SLIDE 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