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

feat(auto_parking): automated valet parking implementation #6776

Closed
wants to merge 8 commits into from

Conversation

4swinv
Copy link
Contributor

@4swinv 4swinv commented Apr 9, 2024

Description

This PR contains the initial implementation for the avp module.
The auto_parking module is made as a separate node under planning. The avp consists of two phases, 1) setting a goal to the nearest parking lot, driving to parking lot and 2) searching for a free parking space once inside the parking lot. The module publishes appropriate goal poses during the different phases. The following nodes are required to be running for auto_parking_node:

  • freespace_planner
  • goal_planner and start_planner
  • scenario_selector

and related modules. The scenario_selector directs either freespace_planner or goal_planner and start_planner to generate trajectory based on goal pose published by auto_parking.

Phase 1:
Depending on initial pose when the auto_parking feature is engaged, a goal pose is set at the exit of the parking lot. This pose is first found by getting nearest parking lot, parking spaces inside and lanelets inside the parking lot from the lanelet map. By ordering the lanelets based on routing distance from current position, the exit lanelet is found. Ideally the auto_parking feature should be engaged from outside parking lot so the ordering is proper. The ego vehicle then drives to parking lot exit lanelet, passing through the parking lot. This driving can be in LANEDRIVING or PARKING scenario depending on whether start pose is already inside a parking lot.

Phase 2:
Once inside the parking lot, while driving to exit lanelet goal, the algorithm searches for a free parking space using the astar. Once a free space is found a new goal is set and trajectory is generated by the freespace_planner as scenario is PARKING.

Auto Park Node Configurations

th_arrived_distance_m: 1.0 // threshold for arrival at goal
th_parking_space_distance_m: 10.0 // search parking spaces within this radius from ego
update_rate: 5.0 // AutoParking node timer rate per second
vehicle_shape_margin_m: 0.2 // Vehicle shape margin for astar search

# fpa configs
.
.
.

The auto_parking node is also integrated with rviz allowing you to trigger auto parking from the simulator interface. ENABLE activates the auto parking, clicking the STOP button disables it.

image

Demo:

  • Multiple obstacles in parking space
target.webm
  • Costmap only sees one obstacle in the beginning
target2.webm
  • Dynamic avoidance when introducing sudden obstacles and re-planning
target3.webm

Related links

Related launch PR: https://github.com/autowarefoundation/autoware_launch/pull/949/files

This PR requires the updated astar implementation, related PR's include:

The implementation working is also described here:

Tests performed

Tested on multiple start pose cases inside and outside parking lot. Multiple patterns of obstacles also tested. The rviz panel also accounts for when start pose is not initialized and shows right state after finishing autoparking.

Notes for reviewers

All PR's in related links are pre-requisites for this PR +
launch PR: https://github.com/autowarefoundation/autoware_launch/pull/949/files

Interface changes

New services, topics added for auto_parking. tier4_state_rviz_plugin modified.

Effects on system behavior

Allows automated parking from a valid start pose.

Pre-review checklist for the PR author

The PR author must check the checkboxes below when creating the PR.

In-review checklist for the PR reviewers

The PR reviewers must check the checkboxes below before approval.

  • The PR follows the pull request guidelines.
  • The PR has been properly tested.
  • The PR has been reviewed by the code owners.

Post-review checklist for the PR author

The PR author must check the checkboxes below before merging.

  • There are no open discussions or they are tracked via tickets.
  • The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

@github-actions github-actions bot added component:planning Route planning, decision-making, and navigation. (auto-assigned) component:launch Launch files, scripts and initialization tools. (auto-assigned) component:common Common packages from the autoware-common repository. (auto-assigned) labels Apr 9, 2024
@github-actions github-actions bot added the type:documentation Creating or refining documentation. (auto-assigned) label Apr 9, 2024
Copy link

stale bot commented Jun 10, 2024

This pull request has been automatically marked as stale because it has not had recent activity.

@stale stale bot added the status:stale Inactive or outdated issues. (auto-assigned) label Jun 10, 2024
@xmfcx
Copy link
Contributor

xmfcx commented Dec 10, 2024

@takayuki5168 @mkquda hello,

@NorahXiong from AutoCore will take over this task, do you have anything to share on this PR?

@stale stale bot removed the status:stale Inactive or outdated issues. (auto-assigned) label Dec 10, 2024
@mkquda
Copy link
Contributor

mkquda commented Dec 11, 2024

@takayuki5168 @mkquda hello,

@NorahXiong from AutoCore will take over this task, do you have anything to share on this PR?

@xmfcx
Its great to have someone work on this feature, I'm curious is the intention to continue on the work done in this PR, or use it as reference point?

I think ideally it would be better to use this PR as reference for coming up with a well defined set of requirements and specifications for the AVP feature.

You can also refer to these previous discussions about AVP which can give some insight:

@xmfcx
Copy link
Contributor

xmfcx commented Dec 11, 2024

I was wondering if this could be revived with a small effort and got merged. But I see that this is a large scale project to enable AVP and we don't have an urgent need for this feature.

Along with the other parking related PRs, I thought this was a simple addition.

I think we can close this PR and just tag it as a reference under the discussions above.

cc. @mitsudome-r @NorahXiong @mkquda

@xmfcx xmfcx closed this Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:common Common packages from the autoware-common repository. (auto-assigned) component:launch Launch files, scripts and initialization tools. (auto-assigned) component:planning Route planning, decision-making, and navigation. (auto-assigned) type:documentation Creating or refining documentation. (auto-assigned)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants