my lab is starting a project where we will build medium-sized (1 to 2m wingspan) fixed-wing aircraft for the purpose of mapping large forested areas, for conservation purposes.
We will be building the planes using Pixhawk autopilot. Up to now, my experience was limited to multicopters and I have used the PX4 software stack for research purposes (ROS control, etc). I am now wondering what would be the best software stack for this project, whether PX4 or ArduPilot would be the better choice.
In this project, the planes will be used as a mapping tool instead of as a research platform. Thus I would strive for a well-tested and feature-rich (i.e. user friendly) stack, instead of a research-oriented stack. On the other hand, later on in the project, we will want to use the smaller plane for research (vision-based control, etc), but not for a year at least.
So, my question is: for our current goals, is ardupilot the better choice? With PX4 stack is difficult to know exactly what is supported or well tested since documentation is not as complete as with ArduPilot project. Moreover, I feel Pixhawk moves quite faster in development so it is also difficult to track.
Sorry if the question seems offtopic for this forum, but maybe someone else tried PX4 stack for this purpose and has some feedback about this choice.
On the autopilot firmware side the only thing you really need is waypoint navigation and camera trigger support, which PX4 has. The actual planning, grid, and mission generation is done by the ground control software (QGroundControl). The stable version of QGC has early support for survey missions, but a lot more was done in the development version (next stable release). Mission Planner already has support for surveys with plenty of documentation online. The majority of the PX4 codebase is shared between fixedwing and multicopter, so prior experience with multicopter should be helpful.
Thanks for the response. I understand that these basic features are supported but I was wondering about other more specific aspects, such as auto-takeoff modes (catapult, hand-throw) for example. Are these supported by pixhawk?
Also, regarding stability of core components: I’m aware that for multicopter there is currently effort to migrate to newer EKF-based estimators and I know this implies these are still being polished and should not probably (yet) be used in production scenarios such as in my case. What is the status on the fixed-wing side?
I get the sense that ArduPilot has a more stabler set of core components and thus these are more tested, but I’m not sure how true is my impression.
PX4 has auto takeoff and land for fixed wing. The same estimators are available with EKF2 the default.
If you wanted to hand launch straight into a mission you can use launch detection to keep the throttle off until the throw is detected, or just arm and throw. https://pixhawk.org/firmware/parameters#launch_detection
I don’t know the state of this stuff on ArduPilot. Most people use one or the other and not both, so it’s hard to compare directly. The survey stuff is somewhat new to PX4/QGC, FW auto missions are definitely not.
Good to know this feature is present on PX4. I’m aware of the survey support not yet present on QGC. I’m hoping this will improve in next release.
How is camare trigger handled? Is there a special WP which triggers the camera? Or is up to the pilot to trigger based on distance or time?
Yes it’s the special waypoint (command) that either starts continuous shooting, or takes one shot per waypoint/command. The ground control software inserts these for you in survey planning, but there’s nothing stopping you from planning the same mission manually.
Perfect, thanks! It would seem that Pixhawk is still a good choice for this case then. I will try to evalute how it works using SITL/HITL.
Hi @v01d Ardupilot - Plane - has support for every takeoff I can think of: hand launch, bungee, runway, catapult, VTOL. It also has lots of landing options such as parachute, VTOL, standard glide-slope, reverse thrust precision landing, helical landing, net landings… It’s very flexible.
Here’s the wiki on how to set all that up so it’ll give you some insight about it:
Have you used pixhawk? How would you compare the two in this sense?
Have you used pixhawk?
Pixhawk is a piece of hardware. There are two main software flight controllers that can be ;loaded onto it PX4 and ArduPilot. Yes, I have used it.
I favor Ardupilot but I am bias. @dagar favors PX4 but he is bias too. You’re asking that question in a PX4 forum so most people here will be bias towards PX4. If you asked the same question about the same hardware in discuss.ardupilot.org then they would be bias towards ArduPilot.
@magicrub helical land is interesting. Is it MAV_CMD_NAV_LOITER_TO_ALT all the way down? For my missions with landing I’ve been using LOITER_TO_ALT right before NAV_LAND.
It’s loiter to alt with tangent exit and nav land ahead of it. Of note, that image was with a Skywalker X8 and those are not easy to land. Reverse thrust really helps to stabalize the landing airspeed with that landing type.
How has is project going? Did you settle on PX4?
I am looking at using a similar fixed wing setup to yours for photogrammetry, and I’m trying to figure out the best platform. I’d like the most spatially accurate data possible, with something like the Reach RTK and camera sync. I also plan on re-flying frequently, so simple and easy user experience is important.
Any advice or warnings you can give to someone following your path?
We actually decided to go wth APM (using Pixhawk autopilot) since we felt it was thoroughly documented and felt it advanced at a slower steady pase. We haven’t yet reached full autonomous operation, at the moment only flying in stabilize mode since our plane isn’t fully ready yet. However, we have a clear path defined which comes from the in depth documentation available.
On the other hand, what I don’t like is that it is really tied to Mission Planner (windows only program). While in theory qgroundcontrol and others are compatible (and they are to some extent) you usually get into cases where some features are particular to mission planner and the documentation mostly assumes this case.
For this reason we bought a small Windows 2-in-1 tablet to run Mission Planner on it and this has worked great so far.
Anyways, I haven’t tested PX4 on fixed wing so I have no real user experience on the platform. Our decision was mostly about the documentation and some of the nice features (such as auto tune) of APM.
Most of the support was missing on the ground control station side (QGroundControl), and has improved dramatically in the past year. It’s now even being used for commercial work by several companies which means it’s only going to get better. https://docs.qgroundcontrol.com/en/PlanView/Survey.html
It works well on a tablet (Android or iPad).
https://www.youtube.com/watch?v=rnryItBtVrw&t=33s here are our commercial Mapping UAV, maybe you will be interested in.