Autonomous Vehicles & Robotics Operating System
Remote Monitoring & Control Systems
Overview
This module introduces the software and engineering concepts for development of custom hardware applications exemplified through the use case of scaled autonomous vehicles. Throughout the course, we will cumulatively develop the skills required to achieve safety-minded autonomous driving algorithms. By learning how to design systems with the Robot Operating System (ROS), students will use LIDAR data to interact with the world around a simulated autonomous vehicle. By the end of the course, the students will implement multiple autonomous driving methods, namely “Wall Following” and “Follow the Gap”. Students completing this course will be positioned to implement autonomous algorithm development on their own projects or may elect to further develop on the car that will be competing in the Formula 1/10th competition as part of the team. It is highly recommended that incoming students are familiar with an object-oriented programming language, as we use Python extensively in this course.
About the Module
This module is available as an independent study or for credit as CRSN 151C.
The syllabus is available for viewing and download to the right, while the lab manual will be available using your UCSC credentials once you are signed up for the course. The Lab manual(s) will provide participants with instructions and important terminology, as well as links to the needed software. Each project has its own prelab that must be completed before attending the relevant session. You'll be directed to online content and resources designed to give a basic understanding of what you'll be working on for that day, as well as an overview of the prerequisite software required for the course (all free to use). A key component of the prelabs and course as a whole is the use of a lab notebook which should be used to take class notes, planning for the lab assignments, and reflection on the pre-lab quizzes. Make sure to bring the notebook with any questions you may have on the relevant prelab content to each session; it is important that you understand these concepts. This course will be virtual, and all recordings will be posted to the relevant repository.
Learning Outcomes:
By the end of this module, students will have demonstrated familiarity and ability in:
- Good laboratory Environment, Health, and Safety practices
- Developing software in a Linux (Ubuntu) environment
- Designing multi-sensor systems with the ROS framework
- Using LIDAR as a means of vehicle perception
- Using PID to achieve an autonomous wall following algorithm
- Implementing a reactive control method (follow the gap) for better autonomous control
- Designing autonomous systems with Planning, Perception, and Control as major components
Labs:
The lab assignments are the means of applying the concepts learned in lecture. Throughout the course, students will incrementally develop the software of an autonomous car to use in a simulated driving environment. Since the simulator emulates an actual car, the software developed on the simulator can be used directly on the car. With the skills accrued in the course, students can join and contribute to the Formula 1/10th team, in which we research and apply different methods of autonomous driving to race around a track in minimal time.
- Lab 1: Understanding the ROS system and development environment
- Lab 2: Familiarizing with the F1/10th simulator and LIDAR data
- Lab 3: Introducing Automatic Emergency Braking for safer driving control
- Lab 4: Using PID to implement autonomous wall following algorithm
- Lab 5: Implementing the autonomous Follow the Gap algorithm
- Final Project: Open ended research project leading to speedup compared to Follow the Gap
Workshops are grouped into sessions which are available for sign up to the right. You may not sign up for individual sessions or split between different groups. Plan to attend all workshops in your session.
Before attending your workshop, please review the manual and complete the online training. You are required to complete the EH&S Lab Safety Fundamentals and the EH&S Electrical Safety in Research courses through the UC Learning website before beginning any work in the lab.
Resources
Resources:
- Docker: Tool used to instantiate the development environment
- ROS: The robotics software framework taught in this class http://wiki.ros.org/
- F1Tenth: Course/Competition from which material is derived https://f1tenth.org/index.html