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
Outline Overview 1 Application – 3D Laser Scanning System Collision detection support in robot controllers Related Work 2 Surveys Collision detection libraries Collision detection and avoidance 3 Implementation with Open Dynamics Engine Integration with motion planning algorithms Experiments 4 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
3D Laser Scanning System Overview 4 4-Axis CNC Milling Machine Laser probe 6-DOF Vertical Scanned workpiece Robot Arm 1 PC Rotary table 5 7 3 2 Robot Controller Rotary table controller 6 Alexandru Dumitrache (CIMR) Collision avoidance for robot applications RAAD 2010 3 / 17
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
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 Cylinder Sphere Box Frustum 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
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
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
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
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 ] f i = 1 : fully satisfied f i = 0 : not satisfied 0 < f i < 1 : satisfied only partly Multiply all constraints to get the global value: m ∏ f = f i i = 1 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 detection Input: minimum distance between two bodies Tuning parameters: B = d high A = d low γ C – shape factor min min 1 0 , d min < A γ = 1 0.5 � γ C � d min − A γ = 2 f C ( d min ) = B − A · π sin 2 γ = 4 1 , d min > B γ = 0 . 5 0 B = d high 0 A = d low min min 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 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
Collision query benchmark collisionBenchmark Monte Carlo simulation 100.00% 1 × 1000 random configurations for the robot arm collisionQuery 97.22% Each joint is uniformly distributed 1000 × between 0 and 360 ◦ Average query time: 2.2 ms setRobotPos ode.SpaceBase.collide 22.41% 65.53% Worst case: under 10 ms. 2000 × 1000 × Number of queries nearCallback 350 59.04% 300 Python 14076 × 250 200 C/C++ ode.collide 57.44% 150 14076 × 100 50 0 An implementation in C/C++ will 0 1 2 3 4 5 6 7 8 be max. 1.5 times faster Collision query time (milliseconds) 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 task Robot motion capture via Ethernet Trajectory is known in advance ⇒ no prediction necessary Watchdog Task Continuous Motion Query Adjust (current position Collision monitor speed and destination) Detection Robot Application Robot Controller 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 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
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
Recommend
More recommend