INSTRUCTOR and TA

    Md Jahidul Islam. Office Hours: Thursday 4:00 PM - 5:00 PM. @LAR-339D.
    Lecture: M/W/F 3:00PM-3:50PM @LAR-330
    TA: TBD. Office Hours: TBD.

COURSE PREREQUISITES

    Microprocessor Applications or embedded systems or equivalent courses
    Fluent in object-oriented programming (Python and/or C++)
    Basics of linear algebra and calculus

Textbooks

    Introduction to Robotics: Mechanics and Control (Pearson; 4th Edition).
    By John Craig. ISBN-13: 978-0133489798. Pearson; 4th edition.

    Probabilistic Robotics (Int. Robotics & Autonomous Agents series; 1st Edition).
    By Sebastian Thrun, Wolfram Burgard and Dieter Fox.
    ISBN-13: 978-0262201629, ISBN-10: 0262201623.

RECOMMENDED MATERIALS

Course Materials


Syllabus: EEL 4930 |   EEL 5934

Highlights: Course Summary

Lab Assignments

1: ROS Integration and Robotic Simulation
Individual · 10 points · Out: week 1, Due: week 3

Part A: ROS2 Humble Introduction [20%]

  • Expectation: ROS2, Python (version 3.8 or later), and OpenCV (version 3.2 or later) must be installed and operational on the device, with familiarity in basic operations. Follow the recommended “beginner tutorials”.

Part B: Using ROS2 for camera face detection in OpenCV [50%]

  • Expectation: The usb_cam ROS2 package is used to visualize image data from a USB camera. A custom node is created to subscribe to the image stream and convert it for OpenCV-based face detection.

Part C: Publishing the output image as a ROS topic [25%]

  • Expectation: Once the bounding box is drawn, the output image will be converted back into ROS image data. This image data will be published to a custom topic for visualization.

Part D: Write ROS launch files [5%]

  • Expectation: Create a single ROS launch file to initiate all nodes from a single terminal command. The expected ROS nodes are usb_cam, the respective ROS node, and rqt_image_view.
2: Spatial Kinematic Transformations in SO(3)
Individual · 10 points · Out: week 3, Due: week 5

Part A: Coordinate frame of reference conversions [20%]

  • Expectation: Convert the Cartesian points into cylindrical and spherical coordinate systems, and determine the relative transformation matrices from given frames and measurements.

Part B: Rotation matrix representation and analysis [25%]

  • Expectation: Demonstrate a basic understanding of SO(3); with the given 3x3 matrix, prove it is a valid rotation matrix in SO3. Then find the axis of rotation and the angle. Analyze how to find the axis of rotation.

Part D: Quaternion concepts [15%]

  • Expectation: Implementation of quaternion algebra for representing rigid-body rotations and transformations; derivation of rotation matrices from quaternions and quaternions from Cartesian vector rotations.

Part E: Forward kinematics [35%]

  • Expectation: Visualization of manipulator arm kinematics using a ROS2 library, with results for multiple goals.

Part F: Rodrigues' proof [5%]

  • Expectation: Derive the equivalent angle-axis formula for a rotation matrix in SO(3) from the Rodrigues’ formula.
3: Visual Perception and Motion Kinematics
Individual · 10 points · Out: week 5 Due: week 7

Part A: Augmented visual by homography estimation [30%]

  • Expectation: Implementation of an image inpainting task using homography estimation to place a logo on a content image, ensuring correct perspective scaling, and output both the combined image and the warped output.
  • Note: Up to 5% bonus for implementing a filter for noise reduction.

Part B: Camera calibration using ROS/OpenCV/Matlab [20%]

  • Expectation: Camera calibration with a pre-existing library, including provision of the intrinsic matrix 𝐾 and relevant camera model parameters. Either a cellphone camera or the cameras of robots in the lab can be used.

Part C: Epipolar geometry concepts [10%]

  • Expectation: Analytical derivations and proofs of epipolar geometry concepts, demonstrating understanding of epipolar constraints and 3D scene geometry.

Part D: Motion kinematics of a 2D robot in ROS2 [40%]

  • Expectation: Execution of movement tasks in a 2D environment using the ROS2 turtlesim package. Initial implementation of a simple movement pattern, followed by a point-following task, with custom nodes developed for both applications.
4: Path Planning and Localization
Group · 15 points · Out: week 8 Due: week 11

Part A: Quaternion interpolation [30%]

  • Expectation: Interpolation between robot poses for smooth trajectory planning in quaternion space, including implementation of functions to transform between different rotation matrix notations and use of SLERP interpolation. Figures of varying interpolation scales should be shown.

Part B: Robot localization and path finding [70%]

  • Weight: 20% (mapping) + 20% (navigation) + 30% (pathing algorithms) = 70%
  • Platform: Turtlebot, Robot Dog, or RPi simulation engine
  • Expectation: Using one of the given robot platforms, use the given libraries to perform a demonstration of SLAM localization and mapping. With the generated map, implement Bug Algorithms (Bug0, Bug1, Bug2) to avoid obstacles when directing the robot to goals.
5: State Estimation and Filtering
Group · 15 points · Out: week 11 Due: week 14

Part A: State estimation from landmarks [15%]

  • Expectation: Determining analytical solutions for 2D/3D pose estimation of a robot from multiple known landmarks using range data and/or bearing measurements.

Part B: Kalman filters for object tracking [20%]

  • Expectation: Implementing a basic Kalman filtering (KF) algorithm for 2D object tracking using Python-OpenCV libraries. The steps for the Kalman filtering process, as well as tuning, should be understood for a successful end-to-end implementation.

Part C: Technical demonstration of robot localization and path finding [60%]

  • Weight: 20% (detection) + 20% (planner) + 30% (control) = 70%
  • Platform: Turtlebot, Robot Dog, or manipulator arm
  • Expectation: Continuing from the previous pathing implementation in HW4B, integrate a person/object detector for the following motion. The technical demonstration will include a motion/path planner, implemented on the robot platform. A KF-based control algorithm must be implemented to allow the robot to follow the outputs.

Part D: Implementing RRT/RRT* [5%]

  • Expectation: Develop RRT/RRT* on the robot to traverse source-to-destination paths.

Bonus: Implementing PID controllers [5%]

  • Expectation: Implementing and tuning independent PID controllers for Part-C.