-
Notifications
You must be signed in to change notification settings - Fork 658
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
Conversation
This pull request has been automatically marked as stale because it has not had recent activity. |
@takayuki5168 @mkquda hello, @NorahXiong from AutoCore will take over this task, do you have anything to share on this PR? |
@xmfcx 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: |
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. |
Description
This PR contains the initial implementation for the avp module.
The
auto_parking
module is made as a separate node underplanning
. 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 forauto_parking_node
:freespace_planner
goal_planner
andstart_planner
scenario_selector
and related modules. The
scenario_selector
directs eitherfreespace_planner
orgoal_planner
andstart_planner
to generate trajectory based on goal pose published byauto_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 theauto_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 isPARKING
.Auto Park Node Configurations
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.Demo:
target.webm
target2.webm
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.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
After all checkboxes are checked, anyone who has write access can merge the PR.