Skip to content

My code from Introduction to Autonomous Vehicle Systems with Prof. Bob Norris at UIUC (C++)

Notifications You must be signed in to change notification settings

monk200/Mobile_Robotics_with_ROS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mobile_Robotics_with_ROS

This repository contains code from the lab portion of Introduction to Autonomous Vehicle Systems with Prof. Bob Norris at UIUC. The lab primarily used ROS in C++ to interface with various simulators, sensors, and a small robotic car. Course content available at http://coecsl.ece.illinois.edu/se498/.

Please do not steal the code if you are currently in the course, there is no guarentee that any of it is correct or up to date.

Content

The organization of this repository is slightly different from my others since this uploads the entire catkin workspace. Code for each specific lab can be found in the src folder. The names of each lab are also not as self-explanatory as my other repos so these content summaries and links will be very helpful! Each portion of the project will still have its own README file explaining how the lab was done and showing any output files. The course provided code in certain areas and had students interface with it, so the README will also specify what parts of the code I completed.

  • se498_lab1: This lab walked students through using the terminal to create a catkin workspace, write a simple ROS package that transmits a string to the terminal, and modify CMakeLists.txt to include the created ROS node.
  • se498_lab1_2: The second portion of the first lab guided students through implementing orientation control for the turtlesim robot simulation. Students then added a proportional controller to get the turtle to move to a set orientation and location. All the student-modified code can be found in ./src/se498_lab1_2/src/lab1_2.cpp.
  • SE498Lab2_skeleton: The second lab worked with a small robotic car with five infrared sensors and developed a wall-following algorithm, which can be found in this file.
  • se498_lab4: This lab used OpenCV and a camera to perform edge detection on a live image. The process was done iteratively with the ultimate goal of implementing a line following algorithm on the robot car from SE498Lab2_skeleton, but the last step was never completed because of Covid. The edited code is all in this folder and some output images can be found in this folder.
  • se498_lab5: This lab primarily existed to guide students through running Linux on their personal computers and setting up the Jackal simulator. It also introduced how to use Gazebo to create custom testing environments.
  • launch_sim: This lab walks students through how to make their own ROS package, launch file, and node to interface with the Jackal simulation.

Setup

All of these labs were completed on a system running Ubuntu 16.04 with ROS Kinetic installed. Many hours were spent trying to run these programs in Windows Subsystem for Linux (WSL), booting Linux off a flash drive with persistent memory, and on more recent versions of Ubuntu. I learned that ROS Kinetic only runs on Ubuntu 15.10, Ubuntu 16.04, and Debian 8 and I learned that WSL is not the tool for every job. I personally did not want to partition my computer's hard drive to dual-boot Linux so I was trying the portable option but was running into a roadblock where it wouldn't actually let me run the program. Ultimately, I converted an old Chromebook to run Linux and I would recommend also using an old computer for Linux or being brave enough to partition your main computer.

About

My code from Introduction to Autonomous Vehicle Systems with Prof. Bob Norris at UIUC (C++)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published