[[TOC(Other/Summer/2020/SelfDrivingVehicle/*, depth=1, heading=Self-Driving Vehicle)]] = Self-Driving Vehicle = **WINLAB Summer Internship 2021** **Group Members:** Zhuohuan Li, Sandeep Alankar, Anthony Siu, Adas Bankauskas, Malav Majmudar, Abia Mallick, Lohith Bodipati, Rohan Vij, Aayush Agnihotri == Project Website == https://sa14544.wixsite.com/self-driving-vehicle == Project Objective == The goal of this project is to build a fully-functional self-driving car. The project includes development of ~1/14 scale vehicles for use as a remote self-driving car testing platform, as well as a virtual simulation environment which will model both the physical vehicles and the testbed environment. Robot Operating System (ROS) will be used for both halves of the project, with the simulation running in Gazebo. There are several objectives for this project: * Design and implementation of additional sensors for existing vehicles to allow for remote experimentation * Incorporation of ROS control into existing car software * Use of AI/machine learning algorithms for self-driving behavior * Building the actual vehicle at WINLAB and testing its autonomy in a real environment == Week 1 Activities == * Create ORBIT/COSMOS accounts and become familiar with reserving nodes and performing basic Linux operations * Read about how to run ROS and Gazebo Simulator on local machines * [https://docs.google.com/presentation/d/18HOzxzMpbICPZUL5aVCChpJEtbcpmwP7dl5NgV5Bkcw/edit?usp=sharing Week 1 Presentation] == Week 2 Activities == * Work on ROS tutorial with PuTTY - Reserve nodes on intersection and retrieve/plot data from turtlesim * Learn about remote graphical access and how to X forward using correct ssh commands - Create X image for ROS simulations * Learn how to duplicate PuTTY session with tmux and practice basic tmux shortcuts * [https://docs.google.com/presentation/d/1seyX6rUHb5oGcmB47eubN0xHBRvH6qNv_Y_8ZaEXxYM/edit?usp=sharing Week 2 Presentation] == Week 3 Activities == * Finish ROS tutorial with PuTTY * Working on Gazebo Simulator tutorial - Learn how to add new model, build/modify robot, improve model appearance with meshes, etc. * Create project page on ORBIT wiki, add objective and weekly summaries * Publish project website with links to weekly presentations * [https://docs.google.com/presentation/d/142n-tBPpN4X8mRPS-Zo1r6YcKNqexb3edhEAtVHbD-E/edit?usp=sharing Week 3 Presentation] == Week 4 Activities == * Continue working on Gazebo Simulator tutorial - Learn how to implement DEMs, create populations of models, build multi-leveled and multi-layered simulation environment, etc. * Configure Chrome remote desktop to access Gazebo from local machines - Load self driving image onto nodes and learned how to properly save node image * [https://docs.google.com/presentation/d/1h_GanEULzRQezcS2x6pzxtwP77Y5vuO6V2QnWjqdF1c/edit?usp=sharing Week 4 Presentation] == Week 5 Activities == * Finish Gazebo tutorial - Learn how to record and playback simulations, apply force and/or torque to models, connect to Player, use physics engines to achieved desired behavior, etc. * Access Gazebo code from previous year's GitLab repository - Look over algorithms and simulations built for vehicles with Ackermann steering * [https://docs.google.com/presentation/d/1WYysF7vQmwatsnNa1SdJIfFCdX3fW8xtgVgws69wA-M/edit?usp=sharing Week 5 Presentation] == Week 6 Activities == * Visit WINLAB - Examine physical model's hardware and compare with previous rigid steering models * Create catkin workspace and control Gazebo robot through terminal commands * Test different neural network architectures to maximize steer prediction accuracy * [https://docs.google.com/presentation/d/19DkfsdHMdiDMiXFo6V_-7kE71wnHfAOk8LTcMSl4gCo/edit?usp=sharing Week 6 Presentation]