ROS-ArduPilotMega Integration

3689408423?profile=originalPer a suggestion from Chris, I'm working on integrating APM with ROS so that APM looks like an ROS node. I'm a newbie with APM and Arduino, but experienced with robotics in general.

I've done the basics, getting the various IDE's running and proving the concept of outputting APM sensor readings as ROS topics.

What I'm seeking now is input from the community as to what we want this integration to provide. Any suggestions and/or requests would be most welcome!
E-mail me when people leave their comments –

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

Join diydrones

Comments

  • Well, I've hit a snag - maybe one of you folks can help with a suggestion. I have my Mega 2560 board, and just received my "ArduPilotMega IMU Shield/OilPan Rev-H" - and the pins don't come close to matching. Board sizes are different as well, so I don't see how these two can mate, even though the DIY store links them.

     

    Any suggestions? Is the store simply linking together the wrong two things?

     

  • Ralph: I can't speak to the ubuntu board - sounds like Garry is familiar with options.

     

    I'm still puzzled why there isn't a uSD card socket on the system. A Class 10, 8GByte card would resolve most size issues and consume very little power. It's simple to write a driver that would allow people to "swap" functions into the main cache for speed. Is there some reason this isn't available - or did I miss the option somewhere?

  • I Heart Robotics: I've wandered thru those links before, plus some others that are relevant. I agree that ROS isn't really setup for UAVs, but the interface might provide access to some useful plug-ins.

    My only real concern has been to find the right integration point. Putting ROS interface code at the individual sensor level seemed icky. I'm not familiar enough with AMP to know, but I gather people generally agree that this MAVLink interface is the best place. I can certainly look at it to assess any issues.

    Or I can turn this topic over to you, if you want to do it. No issues with me...I'm still digging thru code to learn what's where.
  • 3D Robotics
    I Heart Robotics: Many thanks for an awesome comment--that's super helpful. Would you be interested in working with Ralph on this implementation? We can give you devteam maillist access SVN access when you've got working code.
  • Ralph, you might want to take a look at the Beagleboard for a way to fly Ubuntu on a UAV. As I remember, the regular Beagleboards are about 2 grams heavier than a regular Arduino Mega. If you need more performance, sometimes you can find the Beagleboard-xM or the Pandaboard in stock. People run ROS on Beagleboards, so there are tutorials and files available on different web sites that can get you started.

    Chris Anderson posted about ROS-MAVLink-ArduPilot Mega integration and linked to the ROS package back in March, so people might want to take a look at that:

    http://diydrones.com/profiles/blogs/willow-garage-announces-ros

    Ralph Castain, I am also interested in publishing new waypoints to an APM using ROS. I guess my full wish list for ROS integration would be a) read/write APM waypoints using ROS b) have APM publish current state, including next waypoint c) send data from another GPS to the APM through ROS and d) send heading+alt+airspeed from another source into the APM through ROS. I'm guessing (a) and (b) can already be handled through ROS<->MAVLink package?
  • @HappyKillmore
    Sorry for lowering the awesomeness of the joke, I got it too...
    One of the coolest things about ROS is the Microsoft kinect support so it can be used for SLAM (Simultaneous localization and mapping) for indoor use. Does anybody know what UC Berkley uses for there quads to interface with there motion capture system? I think it may be ROS as I'm pretty sure the use pelican quads.
  • Well what I thought was with the heading, speed and location collision avoidance could be done for a swarm. Intelligent mapping and stuff like that would only be a few steps away.
  • This is indeed the WillowGarage ROS. I'll take a look at these use-cases and get back to you on degree of difficulty. Sending heading, speed, and other sensor-related data from APM to ROS is pretty easy. I haven't studied going the reverse direction yet.

     

    I'll also take a look at Player and Pelican - those terms are new to me :-)

     

  • You may want to look at Player (which integrates nicely into ROS). once you establish a node interface with the ROS server, then it's just another data stream.

    One thing everyone is using ROS is for hooking in collision avoidance routines... and computer vision stuff (hmmm, there's got to be something to do with FPV and ROS)...
  • I was thinking of doing this but never got around to it...It would be neat to replicate AscTec Pelican drone node so you could use it as a drop in replacement for the quad. It then would be compatible with the code that MIT & Stanford use for there aerial quad kinect SLAM. It would also be much cheaper than a <$10,000 AscTec system

This reply was deleted.