ROS, rgbdslam and APM

Hi all, not really a question, just wanted to fill you in a little.  After some work using Yogesh's original roscopter code and modifying it heavily (here's a link) I am working on my next project, using a SBC along with an APM to perform indoor navigation on a quadrotor.  Here is the wiki page on what I have so far:

If anyone else is doing anything related and you'd like to collaborate that would be cool.  If you just want to use the code for your own that's fine too.  I'll report back here as the work progresses.

EDIT:  Here is the git clone address:

git clone

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Here's a video of my progress so far.  Still a long way to an indoor flight but I'm making progress at least.

    From the video's description:

    This is a intermediate testing video of the ICARUS SLAM Project. This project uses a Kinect, the rgbdslam ROS package and an APM to do indoor gps-like navigation of a quadrotor.

    The Kinect provides the top laptop (simulating the UAV primary controller) with visual and depth data. The top laptop, using the rgbdslam ROS package turns this data to positional and then GPS coordinates. The top laptop sends these GPS coordinates in the NMEA format to the APM, and waypoint commands using MAVLINK. The top laptop also communicates over a serial radio link to the bottom laptop running QGroundControl its position, attitude and other data.

    In the future, the top laptop will be a SBC, and the Kinect, APM and the SBC will be onboard a quadrotor. Using QGroundControl the user can give the UAV waypoints to follow indoors and the UAV will navigate these waypoints.

    I apologize for the poor video quality.

    Here's the project link:

    And source code:

    • Hi there,

      I'm also doing the same using a Xtion Pro Live+Pixhawk+Odroid. Can't exactly reach your source code that will be of great help. Can you please point out some help on this?

      Thank you! Best regards

    • hi,

      i'm working on a similar project using pandaboard + hokuyo urg + pixhawk. i also want to do the same as you (spoofing GPS). I'm trying to reach your source code but it seems they are not exist. can you help me on that please?

  • Hi David,

    We have an autonomous aerial robotics team at Oregon State University trying to achieve basically the same setup you speak of. We've written our own flight control software for our own controller board that takes commands from an onboard mini-PC (Odroid-X2) that runs Arch Linux and ROS, using RGBDSLAM to generate the 3D map. We've begun developing our own navigation software using scipy and scikit that will take a 2D extraction of the 3D map and generate navigational commands to send to the flight controller.

    We compete in the annual International Aerial Robotics Competition, for which we've written a quick paper you can read here:

    We still have a lot of integration work to do in order to make the system work. Our team currently only has two programmers including myself, so it's slow progress.. but we hope to have something that flies down a hallway by the end of this calendar year.

    Dropbox - Error
    Dropbox is a free service that lets you bring your photos, docs, and videos anywhere and share them easily. Never email yourself a file again!
  • Hey David

    It's good to know that my implementation for the set_roll_pitch_yaw_thrust() command is very similar to yours. However, instead of spoofing GPS addresses, I'm using an onboard controller on my Pandaboard to send commands to the Ardupilot.

This reply was deleted.