UAV Sense and Avoid Techniques in Player/Stage
by Jamie McDonald
I’ve just handed in my final year project at university (a few days ago) and I thought I would share my project as an example of what can be done in Player/Stage, I don’t think it’s particularly complex work but it could be a starting point for some more interesting work in the future.
The project was to demonstrate UAV Sense and Avoid techniques in a simulation environment and I chose to use Player/Stage. The techniques I looked into weren’t fairly complex and they aren’t as robust as I would like, maybe I will work on improving them in future, however I implemented the Closest Point of Approach and Potential Fields methods.
There are two parts to the code I’m including below: the Player/Stage control code for the sense and avoid techniques and some code to generate the .world, .config and main.cc files depending on the scenario. The generator code just reads an XML file and then outputs several files.
The code was built on OS X using Player version 3.0.1 and Stage version 3.2.2, it also requires the Boost libraries. Here are someĀ running instructions in PDF format that I compiled for my tutor. Here are the actual files, the code should be fairly self explanatory however I can explain it more over an email if anyone wants to get in touch. Please bear in mind that I wrote this code whilst learning C++ so I expect there are many things that could be improved and possibly quite a few beginner’s mistakes.
If anyone does use this code for anything (a mention would be cool if it’s used in a significant way) or can suggest any improvements to it, email me because I’d appreciate it!