Overview
The AERPAW UGV (also referred as the AERPAW rover) is developed using the stock kit provided by SuperDroid Robots. A high level overview of the relations between the three main components of the UGV are illustrated below: Vehicle chasis, autopilot, and the portable node.
1) Vehicle Chasis
The rover’s chassis was built from a stock kit provided by SuperDroid Robots with heavy modifications made (in the options section). We chose:
13 inch Pneumatic Wheels
IG52-04 24VDC 136 RPM Gear Motor w/ Encoder
Sabertooth Dual 60A Motor Driver
ATR Upper Deck
ATR Rigid Bumper Assembly (both sides)
ATR Bottom Skid Guard/Cover Assembly
ATR Roll Cage
SuperDroid Robots does not provide CAD models, so we implemented our own. Aside from the customized chassis, a few modifications were made to allow for the mounting of electronics -- the most obvious of which is the folding antenna mast located at the back left corner of the rover. This mast is constructed using 0.6m of 40mm carbon fibre tube, with a cut 0.3m up and a joint installed to allow for it to fold. The mast is rotated around 20 degrees towards the center of the vehicle to allow for it to fold without having the antennas at the top go outside of the chassis’ profile/frame. The purpose of the folding mast is to make it easier to transport the rover (and specifically fit through doors).
The mast is rigidly attached to the chassis at two points, both of which are constructed by using a clamp connector and a machined plate that serves as an adapter between the plate and the mast. At the top of the mast is a carbon fiber plate and a carbon fiber tube that allows for mounting of the two Herelink antennas (via zip ties). The central plate has hole patterns cut out that allow for the Here3 GPS, Herelink brick, and RFD900 to be mounted. These antennas are elevated and shielded (thanks to the CF plate) from the portable node and any potential RF emissions that might be hazardous to the rover’s operation.
The antenna plate and the rod holding the Herelink antennas are connected to the main CF tube by a 3 piece 3d printed adapter. This adapter should have heat set inserts to allow for screws to hold it together. If it needs to be printed at all, verify that the hole tolerances are good enough to let it easily fit on the CF tubes. To support the portable node and the mast, a “gantry” was added to the top of the roll cage and built out of 1” t-slot. The gantry has two of the 3d printed + cut out CF plates that are used to connect to the PN attached by way of hammer nuts -- this allows for a greater tolerance when drilling holes. These may need to be regularly tightened with more frequent use of the rover.
The electronics and power supply are mounted to an acrylic sheet on the top shelf of the rover. This shelf is held in place by using standoffs, which allows for wires to be run under it for better wire management. The motor controller is screwed/glued in place on the bottom shelf of the chassis, with a hole drilled above it to allow for encoder, signal, and power wires to be passed through.
2) Autopilot and Vehicle Electronics
A high level illustration of the connections between different vehicle electronics is illustrated on the right.
The rover makes use of two batteries, which can be configured to be drained in parallel (with a slightly modified harness, as of May 2021 not built), or drained separately. The current setup has one battery being used to directly power the Mauch power supply and the BEC, both of which run to various ports on the Pixhawk carrier board, while the other battery is directly connected to the power supply on the portable node. One 6s 10Ah battery should be able to keep the rover and the PN running continuously for around an hour, so the described setup works for most potential missions. The carrier board’s power rail is exclusively used for the encoders and strobe, and is additionally not powered by the board itself, so it needs a BEC to regulate the voltage. The rover has a PN power supply attached that a battery directly connects to (via an XT90 to EC5 connector).
The components attached to the carrier board can be split into two categories: those connected to the DIO/AUX out IO rail, and those that have dedicated ports on the carrier board itself. The components attached to the IO rail are the Sabertooth motor controller, the encoders (aux out 2-6), and the strobe (which only pulls from a power and ground rail). The remaining components are the RFD900 (on telem 1), the Herelink (sbus, uart), and the Here3 GPS (on CAN).
The Sabertooth controller receives power directly from the battery, as well as signals from the Pixhawk. In the configuration that we use, each side of the chassis is driven separately (tank drive). This means that one signal wire controls the power going to one side, while the other controls the other side. The motor controller is configured through a set of dip switches.
The encoders are connected to the Pixhawk by way of 2 servo signal wires per encoder -- this is because we’re using quadrature encoders, which have 2 signal channels, power, and ground. The chassis came with encoders that already had a pinout/connector that we couldn’t directly use, so we had to create an adapter to bridge their connector to the standard used by the Pixhawk board.
The strobe light, while rated for 12v, is actually run off the 5v rail on the Pixhawk. After testing the performance with different voltages, we found that there wasn’t really much of an obviously perceivable difference between the 5 and 12 volt performances, and because there isn’t an easy to access 12v power rail or supply on the rover, we opted to use the existing 5v one. At one point, the strobe was spliced into the power running to the Herelink, however this caused some inconsistencies with the connection (likely associated with the periodic voltage drop from the load of the strobe).
Autopilot Settings: To set up the autopilot for the first time, we went through the basic tune-up routine after making a few parameter modifications to customize it for our vehicle specifically -- no extremely out of place tweaks were made. The parameter will be uploaded to the user manual in the future. The firmware version that this documentation is based around is v4.0.*.
For the transmitter, we use mode 1. This means that the rover’s driving behavior is entirely controlled using the right stick with “arcade drive” controls. Basic setup steps are as follows.
Accelerometer calibration: Done using a level surface and with the cube detached from the rover to keep us from having to put it in near-impossible positions.
Compass calibration: Similarly, we used the large vehicle calibration option, which lets us point it at 0deg north and let it automatically figure things out in place of rotating it around. Note that this is very finicky and will often just flat out not work, in which case you can (probably!) safely ignore any compass warnings/force arm the rover.
Motor and Servo configuration: The rover’s motor controller is generally set up to use skid steering, so SERVO1 and 3 should control the left and right throttles respectively (configured in Initial Setup/Servo Output). It’s reasonable to change this configuration to separate the steering and throttle, however it made more sense to give the autopilot more granular control over the sides’ velocities.
Motor Deadzone: The motors + motor controllers used by the rover have a deadzone, so to find it we propped the rover on blocks and used the motor test window to find the min throttle that made the wheels spin.
Failsafes: All failsafe related parameters were kept at their defaults unless noted below.
Arming checks: The only somewhat “normal” failed arming check is the compass calibration (see above). This can be ignored, and the rover can be force armed. If desired, the compass calibration check can be skipped under Config/Standard Params.
Speed controller: Tuned by using exact instructions from this page. The high level overview is that the rover’s cruise speed (~75% power) is captured, and then the rover can be driven in acro while watching the PID expected/achieved values and making modifications as needed. For both the cruise and speed-to-throttle controllers, the P and I values should be changed. ATC_ACCEL_MAX and ATC_DECEL_MAX should also be changed to a point where the rover feels snappy but controllable when driving.
3) Portable Node
The details of the portable node are documented under the Overall Platform Architecture section of this user manual. Here in this page, there are a few rover specific points to bring up.
The PN’s power supply is not self-contained within the PN itself, so it has to be mounted on the vehicle. For the rover, this meant mounting it to the upper place in a convenient location. It’s currently on the back edge, mounted with standoffs, and directly wired into its own battery.
If we want to run a LattePanda on the rover in place of the PN, you can install plastic standoffs into the upper plate in the same location as the PN power supply standoffs. The original rover has two of these standoffs (plastic) at opposite corners of the LP in a fairly arbitrary position.
The mounts for the PN can be swapped out easily by loosening/removing them from the t-slot gantry on the roll cage.