[UPDATE: This project is now being ported to a proper Google Code repository and manual. For instructions, start there. You can also join the ArduRover User Group here.]

Hello to ALL, the new firmware for APMRover v2 has been tested successfully on my rover on may 1st, 2012 on full autonomous reco mission following a navigation plan. This new release of the APMRover v2 works on the APM v1.4 with the OilPan shield (magnetometer + MT3329 GPS) and also of course on the APM v2. The previous version of the APMRover v1.0 was a light size version specially designed for the APM1280 CPU (only) board and the MT3329 GPS.


For the frame, I have used a Traxxas Monster Jam Grinder with a brushed and high power motor Titan 12T and its XL-5 ESC.

The APMrover UGV is able to run itself following a list of recorded waypoints. The waypoints list (FPL) can be preloaded with the APM Mission Planner OR better in live, recorded by the pilot himself (with the SW7) during a manual run and then replayed in a full autonomous mission.





The firmware APMrover2 for APM v1 + OilPan or APM v2 successfully tested can be downloaded HERE

The APMrover v2 is also online on the official ArduPilot-Mega GIT repository HERE

Below the PID setup for the APMrover v1 and v2:


The light firmware APMrover1 for APM v1 (CPU 1280 or 2560) that I have tested can be downloaded HERE 

Here's how to connect your cables:


More infos at:

Have Fun and Enjoy with the APMrover...

Regards, Jean-Louis

E-mail me when people leave their comments –

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

Join diydrones


  • I take back my comment about having to stick with the PIC32 here.  I think the Arduino could handle the PID control for each wheel and handle the other tasks such as radio input and servo output.  May have to switch it to integer math, though.  Will have to maintain a second Arduino for the scrolling-text display, though.  My point is that the Arduino should handle the Rover Drone implementation just fine, albeit for me with significant code changes (RTOS versus not for example).

  • Okay, it looked like an R/C car type of chassis.  I will have to stick to the PIC32 instead of going with the Arduino (although the ATMega is used as the slave MCU for driving the scrolling-text display), as there are significant resources being used.  Will have to peek at how the MAVlink protocol was migrated to the GCS, though.  I'm just now exploring this option, although I have the DIYDrones MediaTek GPS installed with the v1.6 firmware (have to write/port the drivers to the PIC32 for the GPS).

    This boy has PID control on each wheel with quadrature encoders being the feedback measurement device.

    Very interested to read more.  Will research "Rustler" and see if that platform would be suitable for my 15# monster.  I have to also install the FPV camera and transmitter gear, which will get piped into RoboRealm or OpenCV which will then get piped through the GCS that I ultimately choose.  That way, the computer can utilize blob detection for obstacle avoidance (or for gunning down a stray squirrel :) but will also allow the computer to take over control with GPS waypoints, etc.).

    Good luck with the project!

  • T3

    His is just a basic r/c truck but converted to a UGV by adding the APM. It only has one motor and a gearbox as most r/c trucks do and doesn't have four separate motors.

    Once I get my APM1 in, I'll be sticking mine on an old Rustler and will have a chance to mess around with it as well. I'm really excited about it.

  • This is great; I've been working on rover code and implementing a version of MAVlink and qGroundControl but it looks like some of the work has been done already.  My code runs on a PIC32MX, though, and uses FreeRTOS to coordinate many of the tasks.

    Here's a little video that shows the features of the rover.  I'm looking forward to learning more about your base--especially the shocks.  Looks like you have a higher ground clearance.  Do you use four separate motors?

  • Developer

    Hello Michael and Robert,

    Implementing differential drives  (two motors with two ESC) with the APMrover is not a real problem here, this is equivalent to use an ailerons mixer in the arduplane... I need only to buy a tank for testing the feature ;-)

    May be, you may test it yourself if I add this new feature in a new release of the APMrover...

    Regards, Jean-Louis

  • I was wondering the same thing.  That will probably require more work.

  • hi. this is great! what about differential drive (two escs for left and right wheels)?

  • Developer

    Hello, for your informations, you may test yourself the APMrover v1.0e firmware with AeroSIM-RC v3.83 in HIL simulation by using the Cessna 182 model... The plane does'nt takeoff and it is only driven with its nose wheel as a rover... you need only to select good setup in the APMconfig.h config file:

    #include "APM_Config_HILmode.h" // for test in HIL mode with AeroSIM Rc 3.83
    //#include "APM_Config_Rover.h" // to be used with the real Traxxas model Monster Jam Grinder


    Regards, Jean-Louis

  • Developer

    Here, below the PID setup that I am using with the APMrover v1.0d:


    Regards, Jean-Louis

  • Developer

    Hello, I have just updated the APMrover now this is the v1.0d that you may download HERE

    some changes done in the 1.0d:

    - Only one PID to steer the wheels with nav_roll,

    - GPS can be used at 10 Hz,

    - fixed the correct use of the variables (ground_course and ground_speed) updated only in Update_GPS() at dTnav,

    - cosmetic update and lighter coder to save code memory for the APM1280,

    - you need only to tune the NAV lateral PID to drive the wheel and the Energy Alt PID for the throttle... Thats all...

    I have updated my GIT repo at : Revision:4126b302ae18

    Have fun with the APMrover...

    Regards, Jean-Louis

This reply was deleted.