APMRover 2, a fun UGV project for full autonomous recon missions...

[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: http://diydrones.com/profile/JeanLouisNaudin

Have Fun and Enjoy with the APMrover...

Regards, Jean-Louis

Views: 79341

Comment by Daniel Chapelat on May 6, 2012 at 7:10am

Hello Jean Louis
I have wanted to use Xbee wireless modules withAPMrover2_firmware to the "Point-and-click waypoint", how can I do?
thank you
cordially
  Daniel

Comment by Petrus Botha on May 6, 2012 at 11:26am

Jean-Louis,

 

Please check my setup with me to ensure I have everything correct.

 

APM 1280 with oilpan and GPS. Loaded APMrover20b firmware via Arduino. Done radio setup

APM Output

1 = steering

2 = Not used

3 = ESC Throttle

4 = Not Used

 

APM Input

1 = RX Roll/Aileron

2 = RX Throttle

3 = RX Pitch/Elevator

4 = RX Yaw/Rudder

5 = Not Used

6 = Not Used

7 = Not Used (You have a mode switch for clearing memory, is this required or optional?)

8 = RX Gear ( 3 way Used as mode switch)

 

As mentioned above, can we have X bee telemetry installed and the compass enabled?

 

 


T3
Comment by healthyfatboy on May 6, 2012 at 4:56pm

Okay, I'm having some issues. I downloaded the relax patch version of Arduino to compile and load the code to my 1280 board. I'm getting compile issues right now and am not sure what the problem is. I'm pointing the Arduino environment to the ArduRover directories and using the libraries there as the main library. Is that my problem? Am I supposed to overwrite my other libraries or just use the ones in the ArduRover 10f?

Here are some of the errors I'm getting. I'm on a Mac if that helps.

APMrover10f:124: error: 'UBRR1H' was not declared in this scope
APMrover10f:124: error: 'UBRR1L' was not declared in this scope
APMrover10f:124: error: 'UCSR1A' was not declared in this scope
APMrover10f:124: error: 'UCSR1B' was not declared in this scope
APMrover10f:124: error: 'U2X1' was not declared in this scope
APMrover10f:124: error: 'RXEN1' was not declared in this scope
APMrover10f:124: error: 'TXEN1' was not declared in this scope
APMrover10f:124: error: 'RXCIE1' was not declared in this scope
APMrover10f:124: error: 'UDRIE1' was not declared in this scope
APMrover10f.cpp: In function 'void USART1_RX_vect()':
APMrover10f:124: error: 'UDR1' was not declared in this scope
APMrover10f.cpp: In function 'void USART1_UDRE_vect()':
APMrover10f:124: error: 'UDR1' was not declared in this scope
APMrover10f:124: error: 'UCSR1B' was not declared in this scope
APMrover10f:124: error: 'UDRIE1' was not declared in this scope
APMrover10f.cpp: At global scope:
APMrover10f:125: error: 'UBRR3H' was not declared in this scope
APMrover10f:125: error: 'UBRR3L' was not declared in this scope
APMrover10f:125: error: 'UCSR3A' was not declared in this scope
APMrover10f:125: error: 'UCSR3B' was not declared in this scope
APMrover10f:125: error: 'U2X3' was not declared in this scope
APMrover10f:125: error: 'RXEN3' was not declared in this scope
APMrover10f:125: error: 'TXEN3' was not declared in this scope
APMrover10f:125: error: 'RXCIE3' was not declared in this scope
APMrover10f:125: error: 'UDRIE3' was not declared in this scope
APMrover10f.cpp: In function 'void USART3_RX_vect()':
APMrover10f:125: error: 'UDR3' was not declared in this scope
APMrover10f.cpp: In function 'void USART3_UDRE_vect()':

Comment by Rob_Lefebvre on May 6, 2012 at 5:12pm

If I had to guess, you have not set your board type in the Arduino IDE.  At the top menu, go to Tools then Board, and set your board type I think to the 1280.


T3
Comment by healthyfatboy on May 6, 2012 at 5:39pm

So, I'm not sure what it was but I think you're right. I was able to get it loaded on my 1280 for the basic and my 2560 for the full setup. I'll give it a try over the next couple of days, assuming the weather holds out for me, which I'm not all that hopeful for looking at the forecast...

Thanks for the help!


Developer
Comment by Jean-Louis Naudin on May 6, 2012 at 10:15pm

@Daniel: The point and click (GUIDED mode) works well with the APMrover v2, if you want to use Xbee wireless telemetry, I recommend you to visit the dedicated page about this at:

http://code.google.com/p/ardupilot-mega/wiki/Wireless

Regards, Jean-Louis


Developer
Comment by Jean-Louis Naudin on May 6, 2012 at 10:22pm

@Petrus: Your setup seems OK for the APMrover v2. I recommend you to link a switch to the Ch7 of your transmitter. This will enable the CLEAR Wapypoint List, SAVE a new Waypoint (in live), RTL (if you are in AUTO mode). To use the SW7 you need to push it to ON then OFF.

Yes, of course, you may use the magnetometer (connected to I2C port) and also the Xbee wireless to the GCS port 3.

You will find some infos about the magnetometer in the wiki page at:

http://code.google.com/p/ardupilot-mega/wiki/Magnetometer

Regards, Jean-Louis


Developer
Comment by Jean-Louis Naudin on May 6, 2012 at 10:29pm

@heathlyfatboy: I agree with Robert, you compilation problem is due to the fact that you haven't selected the good CPU in the menu "Tools/Board" (i.e. Arduino Mega (ATmega 1280)). You need also to put the library folder (that you will find in the APMrover2_firmware.zip in your working sketchbook folder that you have set in the Preferences:

Regards, Jean-Louis


T3
Comment by healthyfatboy on May 7, 2012 at 7:53am

Quick question. The Traxxas ESC's usually put out 6V with their BEC's. Is that a problem for the APM or do I need to use a 5V UBEC instead and disable the ESC BEC?


Developer
Comment by Jean-Louis Naudin on May 7, 2012 at 8:45am

@heathlyfatboy: Yes of course, the BEC of Traxxas ESC is a 6 V output, so DON'T CONNECT the ESC to the APM without disconnecting the 6V from the XL5 ESC. This why I have used a 5V UBEC or a 4.8V NiMh battery (the green battery in my rover photo below). You MUST cut the red wire (+6V bec output) from the XL5 ESC before connecting it to the APM output, so as there are only the ground (black wire) and the ppm (white wire).

Regards, Jean-Louis

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2017   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service