2022SummerTeam6
Team Members
Eric MontejoMajor: Mechanical Engineering (spec. Controls and Robotics) |
Maria SantosMajor: Electrical Engineering (spec. Computer Design) |
Ibrahim ShalwaniMajor: Mechanical Engineering (spec. Controls and Robotics) |
Seph ShiaMajor: Mechanical Engineering (spec. Materials Science and Eng.) |
Acknowledgements
We would like to thank these individuals for their support, without which this project would not have been possible:
|
Professor: Jack Silberman |
TA: Dominic Nightingale |
TA: Ivan Ferrier |
We would also like to extend our thanks to the UCSD ECE Makerspace for their assistance and advice.
Robocar Design
Overview
The RoboCar was designed for accessibility and flexibility for fast prototyping, while maintaining optimal sensor suite placement. To optimize the functionality of the main sensors, the OakD stereo camera was mounted high on the back of the robocar to provide a wider field-of-view. The LiDAR was mounted low and near the front to provide an unobstructed 180° detection of obstacles.
The sensors, single-board computer (SBC), and other electronics were mounted to a custom chassis made of laser-cut acrylic and 3D-printed PLA plastic components. The acrylic baseplate is modeled on a pegboard system for flexibility in mounting components, and to allow for multiple cable tie-down locations. The entire chassis is mounted so that the baseplate can unlatch and pivot up on a hinge for easy accessibility to the underside of the baseplate, which allows for ease of maintenance and flexible prototyping. Since the LiPo batteries used must be maintained above a specific voltage level, the robocar was designed for easy monitoring of the battery charge level with an LED battery indicator that shows through the transparent baseplate, and allows for easy battery removal and attachment. For more on the 3D printed components, please see the Appendix.
Electronics
The robocar was wired according to the following schematic, following a system where three major sections (the power supply section, sensor suite section, and the motor output section) were wired to the central Jetson Nano SBC.
Robocar Project
Objective
A more robust target-following system, that can tolerate loss of line-of-sight and continue functionality. Specifically, when line-of-sight is lost and the primary tracking protocol cannot be followed, the robocar will fall back on a secondary protocol (such as lane following)
Requirements
- The robocar shall follow a target
- when the target is lost, the robot will fall back on a secondary protocol (following the track) until the target is visible again
- After which the robot will continue to follow the target
Implementation
Our team built upon the OpenCV-based lane-detection and navigation package by Dominic Nightingale. Our team created a modified target tracking protocol based on HSV color values within ROS2, and ran that in tandem with the original lane-detection and navigation protocol – and had the robocar preferentially select protocol between the target-tracking when available, and the secondary lane-following protocol. To do this, two ROS2 computer-vision target-tracking nodes were run in tandem (target tracking, and lane-detecting), and the python script would preferrentially select between which of the two nodes to follow. For optimal performance, both computer-vision nodes required PID tuning and calibration, so to improve the calibration experience, a system was included to save the calibration values to a file depending on which 'mode' the robocar was in.
Results
The project was a success in that the robocar was able to perform according to all three requirements— tracking and following a target when visible, and falling back on the secondary (lane following) protocol when the target was not available.
The major challenges were due to troubleshooting, bug-fixing, and the limited timeframe. Since the scope of this project was limited to a proof-of-concept due to the available timeframe, this project has much potential for expansion. Our team has included several recommendations for future work to expand upon the intent of the project and improve functionality.
Recommendations
To build upon the intent of developing a more robust target-following system, future projects could incorporate the following recommendations:
- While following the target:
- Dynamic speed control
- Passive obstacle avoidance
- Active pathing/navigation to target via LiDAR mapping (ex. Dikjstra’s algorithm)
- When line-of-sight to the target is lost:
- Intelligently predict which direction to turn after rounding the corner (re-establish line-of-sight) via target motion before line-of-sight was lost
- Target motion prediction via a Kalman Filter to predict where the target will appear on the other side of the obstacle, and move to that point direction
Appendix
GitLab
This project built upon the ucsd_robocar2 ROS2 package by Dominic Nightingale.
Our branch can be found here
Robocar CAD
All CAD files were modeled via Autodesk Fusion 360. 3D printed components were printed on a Lulzbot Mini with PLA filament, and acrylic was cut on a Universal Laser Systems ILS lasercutter. Equipment was courtesy of the UCSD ECE Makerspace.
Pivoting Baseplate
The baseplate was laser-cut in half-inch acrylic, and featured pegboard-style holes to allow for flexible and easy prototyping. The clear acrylic allowed for the battery indicator to be easily viewed from a top-down perspective.
3D Printed Components
Stereocamera MountThe stereocamera was mounted high and to the
rear of the robocar for a better field of view. The
mount utilizes the pre-existing mount points
built-in on the OakD stereocamera to secure
it. It also is reinforced at the base to mount to the
robocar chassis with minimal wobbling.
|
Baseplate HingeThe baseplate hinge was designed to attach to the stereocamera mount, while leaving clearance for the robocar's suspension system. |
Baseplate TabThe baseplate tab was designed for ease of operation, and allows for one-handed use. When in the resting state, the baseplate rests on the bottom flange, and is secured down by the top lip of the tab. By pressing the tab inwards, the tab will flex, allowing the baseplate to be lifted with minimal effort. |
LiDAR MountThe design for the LiDAR Mount was designed by Dominic Nightingale, and allows for the LiDAR to be easily removed and reattached via an included clip. |
Jetson Nano CaseThe design for the 3D printed Jetson Nano Case was the NanoBox sourced from Thingiverse, and was modified to allow for mounting to the baseplate. |