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

Implement Feature Rich STANLEY Pathfollower #170

Closed
ClayJay3 opened this issue Jan 30, 2024 · 0 comments · Fixed by #187
Closed

Implement Feature Rich STANLEY Pathfollower #170

ClayJay3 opened this issue Jan 30, 2024 · 0 comments · Fixed by #187
Assignees
Labels
3-Star Indicates a moderate level of difficulty, requiring a good understanding of the topic or task. enhancement Requests for new features or improvements to existing features. testing Tasks related to creating or improving tests, including unit and integration tests.

Comments

@ClayJay3
Copy link
Collaborator

ClayJay3 commented Jan 30, 2024

Path Follower Namespace

Overview

Objective

The pathfollower namespace introduces a lateral Stanley controller class, providing a precise trajectory following mechanism. This controller enhances vehicle navigation, ensuring accurate lateral control during path following.

Stanley Controller Class

  • The Stanley controller is the cornerstone of the pathfollower namespace.
  • It implements a lateral control mechanism based on the Stanley control algorithm.
  • Designed for precise trajectory following, especially in scenarios with curvature.
  • When following a path the controller should not directly control the rover or send anything over rovecomm. ABSTRACT IT! Instead return a heading and drive power and let the state machine send the drive commands.

Implementation Details

Class Structure

  • The pathfollower namespace is currently structured around the Stanley controller class, but should allow for more algorithms to be added in the future.
  • Designed for extensibility, allowing seamless integration of new lateral control algorithms in the future.

Controller Logic

  • The Stanley controller autonomously adjusts the vehicle's steering angle for optimal trajectory following.
  • Integrates lateral control mechanisms tailored for dynamic path following scenarios.

Waypoint Integration

  • The stanley controller should strictly work with UTMCoordinate structs internally, but should be able to take in both UTM and GPS. Look at the geoops namespaces for conversion.
  • Method: SetPath(std::vector<geoops::UTMCoordinates or geoops::GPSCoordinate> vVector) for including waypoints in the path.

Path Following Algorithm

  • The lateral Stanley controller dynamically adjusts the vehicle's path, taking into account waypoint locations.
  • The controller ensures precise navigation, particularly in scenarios with varying curvature.
@ClayJay3 ClayJay3 added enhancement Requests for new features or improvements to existing features. 3-Star Indicates a moderate level of difficulty, requiring a good understanding of the topic or task. testing Tasks related to creating or improving tests, including unit and integration tests. labels Jan 30, 2024
@ClayJay3 ClayJay3 added this to the URC 2024 - Sprint 3 milestone Jan 30, 2024
@Kai-Shafe Kai-Shafe self-assigned this Jan 31, 2024
JSpencerPittman added a commit that referenced this issue Feb 8, 2024
Merge branch 'development' into branch 'topic/#170'
JSpencerPittman added a commit that referenced this issue Feb 16, 2024
JSpencerPittman added a commit that referenced this issue Feb 17, 2024
JSpencerPittman added a commit that referenced this issue Feb 17, 2024
@JSpencerPittman JSpencerPittman self-assigned this Feb 17, 2024
@JSpencerPittman JSpencerPittman linked a pull request Feb 17, 2024 that will close this issue
5 tasks
JSpencerPittman added a commit that referenced this issue Feb 17, 2024
Implement Feature Rich STANLEY Pathfollower
MRDT-Software pushed a commit that referenced this issue May 14, 2024
Merge branch 'development' into branch 'topic/#170'
MRDT-Software pushed a commit that referenced this issue May 14, 2024
MRDT-Software pushed a commit that referenced this issue May 14, 2024
MRDT-Software pushed a commit that referenced this issue May 14, 2024
MRDT-Software pushed a commit that referenced this issue May 14, 2024
Implement Feature Rich STANLEY Pathfollower
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3-Star Indicates a moderate level of difficulty, requiring a good understanding of the topic or task. enhancement Requests for new features or improvements to existing features. testing Tasks related to creating or improving tests, including unit and integration tests.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants