ArduRover with the Pololu Romi

For those wanting a cheap, simple indoor rover for running APM, here’s a quick guide for building one with the Polulu Romi.

IMG_20190505_124803

Parts:

For manual control, you also want an RC transmitter/reciever.

Connect up the power and signal lines as per the below diagram. A soldering iron, headers and some jumper cables will be needed to make the connections:
Romi%20Layout

For the motor signal lines from the Kakute -> Motor Controller, the connections are:
M1 -> BENBL
M2 -> AENBL
M3 -> BPHASE
M4 -> APHASE

After putting on the ArduRover firmware and going through the various calibrations, the motor configuration needs to be set up.

Set the following variables to configure the board for 2x brushless motors with skid steering:

    RELAY_PIN	        52
    RELAY_PIN2	        53
    BRD_PWM_COUNT	2
    SERVO1_FUNCTION	73
    SERVO2_FUNCTION	74
    MOT_PWM_TYPE	3

Note that RELAY_PIN and RELAY_PIN2 may vary depending on which flight controller you use (in the above case it’s for a Kakute F4 V2). Go to the flight controller’s “hwdef.dat” in https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_HAL_ChibiOS/hwdef and check the GPIO numbers for PWM(3) and PWM(4). Put the n in GPIO(n) into RELAY_PIN and RELAY_PIN2 parameters respectively.

This can be extended into a computer vision platform with the addition of a Raspberry Pi (I used my KakutePi board for easy integration) and camera.

Pololu also have wheel encoders for the Romi. If the flight controller has 4 spare AUX ports, the wheel encoder data can be fed into ArdrRover for better indoor navigation.

5 Likes

Awesome ! Very nice to see that I am not the only one doing cheap rover

This is really great, I think I might add this to the wiki’s Reference Frames section if that’s OK.

Sounds like a great idea!

First of all, I’m a total newbee with flight controllers, but have flown RC planes from many years. I’ve purchased a Pixhawk PX4 and the Pololu hardware that’s listed above. However, so far I haven’t been able to get a motor to run, although it ran using an Arduino. Servo 1 is set to throttleleft and mot_pwm_type is set to brushedwithrelay. AENBL is plugged into main1 and MODE is plugged into AUX5. APHASE isn’t plugged into anything. One weird thing happens, when just the battery positive terminal is touched, the motor will run, but once the negative is also touched, the motor stops. Before attempting to get the brushed motor working, I was able to make a RC servo work properly before making the parameter changes. Any help would be greatly appreciate.

Chuck

That’s not the configuration I described in my post.

For a Pixhawk, you’ll need:
M1 → BENBL
M2 → AENBL
AUX5 → BPHASE
AUX6 → APHASE
MODE → +5V

Thanks for the reply. I don’t know what is going on. I corrected the wiring to match your input, but nothing happens. I tried hooking up a RC servo and it won’t function. I hooked up the power pins on the servo to a 6.5v battery and the signal pin to the signal pin on Main3 and the servo does nothing. This is using the ArduRover firmware. It seems like the PX4 isn’t putting out a PWM signal. Any suggestions?

Chuck

You’ll need to arm the vehicle first, if you’ve not done so. Your GCS software should be able to show the servo output values - so you can confirm if there’s values being sent to M1 and M2

Stephen,

Thanks for all the help. I finally got both a RC servo and the Pololu motors running.

Chuck