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

PullOver/Out limitation and development plan #3223

Closed
3 tasks done
kosuke55 opened this issue Mar 30, 2023 · 16 comments
Closed
3 tasks done

PullOver/Out limitation and development plan #3223

kosuke55 opened this issue Mar 30, 2023 · 16 comments
Assignees
Labels
component:planning Route planning, decision-making, and navigation. (auto-assigned) type:new-feature New functionalities or additions, feature requests.

Comments

@kosuke55
Copy link
Contributor

kosuke55 commented Mar 30, 2023

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I've agreed with the maintainers that I can plan this task.

Description

pull_over/out modules have the following limitations.

  • pull_over
    • Support parking on only road_shoulder
      image

    • Cannot park on the road or in the same lane.

    • Cannot consider moving objects for safety judgment

  • pull_out
    • Cannot start in cases requiring complicated maneuvering
    • Can only start from road_shoulder
    • Cannot start from the road or the same lane
    • Cannot consider moving objects for safety judgment

Purpose

solve these limitations and improve functionalies

Possible approaches

  • pull_over

    • Support parking on both road and road_shoulder ->(deal this this patter with LC. pull over support only current road) image

    • Implement a goal planner

      • Activate every time when near the goal
        • If goal adjustment is allowed: park at the side edge of the lane(like pull over) image
        • If goal adjustment is not allowed: park at the given goal (like the current lane following)
          image
    • work with MRM (Minimum Risk Maneuver)

    • Consider moving objects

  • pull_out

    • Support starting from both road and road_shoulder
    • Implement a start planner
      • Activate every time at starting driving
      • Start towards the centerline or shift from the current lane to the desired lane
    • Consider moving objects
    • Use a free space planner for starting driving

Definition of done

Complete these implementations to resolve limitations and improve functionalies

@kosuke55 kosuke55 self-assigned this Mar 30, 2023
@kosuke55 kosuke55 added the component:planning Route planning, decision-making, and navigation. (auto-assigned) label Mar 30, 2023
@BonoloAWF BonoloAWF added the type:new-feature New functionalities or additions, feature requests. label Apr 4, 2023
@kosuke55
Copy link
Contributor Author

kosuke55 commented Apr 13, 2023

Currently in pull_over, if an object exists on the lane and the vehicle is stuck, generate a path for avoiding objects using parking_lot as a drivable area. (use the same algorithms of https://github.com/autowarefoundation/autoware.universe/tree/main/planning/freespace_planning_algorithms)

#2879

pull_over_freespace-2023-03-02_12.59.53.mp4

We will plan to develop the same feature also in pull_out

  • pull_out
    • Use a free space planner for starting driving

@kosuke55
Copy link
Contributor Author

kosuke55 commented Apr 13, 2023

this is the sample behavior of goal planner
the larger axis is the result of the modification.

allow_goal_modification-2023-04-12_22.33.18.mp4

from #3370 (review)

  • This module determines the goal position according to Autoware's decision when goal modification is allowed.
    • To avoid obstacles
    • Refine the goal according to a certain policy (e.g. right-align, left-align)
  • When the goal is not modified, it behaves as before.
    • Simply stop against the original goal by just lane following.

and the sample of right-align of goal planner

@kosuke55
Copy link
Contributor Author

merged rough goal rviz plugin

autowarefoundation/autoware_launch#295

goal planner is under development, so if setting rough goal now, the goal will not be modified.

@kosuke55
Copy link
Contributor Author

send goal planner PR #3454

Make pull_over execute when the vehicle is approaching the goal. (within minimum_request_length)

put goal in road

  • 2D Goal Pose in road
    • modifyPathForSmoothGoalConnection (same as current lane following arrival path)
  • 2D Rough Goal Pose in Road
    • pull over to the modified goal in road or road_shoulder with the select policy (e.g. parking left_side, right side)

check 2D Goal Pose and 2D Rough Goal Pose

goal_planner_fixed-2023-04-19_00.12.24.mp4

check planning to the fixed goal within minimum_request_length

goal_planner_fixed-2023-04-19_00.04.18.mp4

lane_change ->goal planner

goal_planner_fixed-2023-04-19_00.42.52.mp4

todo: need to execute lane_change and goal_planner wit new behavior path architecture to deal the situation the end of lane change is close to the goal. need

goal_planner_fixed-2023-04-19_00.44.25.mp4

@zjw77889
Copy link

Is the shoulder lane the same as the lane? What attribute settings are required to add shoulder lanes and can a map be provided that can pull over.

@zjw77889
Copy link

@kosuke55

@kosuke55
Copy link
Contributor Author

kosuke55 commented Apr 28, 2023

@zjw77889
The type of the shoulder lane is lanelet so it is the same to the normal road lane, but the subtype is road_shoulder so it is different from road of the normal road lane. You can set the subtype using vector map builder or editting .osm file directly.
the sample map in https://autowarefoundation.github.io/autoware-documentation/main/tutorials/ad-hoc-simulation/planning-simulation/ also have road_shoulder and you can try pull_over here in the image

image

Or also you can use pull_over in normal road lane if you setting 2D Rough Goal Pose with rviz(the shortcut key is r). please refer to #3419

@zjw77889
Copy link

zjw77889 commented May 4, 2023

@kosuke55
Thank you very much for your reply, it has been very helpful to me.

@kosuke55
Copy link
Contributor Author

kosuke55 commented Jun 8, 2023

pull_out

  • Support starting from both road and road_shoulder
  • Implement a start planner
    • Activate every time at starting driving
    • Start towards the centerline or shift from the current lane to the desired lane

was implemented in

@stale
Copy link

stale bot commented Aug 18, 2023

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 Aug 18, 2023
@kosuke55
Copy link
Contributor Author

kosuke55 commented Feb 1, 2024

backward parking in narrow space

back_pull_over-2023-12-04_18.54.53.mp4

@stale stale bot removed the status:stale Inactive or outdated issues. (auto-assigned) label Feb 1, 2024
@kosuke55
Copy link
Contributor Author

kosuke55 commented Feb 1, 2024

Free-space parking in complex object arrangements

goal_planner_freespace-2023-12-20_16.34.11.mp4

@kosuke55
Copy link
Contributor Author

kosuke55 commented Feb 1, 2024

feat(avoidance/goal_planner): execute avoidance and pull over simultaneously #5979

#5979

@kosuke55
Copy link
Contributor Author

kosuke55 commented Feb 1, 2024

safety check #5677

@kosuke55
Copy link
Contributor Author

kosuke55 commented Feb 1, 2024

MRM #5634
planning features have been merged.

pull-over-mrm-fhd.mp4

@kosuke55
Copy link
Contributor Author

kosuke55 commented Feb 5, 2024

Development results

Support parking on both road and road_shoulder

goal_planner_fixed-2023-04-19_00.12.24.mp4

Implement a goal/start planner

see followings for the detail

work with MRM (Minimum Risk Maneuver)

MRM #5634
planning features have been merged.

pull-over-mrm-fhd.mp4

Consider moving objects

Perform safer safety checks using polygons of the predicted footprint integrated over time.

auto

goal_planner_safer_safety_check-2023-11-21_23.00.50.mp4

rtc

goal_planner_safer_safety_check-2023-11-22_19.34.06.mp4

free space planner

Free-space parking in complex object arrangements

goal_planner_freespace-2023-12-20_16.34.11.mp4

@kosuke55 kosuke55 closed this as completed Feb 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:planning Route planning, decision-making, and navigation. (auto-assigned) type:new-feature New functionalities or additions, feature requests.
Projects
None yet
Development

No branches or pull requests

3 participants