Companion Computer Trends 2020

Q1
I recently ran a survey to determine how and where companion computers were being used by the ArduPilot community.

This was done as part of research into a successor to my Pi-Connect board, but the results are also of interest to the community. The results are presented below.

I would caution that I did not get as many responses as I had anticipated (53 respondents). So the results presented below should not be taken as precise numbers. Instead, they should be interpreted as general trends.

For each question, I have generated a graph and given a few observations.

The Results

Q1
Most ArduPilot users do use (or plan to) companion computers. I would point out that this being a “companion computer survey”, many people who do not use them may have elected not to complete the survey.

----------------------------

Q2
There is a generally equal split between hobbyist, commercial and R&D work; but with a slight bias towards hobbyists. Respondents could select multiple answers here if they wanted.

----------------------------


No clear winner here. This shows how varied and flexible companion computer usage is. Respondents could select multiple answers here if they wanted.

----------------------------

Q4
It is very clear here that the Raspberry Pi and Nvidia Jetson are by far the popular companion computers. Respondents could select multiple answers here if they wanted.

----------------------------

Q5
Over a third of users are creating their own software using libraries such as pymavlink, dronekit or MAVSDK.

There’s a lot of development going in here, with 73% of respondents doing some level of bespoke development.

----------------------------


Python and C/C++ are by far the most used programming languages for software development. Javascript wasn’t as popular as I expected, possibly indicating that web-based GUI’s (Javascript’s typical use case) are not a commonly developed tool. I would be interested to see what proportion of the Python and C/C++ users are using ROS though, as it’s not clear if the ROS users answered as ROS or using Python/C++.

Respondents could select multiple answers here if they wanted.

----------------------------


Looking at the top desired features here, it links back to why the Raspberry Pi and Nvidia Jetson are so popular. Respondents typically want something small with a powerful CPU, plenty of existing software libraries and good community support - which the Pi and Jetson excel at.

Summary

For ArduPilot users, most companion computer usage is centred on the Raspberry Pi and Nvidia Jetson. C/C++ and Python development of bespoke applications is typical on the software side, creating a wide variety of applications.

Thanks for reading!

19 Likes

Nice survey and thanks for sharing the results.

1 Like

What javascript API can you use with companion computers? I am a cloud developer that uses JavaScript a lot. I appreciate the work you have done in this area.

1 Like

There’s a MAVLink API for Javascript:

  1. Get the MAVLink repository: GitHub - ArduPilot/mavlink: MAVLink micro air vehicle marshalling / communication library
  2. Run mavgenerate.py to generate the Javascript files
  3. Include the generated files in your project and use the MAVProcessor object to take in bytes and emit mavlink messages.

I’ve used this with NodeJS on a Raspberry Pi to make a companion computer management web interface: GitHub - stephendade/Rpanion-server: Web-based configurator for companion computers of MAVLink vehicles

1 Like

Oh thanks for that. I will give it a whirl.

1 Like

Great work with all of this data! One of the other reasons not mentioned above as to why the Pi is so popular (at least to me, that is), is that they have a really long support life. I think they’ve only ever discontinued the very first (non +) Model B, and you can go right to their website and order a 6 year old brand new Model B+. I think Nvidia is right behind them (TX1 is EOL in 2021).

1 Like

Great to have this info. By the way, I moved a picture to the top just to make the post a little prettier when displayed on ardupilot.org

1 Like