During 2017 summer, I chose to join IIIT Delhi to carry out a project on Self-driving car. This gave me the first experience to work on a real car. During my stay at IIITD, I worked on a variety of things from calibrating brake and throttle to writing a code in OMPL to create a planner and execute the car autonomously. Firstly, I started off with creating the brake and throttle profile of the car by recording the car's data from CAN based gateway. By visualising the collected bag files, we found out that there were only discrete brake percentages that can be executed. Finally, with this information built a high level controller that gives control commands to the car to achieve the velocity profile given as input to the system.
Soon after this, implemented stop and go mechanism as well as stopping the car smoothly if it cannot find any plausible paths that it can execute. Also, wrote a script to take perceptual input and convert it to the form of an occupancy grid. Then a planner was written in OMPL in order to plan the path using the created occupancy grid. The car's current velocity came as a feedback from the CAN interface. GPS was used for localization purposes. The GPS waypoints acted as a global planner while the local planner was based on OMPL. We calculated the car's heading angle using consecutive GPS readings. Thus, based on the global plan a goal point was marked on the local planner running at a high frequency. The control commands from the planners output was given the designed controller. Thus, achieving waypoint navigation.