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

991 gps path follow #1046

Merged
merged 7 commits into from Oct 15, 2022
Merged

991 gps path follow #1046

merged 7 commits into from Oct 15, 2022

Conversation

Ezward
Copy link
Contributor

@Ezward Ezward commented Oct 10, 2022

Issue 991

  • Refactor gps part so serial input is done in a separate part. The gps part only parses NMEA and outputs position in meters
  • Add a part for reading serial input so serial code can be reused.
  • Add a part for reading and writing delimited text files (like CSV or TSV)
  • Update the path_follow template
    • Support the same cameras, drivetrains, odometry and game controllers used by the complete.py template.
    • allows use of web ui and controller buttons to set recording mode, load/save/reset paths, reset origin.
    • use GPS as a source of (x, y) position.

This is been cherry picked from 921-gps-logger branch, which was successfully used in the Sept. 2022 Fremont outdoor race. See Ezward on GPS for a complete description of how the car and software were setup to use this branch.

Ezward and others added 5 commits October 8, 2022 14:58
- logger to log arbitrary memory properties
- pipe allows renaming of memory properties
- serial_port.py reads lines from a serial port and puts then in named memory properties for use by other parts.  This makes it easier to write a part and unit test the part by separating our the serial port.  It also makes the serial port code reusable.
- text_writer.py will write data to CSV/TSV files
- gps.py now uses serial_part.py to read from serial port, so it does not need to know about the specifics of how it gets an nmea sentence.
- path now allows saving as either a Rosbag or a delimited test file, like a CSV or a TSV.
- uses the add_**** methods in complete.py to add camera, controller, drivetrain, odometry, etc. so it supports that same hardware as the complete.py template.
- adds gps line following.
- a large change to the user flow to make it more like the complete.py network, where there is a 'user' mode to save waypoints and an 'autopilot' mode to drive autonomously.
@TCIII
Copy link
Contributor

TCIII commented Oct 12, 2022

@Ezward,

I have empirically tested the 921-gps-path-follow branch with my GPS equipped Traxxas E-Maxx Truck chassis and found it to perform as advertised.
Today I ran 10 laps using a path I recorded yesterday afternoon and did so without crashing running the 921-gps-path-follow branch.
The sky was overcast and the HDOP was around 0.7 and PDOP was around 1.3 due to the overcast skies.

TCIII

@Ezward Ezward self-assigned this Oct 12, 2022
Copy link
Contributor

@DocGarbanzo DocGarbanzo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CI tests need to pass. Otherwise, looks good to me, only minor comments.

donkeycar/parts/path.py Outdated Show resolved Hide resolved
donkeycar/parts/path.py Show resolved Hide resolved
donkeycar/parts/path.py Show resolved Hide resolved
donkeycar/parts/path.py Outdated Show resolved Hide resolved
donkeycar/parts/pipe.py Outdated Show resolved Hide resolved
donkeycar/parts/gps.py Outdated Show resolved Hide resolved
donkeycar/parts/gps.py Show resolved Hide resolved
donkeycar/parts/gps.py Outdated Show resolved Hide resolved
donkeycar/parts/gps.py Show resolved Hide resolved
donkeycar/parts/gps.py Show resolved Hide resolved
Copy link
Contributor

@DocGarbanzo DocGarbanzo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

donkeycar/parts/serial_port.py Outdated Show resolved Hide resolved
@DocGarbanzo DocGarbanzo merged commit 4e6cc64 into main Oct 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GPS path follow Issues regarding the path_follow template
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants