Skip to content

feat: AWSIM autonomous driving pipeline#133

Open
rsasaki0109 wants to merge 9 commits intodevelopfrom
feat/awsim-pipeline
Open

feat: AWSIM autonomous driving pipeline#133
rsasaki0109 wants to merge 9 commits intodevelopfrom
feat/awsim-pipeline

Conversation

@rsasaki0109
Copy link
Copy Markdown
Owner

Summary

  • AWSIM シミュレータから LiDAR データを取得し、lidarslam でマップ生成、Autoware で自動運転するフルパイプラインを追加
  • 軌跡から Lanelet2 マップを自動生成する simple_lanelet2_generator.py を追加
  • SLAM 出力から Autoware 互換マップをワンコマンドで作成する prepare_autoware_map_from_graph_slam.sh を追加

New scripts

Script Purpose
simple_lanelet2_generator.py TUM trajectory → Lanelet2 OSM (multi-segment with shared boundary nodes)
prepare_autoware_map_from_graph_slam.sh g2o + grid PCDs → Autoware map (PCD merge + coordinate transform + lanelet2 + projector info)
run_awsim_autoware_demo.sh AWSIM + Autoware demo with sample map
run_awsim_selfmade_map_demo.sh Autonomous driving demo with self-made map
test_awsim_setup.sh AWSIM + Autoware setup verification
download_autoware_artifacts.sh Autoware ML model artifacts download
record_screen.sh Screen recording utility

Key technical decisions

  • AWSIM runs in Docker: Host Jazzy conflicts with AWSIM's bundled Humble ROS 2 libs
  • Lanelet2 multi-segment split: Autoware route planner requires multiple connected lanelets with shared boundary nodes
  • NDT threshold: SLAM-generated maps may need threshold lowered from 2.3 to 1.5
  • Local projector: map_projector_info.yaml uses projector_type: local for coordinate mapping
  • deskew=false: AWSIM LiDAR lacks per-point timestamps

Test plan

  • simple_lanelet2_generator.py tested with NTU VIRAL public data
  • Full pipeline tested: AWSIM → rosbag2 → lidarslam → PCD + lanelet2 → Autoware Driving state
  • prepare_autoware_map_from_graph_slam.sh tested with AWSIM Shinjuku data
  • CI workflow for AWSIM pipeline (separate PR)

Add end-to-end pipeline for creating pointcloud maps with lidarslam
from AWSIM simulator data, generating lanelet2 maps from trajectories,
and running autonomous driving with Autoware.

New scripts:
- simple_lanelet2_generator.py: TUM trajectory → lanelet2 OSM
- run_awsim_autoware_demo.sh: sample map AWSIM demo
- run_awsim_selfmade_map_demo.sh: self-made map autonomous driving
- test_awsim_setup.sh: AWSIM + Autoware setup verification
- download_autoware_artifacts.sh: Autoware ML model download
- record_screen.sh: screen recording utility

New docs:
- docs/awsim-autonomous-driving-tutorial.md: full pipeline tutorial
- CLAUDE.md: project instructions for AI assistants
Autoware's route planner requires multiple lanelets with shared
boundary nodes to build a routing graph. Update build_osm() to
split the trajectory into segments (default 25 points each) and
share end/start nodes between adjacent lanelets.

Add --segment-length CLI option.
New prepare_autoware_map_from_graph_slam.sh script handles:
- g2o → TUM trajectory extraction with AWSIM coordinate transform
- Grid PCD merging with LZF decompression and coordinate transform
- Lanelet2 generation via simple_lanelet2_generator.py
- map_projector_info.yaml generation

Reads ego position and yaw from AWSIM config.json automatically.
Add bash -n validation for all new AWSIM/Autoware scripts.
Add inline unit test for simple_lanelet2_generator covering:
- TUM read, spline smoothing, boundary offset
- Multi-segment lanelet2 generation with shared boundary nodes
- OSM XML structure validation
…_slam.sh

The original prepare_autoware_map_from_graph_slam.sh (copy + verify)
had existing tests. Restore it and add the new AWSIM coordinate
transform pipeline as build_autoware_map_from_slam.sh instead.
- Add AWSIM pipeline section with quick start commands
- Update scope to include lanelet2 generation and AWSIM pipeline
- Add AWSIM tutorial link to docs section
- Highlight lanelet2 auto-generation and one-command demo in Why This Repo
@rsasaki0109 rsasaki0109 force-pushed the feat/awsim-pipeline branch from 193179b to b8af9ae Compare April 16, 2026 12:31
@rsasaki0109 rsasaki0109 force-pushed the develop branch 2 times, most recently from a67ea11 to 6c830cf Compare April 20, 2026 01:11
@rsasaki0109 rsasaki0109 force-pushed the feat/awsim-pipeline branch from b8af9ae to 07ca2ac Compare April 20, 2026 01:11
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.

1 participant