Team Overbot was a group of engineers who built an autonomous off-road vehicle to compete in the 2004 DARPA Grand Challenge. The vehicle had to drive over 200 miles through the desert completely on its own, no human interaction whatsoever. My part of the project was to develop the automated braking system for the vehicle.
Automated Brake System Hardware
First I designed all of the hardware in Autocad:
Then I machined all of the parts out of aluminum stock with a milling machine:
Then I assembled the parts to check the fit:
Then I mounted the hardware inside the vehicle:
Automated Brake System Background
The four main automated actuator systems on the vehicle are the brakes, the throttle, the transmission, and the steering. The brake system has its own low level motion controller. Higher levels in the vehicle software system send the brake controller braking commands through an RS-485 serial interface. For example, the higher level software may send the brake controller a command to actuate the brakes to 50% brake pressure in some amount of time. Other sensors and software on the vehicle monitor the vehicle deceleration rate and other variables of that nature.
There are many ways that you could implement such a brake system. We decided that for our vehicle it would be best if we simply pulled on the existing brake pedal mechanically with a linear actuator. We could have also made the actuator purely hydraulic, but that would have involved installing a hydraulic pump, accumulator, and proportioning valves. The mechanical linear actuator is perhaps the simplest approach and it is necessary for our emergency stop brake design.
The linear actuator is powered by a large 24 volt DC brush motor, which connects to a non-backdriveable lead screw though a Kevlar belt and an adjustable slip clutch. The motor turns the lead screw which spins inside a nut, extending or retracting the actuator shaft. The actuator shaft is connected to the brake pedal with a steel cable. The cable allows the actuator to pull on the pedal, but not push. An important design goal was that the brakes should still be able to be used manually, with no interference from the automated system, that way a driver can still stomp on the brakes if necessary during preliminary testing. If the brake pedal has to be used manually, the cable simply bends and does not impede the brake pedal motion.
When the actuator pulls on the brake pedal, the pedal transfers force to the piston in the brake master cylinder. The brake pedal acts as a mechanical lever, increasing travel of the actuator or your foot, but amplifying force on the piston. When force is applied to the piston in the brake master cylinder, the piston applies this force over some area to the brake hydraulic fluid, increasing the hydraulic fluid pressure. The brake hydraulic lines connect the brake master cylinder to the brake slave cylinders at each of the wheels. The brake hydraulic pressure applies some force on the pistons in the slave cylinders, proportional to the area of the slave pistons. The slave cylinder pistons apply this force to the brake pads, which apply friction to the brake disks mounted on the vehicle wheels. The friction of the brake pads on the brake disks apply torque to the vehicle wheels, which decelerates the vehicle through the friction force between the tires and the ground.
We monitor the brake hydraulic pressure with a pressure sensor and extend or retract the actuator until we achieve the desired pressure value. We setup a dual-feedback loop in the brake motion controller. An encoder mounted onto the linear actuator motor provides actuator extension and retraction velocity and acceleration information and the analog pressure sensor in the hydraulic line provides "position" information. We could have gotten the position, velocity, and acceleration information all from one sensor (either from the motor encoder or the analog pressure sensor), but the dual feedback loop has several advantages. We could easily estimate the hydraulic pressure from the actuator extension length since the relationship between the two is highly linear. The relationship is not perfectly linear, though, and play in the system reduces the accuracy of that estimate. Monitoring the hydraulic pressure directly with the pressure sensor improves the accuracy of powering the actuator to some desired pressure value. If we used the pressure sensor to derive the velocity and acceleration information, though, the compliance and backlash in the actuator connection to the brake pedal would reduce the stability of the feedback loop. The dual-feedback loop improves both the system accuracy and stability by taking advantage of the extra information we get from two sensors rather than just one.
Perhaps ideally we might want to have measured the braking torque on the wheels or even the friction force between the tires and the ground instead of the brake hydraulic pressure. Just as we improved the accuracy of the system by measuring the hydraulic pressure instead of simply the linear actuator position, we could theoretically further improve the system accuracy by directly measuring the tire friction force, since there is both compliance and backlash in the relationship between the hydraulic pressure and this friction force. Then the vehicle software could tell the brake system to power to some number of Newtons of tire friction force in some amount of time. Measuring this friction force is not really possible, however, and definitely not feasible. It is not really necessary either. Since accelerometers and other sensors are measuring the vehicle deceleration rate, the linear actuator position is really all we need to make the braking autonomous. We would like for the relationship between the vehicle deceleration and the brake actuator variable to be as simple as possible though. The more complicated the transfer function between the two (the more compliance, backlash, and other non-linearities) the less stable (lower bandwidth) we can make the vehicle deceleration feedback loop. The transfer function between the brake hydraulic pressure and the vehicle deceleration is simpler than the transfer function between the linear actuator position and the vehicle deceleration. It is not as simple as the relationship between the tire-to-ground friction force and the vehicle deceleration, but since it is much easier to measure, we choose the hydraulic pressure for the brake system command.