Welding Robot

Task: Allocate spot welding robots for a car body spot welding line.

Spot welding robots are typically 6 or 7 degrees-of-freedom and work on 3D objects. To keep computational load and complexity for the computation of the kinematic inverse low, we use 2D objects and 2 degrees-of-freedom SCARA-type robots.

This example demonstrates the principles and top down construction of the program that solves a fragment of the allocation task.

Input data:

	spots to be welded for each car
		(e.g. 400 spots for door openings and wheel houses)
	physical size of the robots
		(e.g. length upper arm, length lower arm,
		 and arm volume needed for collision avoidance)
	performance of robots
		time for welding operation (e.g. 0.5sec)
		moving time from spot to neighboring spot
			(e.g. 1 sec)
		moving time from spot to other spot
			(e.g. 2 sec)
		moving time from spot to rest position
			(e.g. 4 sec)
	number of cars per day
		(e.g. 1000 cars/day 3 shifts/day, 6 hours/shift
			= 64.8 seconds per car,
		 could be 10.8 seconds moving cars along the line
		 and 54 seconds working on the standing cars)

Task is to compute:

number of welding stations needed positions of robots within each welding station path (=sequence of spots to be welded) of each robot

so that:

smallest number of welding stations smallest number of robots for each welding station all spots are welded no robots collide during operation

A few assumptions:

Welding stations do not interfere with each other (i.e. robots of seperate welding stations never collide)

Spots are given as a set of sequences of neighboring spots.

All spots are within reach of a correctly positioned robot.

Limitations:

Collision detection only for points, not for the path between points.

Partial Implementation:

 LINES   PROGRAM
     29  weldingline.min	describe welding line
     88  alloc_robots.min	plan robots for spots
     51  scara2D.min		formula for 2D SCARA robot
     18  sleep.min		for slow motion animation
     23  time.min		to measure problem solving time
    183  draw.min		to visualize data and solution


Up read on...