I'm delighted to announce the release of the first public beta of ArduPilot Mega 2.0. This is a significant upgrade to APM 1.02, and now delivers on full 2-way in-air communications, including real-time mission planning and autopilot control.
[UPDATE:Arduino-free code uploading added to features]
New features/changes include:
- --Full support for the MAVlink protocol, which is now APM's default communications method.
- --Auto-detection of GPS modules. No more requirement to tell APM what GPS module you're using--it will figure it out and configure the module appropriately!
- --2-way telemetry. Dozens of commands can now be sent from the Ground Station to the UAV while it's in the air. (see example from HK GCS at right)
- --2-way Mission Planning. You can script and change missions in real time while the UAV is flying!
- --Supports APM boards with the ATMega2560 chip, which has twice as much memory as the current board. The DIY Drones store will begin selling these new boards when the final version of APM 2.0 is released.
- --Mission Planner now uploads firmware and checks for new versions online. No need for Arduino (unless you want it)!
- --Magnetometer fully supported.
- --Current sensor fully supported
- --Support for the latest HK Ground Control Station and QGroundControl ground stations.
- --Mission Planning and configuration can now be done wirelessly. No need to use USB if you don't want to.
- --No more fiddling with a configuration file in Arduino! The software comes ready to go, right out of the box
- --New command-line tests allow you to check failsafe operation, Xbees, radio inputs and more.
- --New versions of HK GCS and the Mission Planner operate in MAVLink mode, allowing for wireless operation and compatibility with other MAVLink devices, including those running the Robot Operating System (ROS)
---------------------------------------------------------------------------------------------
Huge props to the whole development team: Doug Weibel (project leader), Michael Smith, Jason Short, James Goppert, Michael Oborne (mission planner), Paul Mather (GCS), Lorenz Meier (MAVLink integration), Randy Mackay, Ryan Beall, Darren Corley, Joe Holdsworth, and countless others who have contributed with flight testing and bug catching!
Remember that this is an initial beta release, so there may be bugs and undocumented bits. After the beta-testing period (usually about six weeks) we'll release APM 2.0 final version, and retire APM 1.02.
Loading the code automatically:
Just download the Mission Planner and select "Upload Firmware" from the Tools section of the menu. Make sure APM is plugged into your USB port and you've selected the right port from the Mission Planner menu. Click on "Update Check" and the program will search online for the latest version of the code and load it to APM.
If you want to do a simulation with Xplane, follow the instructions below. That will soon be a firmware option with the Mission Planner, too.
Loading manually (Optional)
[UPDATE: Ignore this section if you don't want to fiddle with the code. Arduino is no longer required to load the code!]
Download the zip file, unzip it to your desktop. You will have two folders inside your APM 2.0 folder, as shown:
Make sure you're using the latest Arduino (0022). Set your Arduino Sketchbook location to the APM 2.0 folder, as shown below. You must exit Arduino and restart it for this to take effect. Within Arduino, open up the ArduPilotMega.pde file within the ArduPilotMega folder, and that will open all the other files. Before you compile, don't forget to select the right board (Arduino Mega 1280 or Arduino Mega 2560)
(Note: in the final version of APM 2.0, you will not have to use the Arduino IDE at all: the Mission Planner will load the firmware for you and check for more recent versions. The Arduino IDE will just be available in case you want to modify or inspect the code. UPDATE: this is now live)
--------------------------------------
Additional instructions:
--If you're doing flight simulation with Xplane, instructions for doing it with APM 2.0 are here.
--Make sure you're using the latest Mission Planner and HK GCS. In the Mission Planner, make sure you select APM 2.x modes (MAVLink), shown at right.
Known issues:
1) Mission Planner won't write waypoints on Port 0 in HIL mode. Instead, write the waypoints via your Xbee (port 3); remember to change the Mission Planner baud rate to 57k when using the Xbee port.
2) Uploading mission commands is still not fully documented. We'll get to that this week
3) There may be some issues with datalogs not recording. We're looking into it.
4) The manual still describes the 1.02 software. We'll change that to 2.0 during the beta test period, so by the time we release the final of 2.0 the manual is fully updated.
5) This has been mostly tested with 900 Mhz Xbee modules and the XstreamBee adapter, which work great. However, there is an issue with the 2.4 Ghz Xbee modules, which have a slightly different hardware configuration that conflicts with that adapter when sending data upstream. A short term workaround is to solder a jumper from the adapter's CTS to V+ pin. The next version of these adapter boards will include a more graceful fix.
If you find any bugs, please file a report in the Issue Tracker. The dev team will not be responding to bug reports filed in blog comments
Comments
HI Kirill
I also am experiencing the same problem. I am running Xbee 2.4Gs (I dont think they are the problem) If I run APM 1.02 or APM 1.0, Telemetry works very well. HK GCS works fine. As soon as I use APM 2.0 or APM 2.012, The Xbees dont seem to look as if the are communicating. I have had on two brief occasions working and HK locks in and google earth zooms in to my home location.
I have noticed that the Signal is there as the telemetry warning is not sounding and that mavlink data is coming through, but no data is being translated. It seems to work up to the point that the gps starts to find its lock. and the first heartbeat messages go through, and then the data stops being translated or stops coming through at all. I am going to try and figure this one out as well. Ill let you know what i can find out.
There are some IN/OUT values in Raw Data field in Serial Data Tab, Translated Data field is empty.
Yes, the same setup works perfect with Planner's GCS via either usb or xbee.
Could you see anything in the Serial Tab? This same setup works with the Planner's GCS using MAVlink 2.0?
That's good, thank you Chris!
Marlan, thanks for information. It was predictable and you proved it. Not only I have this problem. Thanks again.
Today I continued to test APM 2.012 and faced another problem. I wanted to simulate a flight as I did before but with addition of HK GCS via Xbee. I did everything by this video https://www.youtube.com/watch?v=BXbQgg2DGzA
Simulation of the flight worked good, but HK GCS didn't work at all. I connected to com port (in which Xbee was connected), baud rate was set as 57600. Status was "Connected", however is didn't show any information.
As I understood, I need to use Ardupilot Mega Planner via usb connected to the board and laptop to the one com port, and HK GCS via Xbee connected to pc to another com port. I set baud rate for APM as 115200, for Xbee 57600.
What I did wrong? And what could be the problem in?
Thanks.
I have had several successful flights with the autopilot today and noticed that the restart command doesn't work and does exactly as Kririll described ( I'm now aware that it's a known issue)
Also, I was wondering if there is a way to make it repeat (loop) trough the way points instead of having to reset it each time. I tried to change the code in the commands to , go to waypoint 1 instead of RTL when it reaches the last waypoint. I tried it but it didn't work, it flew to all the waypoints but when it got to the last it still went to RTL even though the GSC showed waypoint 1. I guess changing (g.waypoint_index) dosen't actually change the waypoint?
Thanks
1. Can the supported (AttoPilot) current sensor be used for brushless motor RPM sensing also with adding some code?
2. Can a "hall effect" current sensor also be used as a brushless motor RPM sensor by adding some code?
I assume that a hall effect current sensor be used in place of the AttoPilot current sensor with the existing APM code with some modifications.
http://code.google.com/p/ardupilot-mega/issues/detail?id=315
Thanks for your replies guys! So, I achieved some results, however there are still some issues.
Firstly, I tried to create a simple mission and simulate it. Everything was good, it went through all the waypoint and got back home loitering over the home position.
Then I restarted the apm and the board and simulated a flight again, but this time I changed the next waypoint during the flight and write the flight plan in the flight. Everything was perfect, the plane flied to the updated waypoint and continued corrected mission. Now I understood how it works and I am agree that it works right.
Then, I decided to restart mission via GCS. I pressed the button and plane went to the first waypoint and started to loiter there. That's all. As far as I understood, it must go over all the waypoints it has. I hope I described clearly the issue and it's possible to understand it.
Moreover sometimes when I write mission or read it I get errors such as "COM port is already used....". Then I click write or read again and it works. This message appears randomly, sometimes more frequently, sometimes less...
HK and Doug, I know I should be filing these in the issues list, but with all the existing items; I'm sure everyone has enough to handle. So I figured it would be best to just to mention them here as part of Krill any myself doing troubleshooting session earlier. As there are now too many to run through to see if its truly a new issue or one on backlog. But I hadnt dedicated much time to dynamic waypoints for the last few revs. So I'll have to redocument my old test plan, for future revs tests and start filing new issues again.
With new functionality comes new branches of tests needed. :)
I wasnt aware of the issue of too close of changes to current target, but understand them once we ran through a couple itterations. Its not a huge issue and just to be aware is good enough for now... no need for special efforts on it.