ArduPilot (in particular Copter) supports ROS via mavros but very few developers realise this. The best documentation we have is somewhere on the Erle Robotics site (http://erlerobotics.com/blog/).
To improve ArduPilot’s adoption amongst robotics developers familiar with ROS we should create:
a Ready-to-use image for an RPI3 which runs ROS and connects to a Pixhawk. When the RPI3 and Pixhawk are started up, ROS should start and connect to the pixhawk without any need for input from the user.
Scripts and/or detailed description on how the image was created (i.e. what packages installed, all changes made)
Create single ROS setup page on the wiki (or word document that can be added to the wiki) describing
hardware connection diagram RPi3 <-> Pixhawk (or other common flight controller)
short video showing it in operation
Links to image, setup scripts, relevant ROS tutorials
any other advice to help developers get started with ROS
Estimated time for completion: a few days perhaps
Details / Plan for implementation:
This project should be posted as an issue in the issues list, with a new category “Bounty” with clear indication of $500 bounty. Randy will decide whether it fulfills the requirements. This will be paid upon delivery by paypal.
I can do this.
But, the linux distribution an ROS version should be fixed !
Ideally, ubuntu 16.04 and ROS-kinetic as kinetic is ROS LTS for ubuntu 16.04 which is also LTS.
I also believe that have an auto start directly is bad. The solution should provide a simple solution to make it auto start but not directely , otherwise, the rpi will be slow, and use will not understand why they got error when trying ROS stuff (because one instance is already launch)
I just check and it is even simpler… ROS install is just apt-get both in debian and ubuntu . That why I said on gitter that it was like stealing money for doing this bounty.
The main difficulty is the wiring , but it is not complicated at all !
@LuisVale have you actually tried those links? Neither of them have ready to go images that you can download, flash and get ROSing.
It’s not that easy for raspberry, there are no binary packages for raspbian which is by far the best supported OS. Compiling ROS from source on a raspberry takes forever and is reasonably complex, not for the faint hearted. It might be possible to use ubuntu mate for raspberry but that’s a large desktop image which you can’t even run headless to start with unlike raspbian.
This is a good bounty proposal.
I’m a little confused. You can already use the RPI3 to interface with the pixhawk very well I thought?
E.g. for me I have it connected to the pixhawk 1 so that when it all starts up the raspbian OS loads, boots the scripts to interface with the pix, gets the data off the pix, and have it connected to also the rpi csi camera and a wireless card so that it can send the HD video feed and rpi data down to a ground control station. From the GCS you can send commands up to the rpi which will instruct the pix what to do.
This is in relation to a drone. So e.g. you can use qgroundcontrol to get an interface looking very much like what DJI has i.e. a real time HD video feed with all the data you could ever want.
Jade only supported ubuntu, kinetic only supports debian intel and arm64 - raspberry is arm7 (32bit). Building it from source is extremely painful on a raspberry, it’s certainly not a viable or sensible answer to this proposal nor are third party or commercial offerings. The ubuntu-pi-flavour offers a stripped down headless ubuntu 16.04 which is an excellent start, although it’s torrent only and still needs quite a bit of installing and setting up.
I’m really surprised at the response to this proposal. It’s a really great idea - the new ardupilot organisation has some money from donations/memberships etc and wants to push things forward with bounties. $500 is not a lot of money - 1/2-1 days work for a consultant and there’s a fair bit to do. This isn’t just typing a few commands and uploading a dd somewhere for the lulz, it’s producing a reliable, tested, reproducible solution, documentation and videos - a solution that could introduce countless thousands of potential developers to the power of ardupilot and an onboard/companion computer. At the moment there is pretty much zero collaborative work around onboard/companion computers with this project and it really needs a kickstart. The easiest way to do this is to provide an image that people can download, flash and immediately get going with no further knowledge needed. Nothing I’ve heard here so far comes remotely close to that. But I bet if this bounty went live, there would be several solutions presented within days. Documented solutions that would move this area of use/research/work forward that will otherwise take months or years. My 2c, anyway.
Perhaps the developers could create a ‘wishlist’ of projects like this that the community could tackle, and if they want to prioritise them they could attach a bounty to speed things along.
Getting ROS and MavROS running on a companion computer is perhaps less than 1% of the work required to have ROS and ArduPilot working together.
ROS is not easy, and developing for ROS is something that has seen some advances, specially on the University/Research side, which is where you find most of the resources that have “touched” ROS.
I work with a team of extremely bright guys that work all day long on ROS and do lots of integration of ROS and flight stacks (unfortunately ArduPilot is not included).
Also, RPI don’t have “enough” muscle/computing power to do any “serious” work on ROS, and the absolute minimum are the Odroid’s (XU-4)
I think this depends on how you define ‘easy to use’ ROS image for Pi 3.
I have a good, working image for Pi 3 using Raspbian that includes ROS and MAVROS, and was built to support the Seek Thermal Camera as a ROS topic. I compiled ROS Indigo from source to build the image on the Pi (it does take forever). I’ll submit it when I get a chance.
As someone else pointed out, ROS can’t do a whole lot on a Pi 3. The Odroid XU4 and NVidia TK1 (aka DJI Manifold) are much better suited for running ROS.