For those wanting a cheap, simple indoor rover for running APM, here’s a quick guide for building one with the Polulu Romi.
Parts:
- Pololu Romi $30
- Pololu DRV8835 motor controller $4.50
- Kakute F4 (or any other cheap flight controller) $36
- 6x high capacity NiMH batteries $14.40
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:
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.