2021FallTeam6
Team Members
Team 5.5 consists of the former two-person teams 5 and 6. We've built everything separately except for the final project where we collaborated to make v2v communication work.
Team 5:
Zoey Huang
Jason Almeda
Team 6:
Liam Fowler - Mechanical Engineering
Johannes Diehm - UCSD Extension
Mechanical
Circuit Design
Donkey Car Laps
Donkey Car Laps, Classroom Track
ROS2 Laps
Our Project
Our goal was to develop a system of nodes in ROS to enable vehicle to vehicle communication between 2 cars. We took inspiration for our project from the "Black Ice" phenomenon, whereby cars in icy conditions slide out and crash due to difficult-to-see ice on the road. By allowing cars to communicate with one another, a car involved in a crash could tell other cars that there is an issue on the road ahead, allowing the cars to slow down or stop to avoid the road hazard.
Our project consists of two cars: the lead car and the follower car. If the lead car should crash, it shall publish a message to the follower car, which causes it to stop, thus preventing that the follower car from crashing into the same obstacle. For sensing the crash, we use the accelerometer sensor on an Openlog Artemis IMU in the lead car. If a specific deceleration threshold is met (i.e. 10 milli g), the car publishes a message to a connected following car. If the follower car receives this specific message, it should cause an immediate stop.
In our case, we set the lead car to be the "Master" roscore, to which we connected the follower car.
Gantt Chart
Our Code
You can find the GitHub repository to our code here: https://github.com/LiamEFowler/ECE-MAE-148-Group5.5-Black-Ice
In summary, we added a talker node on the lead car, a listener node on the follower car and the according launch files. In the talker node, we implemented a module to read the output of the IMU, filter it for the axis of acceleration that was interesting for us (frontal deceleration) and publish a message if the threshold was met. In the listener node we implemented a module that, if a specific message was received, called a function in the lane_guidance_node. In the Lane_guidance_node, we had to implement the function that could be called from the listener node and which stopped the car.
Weekly Presentations
Final Presentation
Final Presentation Slides: