Introducing Generator + Selector Architecture for Modular Trajectory Planning #6301
xmfcx
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
🚀 Upcoming Changes to the Planning Pipeline Architecture
We are excited to share a major update to Autoware’s planning pipeline architecture! This change improves modularity, introduces support for AI-based planning, and lays the groundwork for more flexible and intelligent trajectory generation.
🔧 What's Changing?
We're transitioning from a single-path robotics-based planner to a modular dual-path architecture that integrates:
This new design enables experimentation with multiple planning strategies without disrupting the current flow.
📆 Migration Timeline
/planning/trajectoryonly🗺️ Current vs Future Architecture
Before
--- config: theme: 'base' themeVariables: lineColor: '#7e7e7eff' primaryColor: '#fffde7ff' primaryTextColor: '#000000' primaryBorderColor: '#b3a400ff' flowchart: markdownAutoWrap: false wrappingWidth: 600 --- graph TD MissionPlanner[🗺️ Mission Planner] --> MsgRoute(["✉️ /planning/mission_planning/route<br>🗂️ **autoware_planning_msgs/msg/LaneletRoute**"]) --> Planning["⚙️ **Robotics-Based** Planner"] --> MsgTrajectory(["✉️ /planning/scenario_planning/trajectory<br>🗂️ **autoware_planning_msgs/msg/Trajectory**"]) --> Control["🎮 Control Component"] classDef class_msg fill:#9BE7DF,stroke:#008274; class MsgRoute,MsgTrajectory class_msg;After
--- config: theme: 'base' themeVariables: lineColor: '#7e7e7eff' primaryColor: '#fffde7ff' primaryTextColor: '#000000' primaryBorderColor: '#b3a400ff' flowchart: markdownAutoWrap: false wrappingWidth: 600 --- graph TD MissionPlanner[🗺️ Mission Planner] --> MsgRoute(["✉️ /planning/mission_planning/route<br>🗂️ **autoware_planning_msgs/msg/LaneletRoute**"]) --> PlannerRobo["⚙️ **Robotics-Based** Planner"] MsgRoute --> PlannerAi["🤖 **AI-Based** Planner"] subgraph Generator["🛠️ **Generator**"] PlannerRobo --> MsgCandidateTrajectoryRobo(["✉️ /planning/generator/robotics_based/candidate_trajectories<br>🗂️ **autoware_internal_planning_msgs/CandidateTrajectories**"]) --> TrajectoryConcat PlannerAi --> MsgCandidateTrajectoryAi(["✉️ /planning/generator/ai_based/candidate_trajectories<br>🗂️ **autoware_internal_planning_msgs/CandidateTrajectories**"]) --> TrajectoryConcat end TrajectoryConcat[📎 Trajectory Concatenator] --> MsgCandidateTrajectories(["✉️ /planning/generator/candidate_trajectories<br>🗂️ **autoware_internal_planning_msgs/CandidateTrajectories**"]) --> SafetyGate subgraph Selector["🔍 **Selector**"] SafetyGate["🛡️ Safety Gate"] --> TrafficRuleValidation["🚦 Traffic Rule Validation"] --> Ranking["📊 Ranking"] --> MsgScoredTrajectores(["✉️ /planning/selector/scored_candidate_trajectories<br>🗂️ **autoware_internal_planning_msgs/ScoredCandidateTrajectories**"]) --> TrajectoryAdapter[🔌 Trajectory Adapter] end TrajectoryAdapter --> MsgTrajectory(["✉️ /planning/trajectory<br>🗂️ **autoware_planning_msgs/msg/Trajectory**"]) --> Control["🎮 Control Component"] classDef class_msg fill:#9BE7DF,stroke:#008274; classDef class_subgraph fill:#fce4ec,stroke:#8a002e; class MsgRoute,MsgCandidateTrajectoryRobo,MsgCandidateTrajectoryAi,MsgCandidateTrajectories,MsgScoredTrajectores,MsgTrajectory class_msg; class Generator,Selector class_subgraph;This evolution enables:
🧠 Learn More
💬 Feedback Welcome
We encourage the community to try out the new modules as they’re introduced and share feedback.
Beta Was this translation helpful? Give feedback.
All reactions