For those wanting a cheap, simple indoor rover for running APM, here’s a quick guide for building one with the Polulu Romi.
- 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
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(4). Put the
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.