F1TENTH is a 1/10th scale racing car that serves as a platform for autonomous racing research. This documentation covers our cost-optimized custom build with Custom-PCB-Design, ROS2-Foxy-to-Humble-Migration, and Platform-Modifications while learning about autonomous systems integration.
Our implementation focuses on making F1TENTH more accessible to students by significantly reducing costs through smart component selection, custom designs, and sourcing strategies. We aim to build a fully functional autonomous racing platform for significantly less than the standard $3000+ F1TENTH cost.
Our implementation currently includes custom hardware modifications including Custom-PCB-Jetson-Orin, 6mm-Acrylic-Platform, and complete ROS2-Migration from Foxy to Humble. With future scope of driving the car with CDT algorithm or similar advanced control methods.
Engineering Focus (DONE)
Got really good at implementing algorithms on ROS2, including:
Perception: SLAM (Mapping), Particle-Filter (Localization), Occupancy-Grids from LiDAR scans
Planning: Generate Optimal-Racelines with Convex-Optimization, RRT-Star for Obstacle-Avoidance
Control: Pure-Pursuit and Stanley-Controller (better) for line tracking
Competed at F1TENTH-CPS-IoT-Week-2023 for May 2023. Got fastest qualifying lap. Crashed out for race day due to Localization issues with changing track conditions.
Some things I still want to look into:
Research Focus (In Progress)
Check out Head-to-Head-Racing and F1TENTH-Research-Proposal. Very much still in the early phases of ideation. This stuff is hard…
Through the research, I’ve learned about concepts such as:
External Links
- https://f1tenth.org/
- F1TENTH Foxy Documentation, pdf version here
- Bill of Materials
- F1TENTH Syllabus 2023 (Google Sheets, includes lecture videos)
- F1TENTH permanent syllabus
- F1TENTH Code by CL2-UWaterloo (GitHub)
- Autonomous Racing Literature
Concepts Learned from Lab Assignments
- Automatic-Emergency-Braking (AEB) → Lab2
- PID-Control for Wall Following → Lab3
- Obstacle-Avoidance → Lab4
- Scan-Matching → Lab5
- Particle-Filter → Use particle_filter
- SLAM → Lab6, use slam_toolbox
- Motion-Planning using RRT → Lab7
- Perception → Lab8
F1TENTH Notes
Concepts
- Rigid-Body-Transformations
- Ackermann-Steering
- Model-Predictive-Control
- Raceline-Optimization using Optimal-Control
- Teleoperation
- Head-to-Head-Racing
- F1TENTH-Research-Proposal
Links to Projects
About the F1TENTH Car
One of the coolest features that was presented is this custom ESC, the VESC - Vedder ESC which has so many COOL features, including built-in IMU chips and Regenerative-Braking.
Links
- Building the F1/10 car, with slides
It uses a Velineon 3500 Brushless Motor (BLDC)
- RPM/volt: 3500, so we operate at 10-12V,
- Max RPM: 50,000 (this is ridiculously high) → It can go up to 30 miles per hour
- Wire size: 12-gauge
Full voltage: ~12.2V Low Voltage: Around 11V is where it is start to get really low.
Other random things I learned:
- Slipper-Clutch - This is a safety feature