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 & Map Publishing #190

Open
wants to merge 53 commits into
base: main
Choose a base branch
from

Conversation

pliam1105
Copy link
Contributor

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)
…n and buoy positions in state, with the full covariance matrix
…ently or doing SLAM with the GPS and the object detections to track them all together, including covariances between them
@pliam1105 pliam1105 added the enhancement New feature or request label Feb 12, 2025
@pliam1105 pliam1105 requested a review from toyat522 February 12, 2025 01:59
@pliam1105 pliam1105 self-assigned this Feb 12, 2025
@pliam1105 pliam1105 linked an issue Feb 12, 2025 that may be closed by this pull request
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.

Improve obstacle tracking
1 participant