Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EKF/SLAM Object Tracking #189

Closed
wants to merge 49 commits into from

Conversation

pliam1105
Copy link
Contributor

@pliam1105 pliam1105 commented Feb 7, 2025

I implemented an Extended Kalman Filter object tracking algorithm with maximum-likelihood (ML) matching, performing Bayesian Inference to the predictions of each individual buoy with the (range, bearing) detections of the obstacles from 'bbox_project_pcloud' for the measurement updates, also using the global GPS position and IMU-calculated angle. It can also keep track of the covariance of the positions of the buoys as well as the robot pose and orientation, computing the full (2N+3)x(2N+3) covariance matrix and perform motion updates as well, to hopefully also solve the double detection problem which is especially apparent when the robot is turning. The latter capability can be toggled to be on and off using the appropriate parameter.

…tected point clouds from the image to the point cloud.
…de each detected object's bounding box (when projected onto the image), with the respective labels and probabilities, colcon build succesful, didn't test yet
…throws some out of range errors but I catched them and made them warnings and it seems to work fine)
…ions in resize, may be the wrong order in terms of channels so may need to change the order both in resize() and in at() again), seems to correctly select the points in the objects detected
…l meaningful clusters based on the detections
…on, need to find a euclidean clustering algorithm for n-dimensional data or with customizable distance function, or just one that takes color into account (there are some in PCL but they mostly rely on color thresholds or difference limits rather than adding their squared difference to the distance) or implement it from scratch (and KD-tree from scratch?)
…izing them in RViz (not tested or built yet)
…formulas for the choosing & matching metrics
…n the actual object, but more testing/tuning would be good)
… by publishing unorganized point clouds (channels don't matter anyways in visualization)
…le_detector.cpp that will serve the same purpose here) for untracked & tracked obstacle map publishing
…cleMap message format (and visualized in RViz appropriately)
…y and pretty consistent with occlusions/missing objects for some time, especially when out of camera FoV, though not perfect, may need fine-tuning)
…sensor measurements and navigation message pose considered to be accurate so no motion updates, just the map), not built or tested yet, WIP
…o fix the SLAM implementation (most probably the initialization of the covariance for new objects) to resolve the overflow (?) errors
…e duplicates, maybe including the robot pose in the kalman filter may help with that)
@pliam1105 pliam1105 added the enhancement New feature or request label Feb 7, 2025
@pliam1105 pliam1105 requested a review from toyat522 February 7, 2025 04:44
@pliam1105 pliam1105 self-assigned this Feb 7, 2025
@pliam1105 pliam1105 changed the title EKF Object Tracking - Independent Buoy Predictions EKF/SLAM Object Tracking Feb 12, 2025
@pliam1105 pliam1105 closed this Feb 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant