rokers-reply / rokers-hunting-razerblade

We only code in Python
BSD 3-Clause "New" or "Revised" License
1 stars 2 forks source link

Get ready with a training problem on the sandbox area #4

Open gmacario opened 6 years ago

gmacario commented 6 years ago

From https://challenges.reply.com/tamtamy/challenge/5/detail

On 15th March, you will have 4 hours to figure out a typical Reply engineering problem. Would you like to help us? Team up to solve the problem that will be released on 15th March, at 4.30pm CET using your favourite programming language and win a Razer Blade Gaming Laptop. Your team can have two, three or four people.

Get ready with a training problem on the sandbox area.

ludusrusso commented 6 years ago

The training problem is a simple path planning algorithm to be developed. It can be easily solved with a well known class of algorithms called RRT*, see below:

gmacario commented 6 years ago

It can be easily solved with a well known class of algorithms called RRT*

@ludusrusso I beg your pardon but as far as I understand your answer does not qualify as a complete fulfillment of what detailed in https://challenges.reply.com/tamtamy/challenge/3/detail

How about issuing a new https://github.com/ludusrusso/rokers-hunting-razerblade/pulls with the proper files in attachment?

xrmx commented 6 years ago

@gmacario I trust @ludusrusso as the algorithm guy :)

gmacario commented 6 years ago

@ludusrusso @xrmx and I am eager to extend my Jenkins pipeline to run the .py against the provided inputs in order to create the output files - See https://github.com/ludusrusso/rokers-hunting-razerblade/issues/11

ludusrusso commented 6 years ago

@gmacario It can be easily solved with RRT* algorithm. There is some boring stuff to do to:

  1. Generate a proper input file for RRT* from the input file of the challenge
  2. Pass those file to the RRT* or one of the derivated algorithms.
  3. Generare an output file from the output of RRT*

@FiorellaSibona can write the real code! She's studying this stuff 🥇

FiorellaSibona commented 6 years ago

@ludusrusso @gmacario @xrmx I am actually still not aware of how RRT* algorithm works but I can try to take a look and also try to understand that library!

FiorellaSibona commented 6 years ago

@ludusrusso @gmacario @xrmx If I well understood, the tricky part lies in the definition of triangular obstacles. I mean, given the code Ludo linked, the only part which must be modified is the obstacles definition (triangles are not defined in the pygame library as far as I understood) and relative methods to check collision. Here a good alternative to proper triangle objects is provided, but there should be a way to identify all needed rectangles approximating the desired triangle obstacle. Any ideas? For what concerns the input and output "conversions" it should be a matter of reading a .txt file and extrapolate related info and once RRT is performed, the travelled nodes should be gathered and saved in a new output .txt* file. Do you agree?

xrmx commented 6 years ago

@FiorellaSibona Maybe something like this https://stackoverflow.com/questions/2049582/how-to-determine-if-a-point-is-in-a-2d-triangle ?

FiorellaSibona commented 6 years ago

@gmacario @ludusrusso @xrmx I finally identified a polygon definition library called pylygon and I succesfully modified the code to perform RRT* with triangular obstacles. Meanwhile I am trying to gather values from input file and save output and then we're done

gmacario commented 6 years ago

@FiorellaSibona

Meanwhile I am trying to gather values from input file and save output and then we're done

How about starting a PR "(WIP) Implement code to perform RRT with triangular obstacles" so @ludusrusso and @xrmx may help you - and I will learn Python while enjoying the conversation?

gmacario commented 6 years ago

@FiorellaSibona Any updates about the Pull Request?

FiorellaSibona commented 6 years ago

@gmacario Sorry I have just read your comment. I have created a training branch and pushed my code. Not able yet to solve some issues since it is not trivial as it seemed. Sorry but I am also a sort of newbie in Git so still learning. If I have done something not correctly, please feel free to clean it up and explain. Thank you

gmacario commented 6 years ago

Deferring resolution to a later milestone, now focusing on the real challenge