Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

Odometry #29

Closed
spamtactics opened this issue Oct 4, 2023 · 9 comments · May be fixed by #36
Closed

Odometry #29

spamtactics opened this issue Oct 4, 2023 · 9 comments · May be fixed by #36
Assignees

Comments

@spamtactics
Copy link

Creating the Inertial navigation system for the robot

@spamtactics
Copy link
Author

@WebCoder49
Copy link
Member

We are likely to be using a swerve drivetrain. These links (explanation of swerve drive and odometry description) may be useful.

@spamtactics
Copy link
Author

spamtactics commented Oct 4, 2023

@spamtactics
Copy link
Author

spamtactics commented Oct 4, 2023

Resolve why the SwerveDriveKinematics class is apparently undefined.
Nvm resolved it.

@WebCoder49 WebCoder49 moved this from To Do to In Progress in 2024 Oct 7, 2023
@Cubanos1
Copy link

Example code for how to use gyrocscope according to user guide of 'micro navigation sensor'
https://pdocs.kauailabs.com/navx-mxp/examples/

@10jwang
Copy link

10jwang commented Oct 11, 2023

Overview of what we have to do:

  1. Hardware Setup:
    Ensure your robot is equipped with the necessary sensors and hardware, including an IMU, wheel encoders, and motors. You should also have a microcontroller or computer onboard to process data and control the robot.

  2. Sensor Calibration:
    Calibrate your IMU and odometry sensors to ensure accurate data. This involves adjusting for biases, scale factors, and alignment errors. Each sensor may have its own calibration procedure.

  3. Sensor Data Fusion:
    Combine data from the IMU and odometry to estimate the robot's pose (position and orientation) over time. Sensor fusion algorithms like Extended Kalman Filters (EKF) or sensor fusion libraries (e.g., Robot Operating System - ROS) can be used to integrate data from these sensors.

  4. Mapping:
    Create a map of the environment where the robot will navigate. This could be a pre-built map or a map created as the robot explores the environment (SLAM - Simultaneous Localization and Mapping).

  5. Path Planning:
    Implement a path planning algorithm that generates a path from point A to point B on the map. Common algorithms include A*, Dijkstra's, or Rapidly-exploring Random Trees (RRT).

  6. Control System:
    Develop a control system that translates the desired path into motor commands for your robot. This system will use feedback from the sensors (IMU and odometry) to adjust the robot's movement in real-time to follow the path accurately. PID controllers are commonly used for this purpose.

  7. Waypoint Following:
    Divide the planned path into waypoints and ensure your robot can navigate to each waypoint with precision. The IMU and odometry data can help with real-time corrections to stay on track.

  8. Obstacle Avoidance:
    Implement obstacle detection and avoidance mechanisms using additional sensors like ultrasonic or LIDAR, or by integrating this data with your IMU and odometry information.

  9. Testing and Tuning:
    Conduct extensive testing to ensure the robot can reliably move from point A to point B. Fine-tune your algorithms and parameters based on the robot's actual performance..

  10. Integration and Communication:
    Ensure that the control software can communicate with other systems or interfaces, as needed, to monitor the robot's progress or change its instructions in real time.

@spamtactics
Copy link
Author

spamtactics commented Oct 12, 2023

@spamtactics spamtactics linked a pull request Oct 25, 2023 that will close this issue
@WebCoder49
Copy link
Member

For your information, we are using a NavX2 MXP gyroscope. Sorry if I didn't make this clear.

@WebCoder49 WebCoder49 moved this from In Progress to To Test in 2024 Nov 19, 2023
@WebCoder49
Copy link
Member

Offseason task

@WebCoder49 WebCoder49 closed this as not planned Won't fix, can't repro, duplicate, stale Jan 25, 2024
@github-project-automation github-project-automation bot moved this from To Test to Done in 2024 Jan 25, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants