- Smooth the workflow
- Find a good linear algebra library
- Write operator overloads, extensions
- Test EJML and extensions
- Translate all src to Kotlin
- Remove Mat2 Vec2 Vec3
- Find command line compile and run commands
- Reproduce HW2 EKF SLAM in java using processing.
- Replace DMatrix2 with FMatrix2
- significance of time in odometry and laser scan struct
- scaling
- 3d rendering
- Extract obstacles
- RANSAC/LS
- Return end points not defining points
- Line fitting
- Fix partition code
- use IEP for better partitioning
- IEP
- RANSAC/LS
- Extract landmarks
- No need for checking intersections separately due to IEP
- Loose end detection in first stage
- Intersection detection in second stage
- Advanced landmark detection
- Intersection landmarks
- use perpendicular projections points
- check distances (IEP shortcoming)
- Loose endpoints
- Almost parallel to a long wall case. Just increase DISCONTINUITY THREASHOLD
- Simple block bug
- Intersection landmarks
- Estimate Sigma_N
- Give a control for some time and not errors, fit a gaussian with that
- Estimate Sigma_M
- Sigma_M needs the RANSAC/LS/Corner detector
- SLAM
- Propogation
- Augement
- Update
- Do all updates first and then augment all new landmarks
- Periodically clean landmarks which have very less number of hits
- Use estimated sigmas
- HitGrid
- Keep track of obstacles detected
- Is long needed for count? No.
- PRM/A* on Hitgrid
- Control
- Path smoothing
- Handle smooth differential drive agent. Maybe just use small speeds?
- SLAM is not as transparent as first half due to matrix gymnastics
- Landmarks and obstacles are not the same
- Here corners are landmarks and stored in slam state
- Lines are obstacles, endpoints stored only for planning
- Use time elapsed for robot to calculate dt for propagation, augment and update
- Ignore measurements while moving, do it only while stationary? Moving slowly is fine
- SLAM and planning can be developed independently
- Policy
- Initially no noise assumption, No more noise while staying stationary
- 0 control -> doesn't add more drift
- While true
- Come to stop and measure
- Find landmarks with good uncertainity (augment/update)
- Find obstacles with good uncertainity
- Plan a path
- Small valued controls -> less noise, move very slowly (propogate)
- RK4 vs Eular stability vs dt graph
- Estimating Sigma_m does it depend on distance?
- Estimating Sigma_n does it depend on controls?
- Estimating Sigma_m while stationary only if we are taking measurements while stationary
- Check the command line compilation
- Tune params
- Use proper += -= implementations
- Merge A * B^T operation as one
- Don't create new memory for get block??
- Circular obstacles