Develop a program (any
programming language is allowed) for motion planning of a polygonal robot
moving from an initial configuration to a target configuration in the 2D environment populated by polygonal obstacles. The robot may translate or rotate freely
but it must not collide with any obstacle during the entire motion plan.
1. The
entire environment is the rectangular workspace defined by the following
coordinates: (0,0), (100,0), (100,50), (0,50).
2. The
program must allow the polygonal robot to be defined using an input file
containing the number of the polygon's vertices and their coordinates. It is assumed that the vertices are
listed in the counterclockwise order.
Following is an example of the content of such file.
3
0 0
10 0
5 5
3. The
program must allow the polygonal obstacles to be defined using an input file
containing the number of obstacles and the definition
of each polygonal obstacle (defined in the same manner as in 2).
All obstacles must be entirely
contained in the environment defined in 1. Following
is an example of the content of such file.
2
3
1 1
10 0
5 5
4
50 50
70 50
70 80
50 80
4. The
initial and target configuration must be read from an input file. A configuration has two components. The
first part is the coordinates of the location where the first vertex of the
robot is located in the environment.
The second part is the orientation of the robot, i.e., angles at which
the robot is rotated relative to the original copy (positive angle for counterclockwise
rotation, and negative angle for clockwise rotation). Following is an example
of the content of input configuration file. The first line defines the initial
configuration and the second line defines the target configuration.
10 10 20
60 70 -10
5. The
program must be able to visually show the computed motion plan.