Personal tools
You are here: Home Courses Algorithmic Robotics and Motion Planning Spring 2011 Exercises Assignment 3
« November 2021 »
November
SuMoTuWeThFrSa
123456
78910111213
14151617181920
21222324252627
282930
Log in


Forgot your password?
 

Assignment 3

Installation

Installation guidelines can be found here.

User manual

The GUI allows you to interactively construct your workspace, draw obstacles and robot using the mouse. 

  • Obstacles: Click the "draw obstacle" button. To finish, click near the first inserted point of the obstacle. 
  • Robot: Click the "draw robot" button. Insert four points - the first (green) is the x,y reference point of the robot; the second (red) is the endpoint of the robot; the last two points represent the goal configuration.
  • Unlike the GUI in the previous assignment, this GUI allows to save and load paths constructed by the algorithm.

It also supports loading and saving scenes, in the following format:

-203.00 -252.00 305.00 283.00 // top-left, and bottom-right workspace points
2 // number of obstacles
3 // number of points in the first obstacle
-2.00 -134.00 -47.00 53.00 166.00 61.00
4 // number of points in the second obstacle
29.00 148.00 44.00 163.00 75.00 133.00 36.00 141.00 
-96.00 -116.00 -92.00 -29.00 // robot in start position (first point is reference)
147.00 -51.00 178.85 -132.06 // robot in goal position
6 // number of configurations 
-96.00 -116.00 0 0 0 0 0 0 30 0 0 -30 30 30 -30 60 60 -30

The main class of your program is "Planner" and its "Run" function contains an explanation on how to query data from the input and return the result. This function currently returns a demo path.

GOOD LUCK!

Important

*BUG*: In Scene.h, change

QLineF	Scene::getTargetPosition()
{
	return m_startPosition;
}

to

QLineF	Scene::getTargetPosition()
{
	return m_targetPosition;
}

*BUG* Take II: Currently there is no function for querying the bounding box parameters of the scene. 
As the boundary of the scene is constant (unless you resize the window) the following top-left and bottom-right points can be used:

-203.00 -252.00 305.00 283.00

Otherwise, follow the steps:

  • Add query functions for the fields m_roomTL,m_roomBR to the class Scene
QPointF Scene::getRoomTopLeft()
{
	return m_roomTL;
}
	
QPointF Scene::getRoomBottomRight()
{
	return m_roomBR;
}
  • Add the call setSceneRoom() to the top of void MRMPDrawingBox::execute() function.
void MRMPDrawingBox::execute()
{
	setSceneRoom();
	m_planner = new Planner(m_mpScene);
	m_planner->run();
	update();
}
 
 

Document Actions