I suppose who know ROS and how it works (at least most of you) I have some question regarding the implementation of a quadrotor in that framework.
3D movements: A quadrotor has 6DOF and moves in a 3D environment. Looking at the various ROS packages I could not find any package that allows to drive a "robot" in the 3D space. The package /move_base for instance allows only 2D. Make sense to use this package for such a project? I thought to use 2D navigation projecting the "shadow" of a quadrotor on the ground...
MoveIt: it seems a real interesting and promising package, but I read that it is for robotic arms and not expressly indicate for quadrotor. Maybe one can use the possibility to create a virtual floating joints in MoveIt to let the quadrotor any movement in a 3D environment...that's ok, but I cannot understand whether is "too much" and not useful for a flying robot.
Trajectories: The possibility to create a 3D trajectory in the space seems to be not a standard package of ROS. I found Octomap which allows the creation of 3D maps from sensor datas. Very interesting and for sure very useful. But...I don't think it could be useful for creating 3D trajectories. Should I in that case create an extra package to compute 3D trajectories to be feed into the quadrotor? Or there already something like that?
There is already an existing project hector_quadrotor which seems to acclaim a good success ans it is very considered in the field. Most people refer to that project when speaking or answering question regarding quadrotors in ROS. I saw many times that project...since weeks. And due to the total lack of documentation I didn't try anymore to understand how it works. Really too difficult. Another interesting project, ArDrone, has comments in the source code...in Russian!!! @_@
Could you me give any good suggestions? Or point me in the right direction please? It would help me to understand how to focus my searches and which package I can/cannot use.
UPDATE: my goal is to let the quadrotor flying and using gmapping to localize itself. I've heard and read al lot of stuff about that but I found all this tutorials very hard to understand. I cannot get a global vision of the software and sometime I run in problems like: "is there a package for this task, or should I invent it from scratch?"
Thanks!