The University of Pennsylvania offers the MOOC Robotics: Estimation and Learning which is available on Coursera. The course is self-paced and instructed by Daniel D. Lee. It is also part of the Robotics Specialization.
This repository showcases my progress in this course. However, I must adhere to the rules and guidelines set by the Coursera Honor Code, which prohibit me from providing complete answers to the quizzes and computer assignments. As a result, this repository only includes general summaries of the course topics, descriptions of the assignments, and the final results and procedures.
Nevertheless, I am more than willing to offer assistance and support to other students or enthusiasts privately. If you have any questions or need guidance, please don't hesitate to reach out to me. Additionally, I am particularly enthusiastic about collaborating on robotics systems, specifically learning systems, probabilistic methods, and other topics covered in this course. Whether it's providing help or being part of a larger team, I would be thrilled to contribute to solving these challenges.
The first week of the Robotics Estimation and Learning course covered Gaussian models, which are essential for measuring and expressing uncertainty in distributions. The week began with an exploration of one-dimensional Gaussian distributions, focusing on their use in estimation and maximum likelihood estimation. This was followed by an introduction to multivariable Gaussian distributions, which extend the concept to higher dimensions. The week concluded with a study of Gaussian mixture models, a powerful tool for modeling complex distributions that cannot be represented by a single Gaussian.
This week's assignment focuses on estimating a Gaussian model for detecting a yellow ball based on its color. Color samples will be collected from training images to estimate model parameters, such as the mean and covariance. Next, a function should be created to detect the ball's color in new images, producing a binary segmented image and identifying the ball's center location.
The second week focused on the Kalman Filter and its applications. The use of the Kalman Filter to model Linear Dynamical Systems and track uncertainty over time was explored. Techniques for estimation, including posterior distributions and Maximum-A-Posterior Estimation, were introduced. Additionally, methods for generalizing Kalman Filters to handle nonlinearities were discussed through various algorithms and models.
This week's assignment involved completing a function that predicts the future position of a ball using a Kalman Filter. The function kalmanFilter(t, x, y, state, param, previous_t)
will take sensor data and parameters as input and return the predicted x and y positions of the ball, 330ms into the future. The task requires implementing the function to track a four-dimensional state, including the ball's position and velocity, without hardcoding the parameters.
In this section, different types of maps were explored, with a focus on metric maps used to measure objects in the environment. The occupancy grid algorithm was introduced, showing how maps can be built incrementally using sensor data from a robot. Additionally, three-dimensional mapping techniques using depth camera sensors were discussed, illustrating how accurate 3D representations of environments can be created while accounting for uncertainty.
Week's assignment involved implementing the Occupancy Grid Mapping algorithm to create a 2D floor map. Range sensor readings and robot pose data were used to build the map. A function was completed to take these inputs and return a 2D occupancy grid map, with parameters provided externally. Practice data and test scripts were supplied to assist in developing and visualizing the algorithm.
Odometry modeling, sensor registration, and particle filters were included in this section. Firstly, it talked about dead reckoning approach and its limitations. To rectify the flaws in the this method, it showed how LiDAR data can be used as map registration. Eventually, through adding uncertainty and the use of particle filters, the localization problem was solved.
This week's assignment involved implementing a particle filter for pose tracking in 2D space.
Here are the key points of the Coursera Honor Code summarized in bullet points:
- Complete all assignments and exams on your own without unauthorized assistance.
- Do not share or distribute course materials, including assignments or exams, without explicit permission.
- Be honest in all academic interactions, including discussions and collaborations with other learners.
- Properly attribute and cite any external sources used in your work.
- Adhere to the specific policies and guidelines outlined by each course and instructor.
It's important to note that these points are a general summary, and you should refer to the specific honor code provided by Coursera for more detailed information. You’ll find the entire Coursera Honor Code here.