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

Issues #17 and #18 #179

Merged
merged 10 commits into from
Dec 2, 2021
Merged

Issues #17 and #18 #179

merged 10 commits into from
Dec 2, 2021

Conversation

jim-works
Copy link
Contributor

This branch contains the implementation and tests for issues #17 and #18

@jim-works jim-works added the BPC label Nov 18, 2021
@jim-works jim-works self-assigned this Nov 18, 2021
@joshmackwilliams
Copy link

That last commit is to resolve a trivial merge conflict in .gitignore. I will actually review this tomorrow before the meeting.

@@ -0,0 +1,8 @@
Path planner {#path-planner}
Copy link
Contributor

Choose a reason for hiding this comment

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

Love the design doc, thanks for doing this.

#include <lanelet2_core/LaneletMap.h>
#include <lanelet2_core/primitives/Point.h>
#include <lanelet2_core/geometry/LineString.h>
#include <autoware_auto_msgs/msg/trajectory.hpp>
Copy link
Contributor

Choose a reason for hiding this comment

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

We should transition to using voltron_msgs in the future, migrating and modifying Autoware msg files as necessary. This gives us greater clarity and control over our message formats. And I suspect that Autoware's message approach can be simplified for our uses...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sounds good

@@ -0,0 +1,50 @@
// Copyright 2020 The Autoware Foundation
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this Autoware code? I'm not seeing it in their repo.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

no, I initially copied their class and forgot to remove this comment, oops

trajectory_point.longitudinal_velocity_mps = 0;
return trajectory_point;
}
//resolution should be < 0.1 to get good approximation
Copy link
Contributor

Choose a reason for hiding this comment

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

0.1 what? Meters? You used "units" earlier, but the Lanelet data is stored in meters, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It should be 0.1 of whatever units we decide to use, so meters is fine. It's more of a note to myself, for the future from my testing earlier. Will be more robust later.

Copy link
Contributor

@wheitman wheitman left a comment

Choose a reason for hiding this comment

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

Great work, Jim. Please make these quick fixes as soon as you're able. @joshmackwilliams, please add any comments. Thanks!

return lanelet::utils::createMap({ll});
}

HADMapRoute getARoute(const int64_t lane_id, const float32_t length)
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you add an explanatory comment for this function?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yep

* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
Copy link
Contributor

Choose a reason for hiding this comment

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

@jim-works would you include the GPL v3 license text at the end of our LICENSE file, along with an explanatory note of which part of our code uses the file, e.g. "Tino Kluge's cubic spline library", including a link to their site (https://kluge.in-chemnitz.de/opensource/spline/)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure

Copy link

@joshmackwilliams joshmackwilliams left a comment

Choose a reason for hiding this comment

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

Looks good to me

@wheitman
Copy link
Contributor

@jim-works please add that license text and function description, then we can merge. Thanks 👍

@jim-works
Copy link
Contributor Author

Apologies that this took so long, school was killing me this week. Also, I did not change to voltron_msgs, it didn't look like the package had the trajectory struct I was using (unless I am missing something?)

Copy link
Contributor

@wheitman wheitman left a comment

Choose a reason for hiding this comment

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

Looks good, thanks Jim.

@wheitman
Copy link
Contributor

wheitman commented Dec 2, 2021

Apologies that this took so long, school was killing me this week. Also, I did not change to voltron_msgs, it didn't look like the package had the trajectory struct I was using (unless I am missing something?)

Right, I meant that more as a todo for future work. Moving to a unified message library under voltron_msgs will be a team-wide effort, but you don't have to worry about that at the moment.

@wheitman wheitman merged commit 68684ba into dev Dec 2, 2021
@wheitman wheitman deleted the feature_basic_path_generation branch December 2, 2021 23:07
wheitman pushed a commit that referenced this pull request Jan 24, 2022
* Initial draft, with quite a few TODOs remaining

* Revise the README

This version of the readme is much shorter and simpler than my initial idea. The reason is, if someone is really interested in using or running our software, they need to be directed to the wiki anyways. Perhaps a later update could include build and run instructions, but any instructions we put here will need to be tested on machines other than the quad to ensure accuracy.

* Add I2C interface and GPS node

* Feature: basic safety manager (#176)

* Implement hello-world package safety_manager

* Create service interfaces for safety manager

* Add stubs for test client and server

* First draft of TestServer

* First draft of TestClient

* Add simple tests for TestClient and TestServer

* Create basic safety manager with dummy logging

* safety manager now logs some info about events

* simple tests for the safety manager

* Add watchdog schematic (#180)

* Add basic sidecar design notes

* Add schematic

* Automatic testing with GH Actions (#182)

* Add automatic testing workflow (version 1)

* Fix syntax error

* Skip packages and run on pushes

* Rosdep will now ignore errors

* Install colcon-common-extensions and vcstool

* Install colcon mixins, as in ROS dockerfile

* Removed troublesome packages

On doing a docker build, the mpc_controller and
test_trajectory_following packages were causing rosdep to throw
errors. After talking with Will, it seems we don't actually need
these packages, so they have been deleted.

* Use docker for build and test

* Don't run on pushes

* Remove *_nodes packages from testing

* Retest up to 8 times on failure

* Add sleep time to safety manager test

* Issues #17 and #18 (#179)

* added path_planner package, cubic spline implementation, and offset spline header

* - added library for splines
- added wrapper for position splines
- added lane center line->spline generation

* fix typo

* added points for lane boundaries

* fix compiler errors and some other stuff i forgot

* updated formatting + tests

* fix tests and add more comments

* Update license with GPL and add test function comment

Co-authored-by: Joshua Williams <joshmackwilliams@protonmail.com>

* Hotfix: actually poll messages & put them into a non-null buffer

* Fix build error with symlink_install and object libs (#203)

* Add lio-sam and ring channel emulation

* Working initially

* Finish mapping tweaks, working in sim

* Create "hubble"  localization package

* Add saveMap servicewa

* Update GPS node to use Odom msg

* Add data_collection.launch.py

* Add grid_divider, update GPS node

* Add gomentum pcds, grid_divider script

* Add grid_divider, update hubble, gps
- grid_divider is script to divide AND FILTER a big PCD map
- Hubble now uses python, will move back to C++ later
- Fix seg fault in GPS (thanks to Avery)

* Remove maps using .gitignore

* Remove useless script

* Add to mapping nodes

* Switch from IMU integration to ZED odom

* Add mapping GPS debug

* Finish basic mapping with lio_sam. Needs filtering

* Add map loader

* Add lanelet visualization

* Cleanup, add deviation_report skeleton

* Remove buggy junk from Autoware

* Rename lio_sam, fix safety_manager static build

* Finish working prototype of icp_nudger

* Add maps for gomentum

* Add campus map cells; switch nudger to NDT

* Update robot_localization

* Change state_estiamtion to hubble. Docker works!

* Add robot localization

* Update route planner to new design (#206)

* trim autoware code

* Route planner logic and basic testing

* Node and message update

* Cleanup and docs

* Disable linter on lanetlet2_global_planner

Co-authored-by: Joshua Williams <joshmackwilliams@protonmail.com>

Thank you @EganJ !

* Disable linting in all packages

Co-authored-by: Avery Bainbridge <axb200157@utdallas.edu>
Co-authored-by: Will Heitman <Will.Heitman@UTDallas.edu>
Co-authored-by: Avery <11591624+a-bainbridge@users.noreply.github.com>
Co-authored-by: Jim <80440382+jim-works@users.noreply.github.com>
Co-authored-by: Egan <34986820+EganJ@users.noreply.github.com>
wheitman pushed a commit that referenced this pull request Jan 25, 2022
* Release 1.1 (#196)

* Initial draft, with quite a few TODOs remaining

* Revise the README

This version of the readme is much shorter and simpler than my initial idea. The reason is, if someone is really interested in using or running our software, they need to be directed to the wiki anyways. Perhaps a later update could include build and run instructions, but any instructions we put here will need to be tested on machines other than the quad to ensure accuracy.

* Add I2C interface and GPS node

* Feature: basic safety manager (#176)

* Implement hello-world package safety_manager

* Create service interfaces for safety manager

* Add stubs for test client and server

* First draft of TestServer

* First draft of TestClient

* Add simple tests for TestClient and TestServer

* Create basic safety manager with dummy logging

* safety manager now logs some info about events

* simple tests for the safety manager

* Add watchdog schematic (#180)

* Add basic sidecar design notes

* Add schematic

* Automatic testing with GH Actions (#182)

* Add automatic testing workflow (version 1)

* Fix syntax error

* Skip packages and run on pushes

* Rosdep will now ignore errors

* Install colcon-common-extensions and vcstool

* Install colcon mixins, as in ROS dockerfile

* Removed troublesome packages

On doing a docker build, the mpc_controller and
test_trajectory_following packages were causing rosdep to throw
errors. After talking with Will, it seems we don't actually need
these packages, so they have been deleted.

* Use docker for build and test

* Don't run on pushes

* Remove *_nodes packages from testing

* Retest up to 8 times on failure

* Add sleep time to safety manager test

Co-authored-by: Avery Bainbridge <axb200157@utdallas.edu>
Co-authored-by: Will Heitman <Will.Heitman@UTDallas.edu>
Co-authored-by: Avery <11591624+a-bainbridge@users.noreply.github.com>

* Release 1.2 (#216)

* Initial draft, with quite a few TODOs remaining

* Revise the README

This version of the readme is much shorter and simpler than my initial idea. The reason is, if someone is really interested in using or running our software, they need to be directed to the wiki anyways. Perhaps a later update could include build and run instructions, but any instructions we put here will need to be tested on machines other than the quad to ensure accuracy.

* Add I2C interface and GPS node

* Feature: basic safety manager (#176)

* Implement hello-world package safety_manager

* Create service interfaces for safety manager

* Add stubs for test client and server

* First draft of TestServer

* First draft of TestClient

* Add simple tests for TestClient and TestServer

* Create basic safety manager with dummy logging

* safety manager now logs some info about events

* simple tests for the safety manager

* Add watchdog schematic (#180)

* Add basic sidecar design notes

* Add schematic

* Automatic testing with GH Actions (#182)

* Add automatic testing workflow (version 1)

* Fix syntax error

* Skip packages and run on pushes

* Rosdep will now ignore errors

* Install colcon-common-extensions and vcstool

* Install colcon mixins, as in ROS dockerfile

* Removed troublesome packages

On doing a docker build, the mpc_controller and
test_trajectory_following packages were causing rosdep to throw
errors. After talking with Will, it seems we don't actually need
these packages, so they have been deleted.

* Use docker for build and test

* Don't run on pushes

* Remove *_nodes packages from testing

* Retest up to 8 times on failure

* Add sleep time to safety manager test

* Issues #17 and #18 (#179)

* added path_planner package, cubic spline implementation, and offset spline header

* - added library for splines
- added wrapper for position splines
- added lane center line->spline generation

* fix typo

* added points for lane boundaries

* fix compiler errors and some other stuff i forgot

* updated formatting + tests

* fix tests and add more comments

* Update license with GPL and add test function comment

Co-authored-by: Joshua Williams <joshmackwilliams@protonmail.com>

* Hotfix: actually poll messages & put them into a non-null buffer

* Fix build error with symlink_install and object libs (#203)

* Add lio-sam and ring channel emulation

* Working initially

* Finish mapping tweaks, working in sim

* Create "hubble"  localization package

* Add saveMap servicewa

* Update GPS node to use Odom msg

* Add data_collection.launch.py

* Add grid_divider, update GPS node

* Add gomentum pcds, grid_divider script

* Add grid_divider, update hubble, gps
- grid_divider is script to divide AND FILTER a big PCD map
- Hubble now uses python, will move back to C++ later
- Fix seg fault in GPS (thanks to Avery)

* Remove maps using .gitignore

* Remove useless script

* Add to mapping nodes

* Switch from IMU integration to ZED odom

* Add mapping GPS debug

* Finish basic mapping with lio_sam. Needs filtering

* Add map loader

* Add lanelet visualization

* Cleanup, add deviation_report skeleton

* Remove buggy junk from Autoware

* Rename lio_sam, fix safety_manager static build

* Finish working prototype of icp_nudger

* Add maps for gomentum

* Add campus map cells; switch nudger to NDT

* Update robot_localization

* Change state_estiamtion to hubble. Docker works!

* Add robot localization

* Update route planner to new design (#206)

* trim autoware code

* Route planner logic and basic testing

* Node and message update

* Cleanup and docs

* Disable linter on lanetlet2_global_planner

Co-authored-by: Joshua Williams <joshmackwilliams@protonmail.com>

Thank you @EganJ !

* Disable linting in all packages

Co-authored-by: Avery Bainbridge <axb200157@utdallas.edu>
Co-authored-by: Will Heitman <Will.Heitman@UTDallas.edu>
Co-authored-by: Avery <11591624+a-bainbridge@users.noreply.github.com>
Co-authored-by: Jim <80440382+jim-works@users.noreply.github.com>
Co-authored-by: Egan <34986820+EganJ@users.noreply.github.com>

Co-authored-by: Avery Bainbridge <axb200157@utdallas.edu>
Co-authored-by: Will Heitman <Will.Heitman@UTDallas.edu>
Co-authored-by: Avery <11591624+a-bainbridge@users.noreply.github.com>
Co-authored-by: Jim <80440382+jim-works@users.noreply.github.com>
Co-authored-by: Egan <34986820+EganJ@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants