Swarm simulation software using C++, OpenGL, Qt and Qwt

In Progress Posted Mar 19, 2014 Paid on delivery
In Progress Paid on delivery

Please find on [url removed, login to view] the C++ code using OpenGL that display a 3D simulation of a swarm of robots ( Demo video available on [url removed, login to view] )

This program currently compile perfectly on Windows, Linux and Mac (and must stay compatible for all OS). The IDE used is Qt Creator and you also have to use it.

I would like the following modifications to be applied to the program :

- Change background color to white.

- Change the color of the mesh cube to black. (The mesh cube represents where the robots must stay.)

- As you can see on the video it is possible by pressing "b" to display cubes around each robot that inflates over time. The problem is that the cubes start inflating only when we display them. I want these cubes to start inflating when the simulation starts and only display/hide them when pressing "b". The current inflation rate is the same for all robot. Change this to give random rate of inflation to each robot between two limits defined in the program. The cubes are supposed to represent the localization error of the robots. We consider that the robots are underwater so they cannot use the GPS to localize themselves, so the position of the robot has more and more uncertainty over time, thus the inflating cubes. Each robot should have different rates of inflation to show that some robot have better localization than others.

- Pressing "n", you can see each robots emit "sonar waves". They are currently displayed as circles but this is false, they should be displayed as semi-transparent spheres as sonar waves propagate in all directions. Please change this.

- The goal here is for a robot that has a large position box to "contract" it to a smaller box when it receive a sonar wave from another robot that has a smaller position box. This principle is illustrated in this video [url removed, login to view] I want the same principle applied to this program. The range of the sonar wave should be a parameter we can set.

- Obviously the localization box off all robots can only be contracted to the box of the robot that has the smallest box, which still inflates, meaning that the whole swam will still loose itself over time. For this we consider that robots that go up to the surface during the simulation can use the GPS and contract their localisation box to zero width. In the video above, the robots on the left circle can use the GPS when they are completely to the left of the circle. The sonar waves between robot of the right circle and robot on the left circle allow the robot on the right circle to have limited size for their localization box over time.

- The goal is for all robot to stay localized, meaning that the localisation boxes should never get very big.

Please send me the program when you reach this point

- Next we want to display the position of each robot on a graph using the Qwt library which extends the Qt library ( [url removed, login to view] ). Integrate this library to the program.

- Currently, when pressing "c", the camera starts following a specific robot. We want this to also open a Qt window that will use Qwt to display 2 graphs of the position x and y of the followed robot . The width of the localization box should be displayed as a "tube" around the position of the robot, just like on [url removed, login to view] You can see in 1(a) the position x of a robot, and in 2(a) the contraction that happens when the robot receive the sonar wave from another robot that had a smaller box.

-The graphs should evolve in realtime as the robot move.

C++ Programming OpenGL Software Architecture

Project ID: #5692120

About the project

3 proposals Remote project Active Mar 21, 2014

Awarded to:

dobreiiita

Hi, I am C++ expert and interested in this project. Please communicate so we can discuss further and get started. Thank you

$631 USD in 15 days
(154 Reviews)
6.4

3 freelancers are bidding on average $560 for this job

szymszteinsl

Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Ready!Ready! Rea More

$750 USD in 7 days
(19 Reviews)
5.9
tulebaev

A proposal has not yet been provided

$300 USD in 5 days
(13 Reviews)
4.1