COSI 119R Course Materials

website·Indexed 30 days ago

http://cosi119r.s3-website-us-west-2.amazonaws.com/

Educational resources and lecture slides covering robotics, software engineering, and programming. Topics include ROS (Robot Operating System) fundamentals, LiDAR data processing, PID control, localization, move_base, and software engineering rules of thumb.

Tokens
58.5K
Snippets
176
Records
495
Agent score
47%

What's inside COSI 119R

  1. Introduction to Behavior Trees (BTs)

    Behavior Trees are a way to organize control logic for robots, similar to Finite State Machines (FSMs) but structured as trees with a single root and multiple leaves. In a BT, the leaves represent actual control actions (behavior nodes), while all other nodes (composites) manage the control logic. The tree operates on a "tick" oriented control flow, where the root is ticked, and the tick propagates down the tree based on the semantics of each node.
  2. Overview of Adaptive Monte Carlo Localization (AMCL)

    AMCL (Advanced/Augmented/Adaptive Monte Carlo Localization) is a probabilistic algorithm used for robot state estimation from sensor data. It employs a Monte Carlo technique to handle localization when a direct analytical solution is infeasible. Instead of solving equations for all possible data points, AMCL represents the robot's belief using a random collection of candidate locations (particles).
  3. Introduction to Aruco Fiducials for Robot Localization

    Fiducials are standardized graphical images used with computer vision algorithms to compute the relative pose (orientation and distance) between a camera and a known point in the real world. Aruco fiducials are a specific type of marker that encode a unique number, allowing software to distinguish between multiple tags. They are used to bind a robot's coordinate system to a real-world coordinate system by calculating the transform between the fiducial's pose and the camera's pose.
  4. Overview of the ROS TF (Transform) Framework

    The TF (Transform) package in ROS is an API used to manage and convert coordinates between different coordinate frames. Coordinate systems are given unique names (e.g., 'world', 'lidar-1') and are organized into a tree structure. In this hierarchy, every named TF has exactly one parent and can have an unlimited number of children. This tree structure ensures there is only one path between any two frames, allowing the system to compute the transform between them efficiently.
  5. Overview of Behavior Tree (BT) Concepts

    Behavior Trees are hierarchical structures used to create robot behaviors. They consist of a single root node and leaf nodes. The leaves represent actual control actions (behavior nodes), while the internal nodes (composites) manage the control logic. BTs operate on a "tick" oriented control flow, where the root is ticked, and the tick propagates down the tree based on the semantics of each node type.
  6. Overview of Autonomous Robotics (Cosi119a) Learning Objectives

    Cosi119a is a pragmatic introduction to autonomous robotics focusing on a software engineering approach to solve core robotics challenges, such as localization ("How do I know where I am?") and decision making ("How do I decide what to do?"). The course emphasizes turning theoretical concepts into actual robot behaviors in real-world environments.
  7. Overview of 2024 Robotics Programming Assignments

    The course features a sequence of programming assignments designed to build the skills necessary for the Campus Rover project. Grading is based on a pass/no-pass system for each skill demonstrated.
    AssignmentDescription
    PA Basic ControlDemonstrate basic control of the robot
    PA Lidar wall followUsing LIDAR sensing to drive the robot along a wall
    PA Maze Escape!Use wall following algorithms in a maze escape
    PA Line FollowerRobot looks for line on the floor and follows it
    PA FiducialsFiducial Navigation Programming Assignment
  8. Overview of robot types and their real-world applications

    Robotics covers a wide range of applications across various industries, focusing on improving safety, efficiency, and quality of life. Common types of robots include:

    • Humanoid Robots: Designed for dangerous or repetitive tasks and providing social companionship (e.g., Tesla Optimus).
    • Surgical Robots: Used to increase precision in complex procedures and reduce patient recovery time (e.g., DaVinci Robot).
    • Assistive Robots: Help elderly individuals maintain independence and reduce caregiver workload, particularly in dementia care.
    • Autonomous Transportation: Reduces traffic congestion and improves accessibility (e.g., airport terminal trams).
    • Bomb Disposal Robots: Combine remote control and autonomy to safely examine suspicious packages and protect human technicians.
    • Domestic Chore Robots: Automate household tasks to save time and assist disabled individuals (e.g., iRobot Roomba).
    • Agricultural Robots: Increase crop yields and efficiency while reducing the need for herbicides and manual labor (e.g., Odd Bot Weedwhacker).
    • Manufacturing Robots: Enhance production speed, precision, and safety by handling hazardous tasks and enabling 24/7 operation.
  9. Overview of Kalman Filters for State Estimation

    A Kalman Filter is a mathematical algorithm used to estimate the true value of an uncertain measurement in systems that are continuously changing. It is particularly useful for robotics when dealing with noisy inputs from sensors such as GPS, Odometry, and Inertial Measurement Units (IMU) to calculate actual speed or true location. The core insight is that two inaccurate readings can be combined into an estimate that is more accurate than either reading alone, provided the errors are independent.