Difference between revisions of "IU:TestPage"
R.sirgalina (talk | contribs) |
R.sirgalina (talk | contribs) |
||
Line 1: | Line 1: | ||
+ | = Autonomous Mobile Robots = |
||
− | = Frontend Web Development = |
||
− | * '''Course name''': |
+ | * '''Course name''': Autonomous Mobile Robots |
− | * '''Code discipline''': |
+ | * '''Code discipline''': |
− | * '''Subject area''': |
+ | * '''Subject area''': Robotics |
== Short Description == |
== Short Description == |
||
+ | Autonomous mobile robots (AMRs) are rapidly evolving from workhorses to increasingly complex machines capable of performing challenging tasks such as industrial navigation. The course objective is to provide a few basic concepts of autonomous mobile robots. The main emphasis is on mobile robot kinematics and controls, different classes of robot localization techniques, various state estimation methods, and robot perception based on camera and lidar. The exercises of this course are based on ROS2 with a few types of wheeled robots. |
||
− | This is a practice-oriented course that introduces students to the essentials of modern front-end web development. It starts from the very basics of web technologies, assuming no experience other than any general-purpose programming language. It is structured in a way that covers a wide variety of topics and technologies without going too deep into any of them. The course starts by introducing HTML, CSS, and JavaScript, then covers JavaScript and its ecosystem in more depth (since it is foundational to the rest of the course). After that, we move on to frameworks (in particular, Svelte and React) and how to write modern web apps using them. Lastly, we cover how to ensure quality in modern web apps, as well as different architectural patterns such as server-side rendering and meta-frameworks. |
||
+ | By the end of this course, you will be able to understand the basic building blockers of autonomous navigation. To succeed in this course, you should have programming experience in Python 3. x, ROS, and familiarity with basic concepts of Linear Algebra and Calculus. |
||
== Prerequisites == |
== Prerequisites == |
||
=== Prerequisite subjects === |
=== Prerequisite subjects === |
||
+ | * CSE101 |
||
− | * CSE101 – Introduction to Programming I |
||
+ | * CSE102 |
||
+ | * CSE104 or CSE117 |
||
+ | * CSE202 and CSE204 |
||
=== Prerequisite topics === |
=== Prerequisite topics === |
||
+ | * Programming experience in Python 3. x |
||
− | * Basic programming skills |
||
+ | * ROS (Robot Operating System) |
||
+ | * Familiarity with basic concepts of Linear Algebra and Calculus |
||
== Course Topics == |
== Course Topics == |
||
Line 22: | Line 28: | ||
! Section !! Topics within the section |
! Section !! Topics within the section |
||
|- |
|- |
||
+ | | 1.0 Introduction & Motion || |
||
− | | Basics of front-end web development || |
||
+ | # What are autonomous mobile robots (AMRs)? |
||
− | # Introduction to HTML, CSS, and JavaScript |
||
+ | # Why do we need autonomous mobile robots (AMRs)? |
||
− | # JavaScript ecosystem: NPM, bundlers, modern project structure |
||
+ | # How do AMRs work? |
||
− | # TypeScript |
||
+ | # Kinematic Configuration |
||
− | # Form validation |
||
+ | # Probabilistic kinematics |
||
+ | # Velocity motion model |
||
+ | # DiffDrive |
||
+ | # Bicycle drive |
||
+ | # Tricycle drive |
||
+ | # Car (Ackerman Drive) |
||
|- |
|- |
||
− | | |
+ | | 2.0 Estimation || |
+ | # Basic of Probability |
||
− | # Svelte |
||
+ | # Probabilistic Generative Laws |
||
− | # React |
||
+ | # Estimation from Measurements |
||
+ | # Estimation from Measurements and Controls |
||
+ | # Gaussian Distribution |
||
+ | # One Dimensional Kalman Filter |
||
+ | # Multivariate Density Function |
||
+ | # Marginal Density Function |
||
+ | # Multivariate Normal Function |
||
+ | # Two Dimensional Gaussian |
||
+ | # Multiple Random Variable |
||
+ | # Multidimensional Kalman Filter |
||
+ | # Sensor Fusion |
||
+ | # Linearization, Taylor Series Expansion, Linear Systems |
||
+ | # Extended Kalman Filter (EKF) |
||
+ | # Comparison between KF and EK |
||
+ | # A Taxonomy of Particle Filter |
||
+ | # Bayesian Filter |
||
+ | # Monte Carlo Integration (MCI) |
||
+ | # Particle Filter |
||
+ | # Importance Sampling |
||
+ | # Particle Filter Algorithm |
||
|- |
|- |
||
+ | | 3.0 Perception || |
||
− | | Code Quality and modern architectures || |
||
+ | # Monocular Vision |
||
− | # ESLint |
||
+ | # Pinhole Camera Model |
||
− | # Unit testing, CI/CD |
||
+ | # Image Plane, Camera Plane, Projection Matrix |
||
− | # Code structure |
||
+ | # Projective transformation |
||
− | # Rendering strategies |
||
+ | # Finding Projection Matrix using Direct Linear Transform (DLT) |
||
− | # Meta-frameworks: SvelteKit |
||
+ | # Camera Calibration |
||
+ | # Stereo Vision |
||
+ | # Simple Stereo, General Stereo |
||
+ | # Some homogeneous properties |
||
+ | # Epipolar Geometry |
||
+ | # Essential matrix, Fundamental matrix |
||
+ | # Depth Estimation |
||
|} |
|} |
||
== Intended Learning Outcomes (ILOs) == |
== Intended Learning Outcomes (ILOs) == |
||
=== What is the main purpose of this course? === |
=== What is the main purpose of this course? === |
||
+ | What is the main goal of this course formulated in one sentence? |
||
− | The main purpose of this course is to enable students to develop web frontends using modern tools and techniques by having hands-on experience derived from industry-standard practices. |
||
+ | The main purpose of this course is to answer the following three questions |
||
+ | What are autonomous mobile robots (AMRs)? |
||
+ | Why do we need autonomous mobile robots (AMRs)? |
||
+ | How do AMRs work? |
||
=== ILOs defined at three levels === |
=== ILOs defined at three levels === |
||
Line 48: | Line 91: | ||
==== Level 1: What concepts should a student know/remember/explain? ==== |
==== Level 1: What concepts should a student know/remember/explain? ==== |
||
By the end of the course, the students should be able to ... |
By the end of the course, the students should be able to ... |
||
+ | * Different types of motion models for AMRs |
||
− | * List the 3 programming languages used in building frontends and explain the purpose of each of them |
||
+ | * Types of robot localization techniques for linear and nonlinear systems |
||
− | * Explain the benefits of using a static typing system |
||
+ | * To understand the environment by interpreting the sensor reading |
||
− | * Describe the idea behind frontend frameworks and their purpose |
||
+ | * Several ways to estimate a robot’s system state vector for linear, nonlinear, and linearized systems |
||
− | * List the different tools used in ensuring code quality |
||
− | * Explain the different rendering strategies and elaborate on the pros and cons of each |
||
==== Level 2: What basic practical skills should a student be able to perform? ==== |
==== Level 2: What basic practical skills should a student be able to perform? ==== |
||
By the end of the course, the students should be able to ... |
By the end of the course, the students should be able to ... |
||
+ | * Understand the vehicle motion model for the provided vehicle schema type |
||
− | * Build an interactive website with basic user input forms |
||
+ | * Design linear or nonlinear controller for manueveing the robot appropriately |
||
− | * Make use of 3rd-party JavaScript libraries in their code |
||
+ | * Design sensor configuration and which sensors are more suitable for the given task |
||
− | * Design TypeScript interfaces that represent their data types |
||
+ | * Different ways to estimate system state vector for both linear and nonlinear systems |
||
− | * Build simple user interfaces from ready-made designs |
||
+ | * Understand how to localize robots in GPS-denied environments |
||
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ==== |
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ==== |
||
By the end of the course, the students should be able to ... |
By the end of the course, the students should be able to ... |
||
+ | * Design a robot motion model for the provided robot |
||
− | * Produce production-ready bundles and automate their deployment to the internet |
||
+ | * Improve the robot state estimation accuracy |
||
− | * Choose an appropriate architecture for the appropriate use-case |
||
+ | * Fuse several types of sensors and improve measurement accuracy |
||
− | * Test their code using different techniques (unit, integration, visual) and libraries (Jest, Testing Library, Cypress) |
||
+ | * Estimate depth using a stereo camera, and lidar |
||
− | * Use static analysis tools to catch possible bugs early on |
||
+ | * Localize the robot in a GPS-denied environment |
||
== Grading == |
== Grading == |
||
Line 75: | Line 119: | ||
! Grade !! Range !! Description of performance |
! Grade !! Range !! Description of performance |
||
|- |
|- |
||
− | | A. Excellent || |
+ | | A. Excellent || 90-100 || - |
|- |
|- |
||
− | | B. Good || |
+ | | B. Good || 75-89 || - |
|- |
|- |
||
− | | C. Satisfactory || |
+ | | C. Satisfactory || 50-74 || - |
|- |
|- |
||
− | | D. Fail || 0- |
+ | | D. Fail || 0-50 || - |
|} |
|} |
||
Line 90: | Line 134: | ||
! Activity Type !! Percentage of the overall course grade |
! Activity Type !! Percentage of the overall course grade |
||
|- |
|- |
||
− | | |
+ | | Assignment || 45 |
|- |
|- |
||
− | | |
+ | | Quizzes || 20 |
+ | |- |
||
+ | | In-class activity || 15 |
||
+ | |- |
||
+ | | Exams || 20 |
||
|} |
|} |
||
=== Recommendations for students on how to succeed in the course === |
=== Recommendations for students on how to succeed in the course === |
||
+ | Participation is important. Showing up is the key to success in this course.<br>You will work individually, however, getting help from others is acceptable<br>Review lecture materials before classes to do well in quizzes.<br>Reading the recommended literature is optional and will give you a deeper understanding of the material. |
||
− | Participation is highly recommended. Conversations in class add a lot of value on top of the provided material.<br>Finish the assignments on time. Each topic depends on the previous one and this course is practice-oriented, so completing the practice tasks on time is essential for understanding the next topic.<br>Invest some time on expanding your knowledge and deepening your understanding beyond what’s directly given in class. Resources are provided, so use them. |
||
== Resources, literature and reference materials == |
== Resources, literature and reference materials == |
||
=== Open access resources === |
=== Open access resources === |
||
+ | * Sebastian Thrun. Probabilistic robotics. Communications of the ACM, 45(3):52–57, 2002. |
||
− | * Mozilla Developer Network: |
||
− | * Can I use …? Support tables for frontend technologies: |
||
− | * Frontend Developer Roadmap: |
||
− | * Fireship YouTube channel: |
||
− | * The Net Ninja YouTube channel: |
||
− | * You Don’t Know JS book: |
||
=== Closed access resources === |
=== Closed access resources === |
||
+ | * Robert Grover Brown, Patrick YC Hwang, et al. Introduction to random signals and applied Kalman filtering, volume 3. Wiley New York, 1992. |
||
− | * Maximilian Schwarzmüller courses on Udemy: |
||
+ | * Gregor Klancar, Andrej Zdesar, Saso Blazic, and Igor Skrjanc. Wheeled mobile robotics: from fundamentals towards autonomous systems. Butterworth-Heinemann, 2017. |
||
− | * Fireship Pro courses: |
||
+ | * Roland Siegwart, Illah Reza Nourbakhsh, and Davide Scaramuzza. Introduction to autonomous mobile robots. MIT press, 2011. |
||
− | * Frontend Masters: |
||
=== Software and tools used within the course === |
=== Software and tools used within the course === |
||
+ | * Provide at least 3 open/freemium access tools |
||
− | * Visual Studio Code: |
||
+ | * Gazebo https://gazebosim.org/home |
||
− | * Node.js: |
||
+ | * ROS, https://www.ros.org/ |
||
− | * Firebase: |
||
+ | * ROS2 https://docs.ros.org/en/foxy/index.html |
||
= Teaching Methodology: Methods, techniques, & activities = |
= Teaching Methodology: Methods, techniques, & activities = |
||
== Activities and Teaching Methods == |
== Activities and Teaching Methods == |
||
− | {| class="wikitable" |
||
− | |+ Teaching and Learning Methods within each section |
||
− | |- |
||
− | ! Teaching Techniques !! Section 1 !! Section 2 !! Section 3 |
||
− | |- |
||
− | | Problem-based learning (students learn by solving open-ended problems without a strictly-defined solution) || 1 || 1 || 1 |
||
− | |- |
||
− | | Project-based learning (students work on a project) || 1 || 1 || 1 |
||
− | |- |
||
− | | Modular learning (facilitated self-study) || 1 || 1 || 1 |
||
− | |- |
||
− | | Contextual learning (activities and tasks are connected to the real world to make it easier for students to relate to them) || 1 || 1 || 1 |
||
− | |- |
||
− | | Task-based learning || 1 || 1 || 1 |
||
− | |} |
||
{| class="wikitable" |
{| class="wikitable" |
||
|+ Activities within each section |
|+ Activities within each section |
||
Line 141: | Line 170: | ||
|- |
|- |
||
| Lectures || 1 || 1 || 1 |
| Lectures || 1 || 1 || 1 |
||
+ | |- |
||
+ | | Interactive Lectures || 1 || 1 || 1 |
||
|- |
|- |
||
| Lab exercises || 1 || 1 || 1 |
| Lab exercises || 1 || 1 || 1 |
||
+ | |- |
||
+ | | Development of individual parts of software product code || 1 || 1 || 1 |
||
|- |
|- |
||
| Individual Projects || 1 || 1 || 1 |
| Individual Projects || 1 || 1 || 1 |
||
+ | |- |
||
+ | | Quizzes (written or computer-based) || 1 || 1 || 1 |
||
|- |
|- |
||
| Discussions || 1 || 1 || 1 |
| Discussions || 1 || 1 || 1 |
||
Line 150: | Line 185: | ||
| Presentations by students || 1 || 1 || 1 |
| Presentations by students || 1 || 1 || 1 |
||
|- |
|- |
||
− | | |
+ | | Written reports || 1 || 1 || 1 |
|- |
|- |
||
− | | |
+ | | Experiments || 0 || 0 || 1 |
|} |
|} |
||
== Formative Assessment and Course Activities == |
== Formative Assessment and Course Activities == |
||
Line 164: | Line 199: | ||
! Activity Type !! Content !! Is Graded? |
! Activity Type !! Content !! Is Graded? |
||
|- |
|- |
||
+ | | Quiz || Control to reference pose<br>Control to reference pose via an intermediate point<br>Control to reference pose via an intermediate direction<br>Control by a straight line and a circular arc<br>Reference path control<br>Wheel kinematics constraints: rolling contact and lateral slippage<br><br><br> || 10 |
||
− | | Individual Assignments || 6 assignments, 1 of which is optional, each on the content of the lab right before it. || 1 |
||
+ | |- |
||
+ | | Individual Assignments || A1: Control by a straight line and a circular arc<br><br>Submit a report and source code:<br>- Experimenting on different scenarios <br>- Check problem formulation and implementation accuracy <br><br>A2: Parallel parking<br>Submit a report and source code:<br>- Checking the assumptions that are made to formulate the parallel parking scenario <br>- Check problem formulation and implementation accuracy <br><br>A3: Wheeled Mobile System Control: pose and orientation<br>Define a simple controller that is able to follow a given reference path where position and orientation have to be optimally controlled <br><br>Submit a report and source code:<br>- Experimenting on different scenarios <br>- Check problem formulation and implementation accuracy || 20 |
||
|} |
|} |
||
==== Section 2 ==== |
==== Section 2 ==== |
||
Line 172: | Line 209: | ||
! Activity Type !! Content !! Is Graded? |
! Activity Type !! Content !! Is Graded? |
||
|- |
|- |
||
+ | | Quiz || 1. Estimation from measurements and estimation from measurements and controls<br>2. Multidimensional Kalman filter with sensor fusion <br>3. Particle filter algorithm for state estimation <br> || 5 |
||
− | | Individual Assignments || 6 assignments, 1 of which is optional, each on the content of the lab right before it. || 1 |
||
+ | |- |
||
+ | | Individual Assignments || A1: Design different types of robot motion models and add appropriate state estimation techniques<br>Implementation of the motion model for car-like ground vehicle and simulate it in various environments <br>Submit a report and source code:<br>- Experimenting on different scenarios <br>- Check problem formulation and implementation accuracy <br><br>A2: Comparison of the accuracy of robot trajectory using several state estimation techniques <br>Implementation of Kalman filter and Particle filter based state estimation and compare them each other <br><br>Submit a report and source code:<br>- Checking the implementation accuracy <br>- Checking how importance sampling, resampling, and parameter estimation were implemented <br><br>A3: Robot pose estimation using Gaussian and Non-Gaussian based state estimation techniques<br>Develop Gaussian and Non-Gaussian-based state estimation technique for linear and nonlinear motion model for a following to reference path. <br><br>Submit a report and source code:<br>- Experimenting on different scenarios <br>- Check problem formulation and implementation accuracy <br>- Check the performance in terms of model accuracy || 15 |
||
|} |
|} |
||
==== Section 3 ==== |
==== Section 3 ==== |
||
Line 180: | Line 219: | ||
! Activity Type !! Content !! Is Graded? |
! Activity Type !! Content !! Is Graded? |
||
|- |
|- |
||
+ | | Quiz || 1. Formulation of Pinhole camera model<br>2. Understanding of the connection between the image plane and camera plane<br>3. Depth estimation using Epipolar geometry <br> || 5 |
||
− | | Individual Assignments || 6 assignments, 1 of which is optional, each on the content of the lab right before it. || 1 |
||
+ | |- |
||
+ | | Individual Assignments || A1: Estimate object size using a monocular camera <br>Develop an algorithm to detect object width and height for a specified camera parameter <br>Submit a report and source code:<br>- Experimenting on objects to check the accuracy of the estimation <br>- Check problem formulation and implementation accuracy <br><br>A2:Estimate the depth of the object using a point cloud and stereo camera<br>Given a point cloud estimate real object center point in the world coordinate frame <br><br>Submit a report and source code:<br>- Experimenting on different point clouds <br>- Checking the accuracy of the pose estimation <br>A3: Finding projection matrix using Direct Linear Transform (DLT)<br>This for checking the understanding of concepts of monocular vision: Pinhole camera model, image plane, camera lane, projection matrix, projective transformation. Given point cloud in the world coordinate, convert them into camera coordinates <br><br>Submit a report and source code:<br>- Checking the accuracy of the pose estimation <br>- Check problem formulation and implementation accuracy <br>- Compare results with different point clouds || 15 |
||
|} |
|} |
||
=== Final assessment === |
=== Final assessment === |
||
'''Section 1''' |
'''Section 1''' |
||
+ | # Can be a final exam, project defence, or some other equivalent of the final exam. |
||
− | # The final assessment takes the form of group project presentations for the course project they worked on throughout the semester. Every student in the group is expected to be able to justify the design decisions and explain what any part of the code does (to ensure fair distribution of load). The project is expected to incorporate all the best practices covered in lectures and labs and must be approved by the instructor before the students begin working on it. |
||
+ | # For the final assessment, students present the project work they have accomplished during the course. Below are the grading criteria for each section. |
||
+ | # 1. Kinematics of wheeled mobile robots: internal, external, direct, and inverse |
||
+ | # Differential drive kinematics |
||
+ | # Bicycle drive kinematics |
||
+ | # Rear-wheel bicycle drive kinematics |
||
+ | # Car(Ackermann) drive kinematics |
||
+ | # 2. Wheel kinematics constraints: rolling contact and lateral slippage |
||
+ | # 3. Wheeled Mobile System Control: pose and orientation |
||
+ | # 4. Robot pose estimation using Gaussian and Non-Gaussian based state estimation techniques |
||
+ | # 5. Different techniques for importance sampling in the particle filter |
||
+ | # 6. Applying Kalman Filter for nonlinear system |
||
+ | # 7. Concepts of EKF-based localization and particle filter-based localization |
||
'''Section 2''' |
'''Section 2''' |
||
Line 192: | Line 245: | ||
=== The retake exam === |
=== The retake exam === |
||
'''Section 1''' |
'''Section 1''' |
||
+ | # For the retake, students have to implement a given state estimation problem. First, need to formulate it with logical reasons for justifying it. Second, need to develop the proposed idea in a simulated setup. Answer a set of theoretical questions that comes from section 1, section 2, and section 3. |
||
− | # The retake uses the same criteria as the group project, except that it is individual rather than in groups. Its grade counts as the grade for the entire course, not just the final assessment. If there is no approved excuse (such as medical) for retaking the course, the maximum grade possible is B. |
||
'''Section 2''' |
'''Section 2''' |
||
Revision as of 13:30, 9 February 2023
Autonomous Mobile Robots
- Course name: Autonomous Mobile Robots
- Code discipline:
- Subject area: Robotics
Short Description
Autonomous mobile robots (AMRs) are rapidly evolving from workhorses to increasingly complex machines capable of performing challenging tasks such as industrial navigation. The course objective is to provide a few basic concepts of autonomous mobile robots. The main emphasis is on mobile robot kinematics and controls, different classes of robot localization techniques, various state estimation methods, and robot perception based on camera and lidar. The exercises of this course are based on ROS2 with a few types of wheeled robots. By the end of this course, you will be able to understand the basic building blockers of autonomous navigation. To succeed in this course, you should have programming experience in Python 3. x, ROS, and familiarity with basic concepts of Linear Algebra and Calculus.
Prerequisites
Prerequisite subjects
- CSE101
- CSE102
- CSE104 or CSE117
- CSE202 and CSE204
Prerequisite topics
- Programming experience in Python 3. x
- ROS (Robot Operating System)
- Familiarity with basic concepts of Linear Algebra and Calculus
Course Topics
Section | Topics within the section |
---|---|
1.0 Introduction & Motion |
|
2.0 Estimation |
|
3.0 Perception |
|
Intended Learning Outcomes (ILOs)
What is the main purpose of this course?
What is the main goal of this course formulated in one sentence? The main purpose of this course is to answer the following three questions What are autonomous mobile robots (AMRs)? Why do we need autonomous mobile robots (AMRs)? How do AMRs work?
ILOs defined at three levels
Level 1: What concepts should a student know/remember/explain?
By the end of the course, the students should be able to ...
- Different types of motion models for AMRs
- Types of robot localization techniques for linear and nonlinear systems
- To understand the environment by interpreting the sensor reading
- Several ways to estimate a robot’s system state vector for linear, nonlinear, and linearized systems
Level 2: What basic practical skills should a student be able to perform?
By the end of the course, the students should be able to ...
- Understand the vehicle motion model for the provided vehicle schema type
- Design linear or nonlinear controller for manueveing the robot appropriately
- Design sensor configuration and which sensors are more suitable for the given task
- Different ways to estimate system state vector for both linear and nonlinear systems
- Understand how to localize robots in GPS-denied environments
Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?
By the end of the course, the students should be able to ...
- Design a robot motion model for the provided robot
- Improve the robot state estimation accuracy
- Fuse several types of sensors and improve measurement accuracy
- Estimate depth using a stereo camera, and lidar
- Localize the robot in a GPS-denied environment
Grading
Course grading range
Grade | Range | Description of performance |
---|---|---|
A. Excellent | 90-100 | - |
B. Good | 75-89 | - |
C. Satisfactory | 50-74 | - |
D. Fail | 0-50 | - |
Course activities and grading breakdown
Activity Type | Percentage of the overall course grade |
---|---|
Assignment | 45 |
Quizzes | 20 |
In-class activity | 15 |
Exams | 20 |
Recommendations for students on how to succeed in the course
Participation is important. Showing up is the key to success in this course.
You will work individually, however, getting help from others is acceptable
Review lecture materials before classes to do well in quizzes.
Reading the recommended literature is optional and will give you a deeper understanding of the material.
Resources, literature and reference materials
Open access resources
- Sebastian Thrun. Probabilistic robotics. Communications of the ACM, 45(3):52–57, 2002.
Closed access resources
- Robert Grover Brown, Patrick YC Hwang, et al. Introduction to random signals and applied Kalman filtering, volume 3. Wiley New York, 1992.
- Gregor Klancar, Andrej Zdesar, Saso Blazic, and Igor Skrjanc. Wheeled mobile robotics: from fundamentals towards autonomous systems. Butterworth-Heinemann, 2017.
- Roland Siegwart, Illah Reza Nourbakhsh, and Davide Scaramuzza. Introduction to autonomous mobile robots. MIT press, 2011.
Software and tools used within the course
- Provide at least 3 open/freemium access tools
- Gazebo https://gazebosim.org/home
- ROS, https://www.ros.org/
- ROS2 https://docs.ros.org/en/foxy/index.html
Teaching Methodology: Methods, techniques, & activities
Activities and Teaching Methods
Learning Activities | Section 1 | Section 2 | Section 3 |
---|---|---|---|
Lectures | 1 | 1 | 1 |
Interactive Lectures | 1 | 1 | 1 |
Lab exercises | 1 | 1 | 1 |
Development of individual parts of software product code | 1 | 1 | 1 |
Individual Projects | 1 | 1 | 1 |
Quizzes (written or computer-based) | 1 | 1 | 1 |
Discussions | 1 | 1 | 1 |
Presentations by students | 1 | 1 | 1 |
Written reports | 1 | 1 | 1 |
Experiments | 0 | 0 | 1 |
Formative Assessment and Course Activities
Ongoing performance assessment
Section 1
Activity Type | Content | Is Graded? |
---|---|---|
Quiz | Control to reference pose Control to reference pose via an intermediate point Control to reference pose via an intermediate direction Control by a straight line and a circular arc Reference path control Wheel kinematics constraints: rolling contact and lateral slippage |
10 |
Individual Assignments | A1: Control by a straight line and a circular arc Submit a report and source code: - Experimenting on different scenarios - Check problem formulation and implementation accuracy A2: Parallel parking Submit a report and source code: - Checking the assumptions that are made to formulate the parallel parking scenario - Check problem formulation and implementation accuracy A3: Wheeled Mobile System Control: pose and orientation Define a simple controller that is able to follow a given reference path where position and orientation have to be optimally controlled Submit a report and source code: - Experimenting on different scenarios - Check problem formulation and implementation accuracy |
20 |
Section 2
Activity Type | Content | Is Graded? |
---|---|---|
Quiz | 1. Estimation from measurements and estimation from measurements and controls 2. Multidimensional Kalman filter with sensor fusion 3. Particle filter algorithm for state estimation |
5 |
Individual Assignments | A1: Design different types of robot motion models and add appropriate state estimation techniques Implementation of the motion model for car-like ground vehicle and simulate it in various environments Submit a report and source code: - Experimenting on different scenarios - Check problem formulation and implementation accuracy A2: Comparison of the accuracy of robot trajectory using several state estimation techniques Implementation of Kalman filter and Particle filter based state estimation and compare them each other Submit a report and source code: - Checking the implementation accuracy - Checking how importance sampling, resampling, and parameter estimation were implemented A3: Robot pose estimation using Gaussian and Non-Gaussian based state estimation techniques Develop Gaussian and Non-Gaussian-based state estimation technique for linear and nonlinear motion model for a following to reference path. Submit a report and source code: - Experimenting on different scenarios - Check problem formulation and implementation accuracy - Check the performance in terms of model accuracy |
15 |
Section 3
Activity Type | Content | Is Graded? |
---|---|---|
Quiz | 1. Formulation of Pinhole camera model 2. Understanding of the connection between the image plane and camera plane 3. Depth estimation using Epipolar geometry |
5 |
Individual Assignments | A1: Estimate object size using a monocular camera Develop an algorithm to detect object width and height for a specified camera parameter Submit a report and source code: - Experimenting on objects to check the accuracy of the estimation - Check problem formulation and implementation accuracy A2:Estimate the depth of the object using a point cloud and stereo camera Given a point cloud estimate real object center point in the world coordinate frame Submit a report and source code: - Experimenting on different point clouds - Checking the accuracy of the pose estimation A3: Finding projection matrix using Direct Linear Transform (DLT) This for checking the understanding of concepts of monocular vision: Pinhole camera model, image plane, camera lane, projection matrix, projective transformation. Given point cloud in the world coordinate, convert them into camera coordinates Submit a report and source code: - Checking the accuracy of the pose estimation - Check problem formulation and implementation accuracy - Compare results with different point clouds |
15 |
Final assessment
Section 1
- Can be a final exam, project defence, or some other equivalent of the final exam.
- For the final assessment, students present the project work they have accomplished during the course. Below are the grading criteria for each section.
- 1. Kinematics of wheeled mobile robots: internal, external, direct, and inverse
- Differential drive kinematics
- Bicycle drive kinematics
- Rear-wheel bicycle drive kinematics
- Car(Ackermann) drive kinematics
- 2. Wheel kinematics constraints: rolling contact and lateral slippage
- 3. Wheeled Mobile System Control: pose and orientation
- 4. Robot pose estimation using Gaussian and Non-Gaussian based state estimation techniques
- 5. Different techniques for importance sampling in the particle filter
- 6. Applying Kalman Filter for nonlinear system
- 7. Concepts of EKF-based localization and particle filter-based localization
Section 2
Section 3
The retake exam
Section 1
- For the retake, students have to implement a given state estimation problem. First, need to formulate it with logical reasons for justifying it. Second, need to develop the proposed idea in a simulated setup. Answer a set of theoretical questions that comes from section 1, section 2, and section 3.
Section 2
Section 3