본문으로 건너뛰기
cccskills
무료GitHub에 공개

map-waypoints

Explore roads, lanes, and junctions in a CARLA simulation map through text reports and visual overlays. Locate places described in everyday language, inspect nearby lane details, and trace a path forward or backward along a lane.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Explores a CARLA map's road network through the Map/Waypoint API — a natural-language rundown of the whole map ("give me the topology"), drawing the topology to confirm the modelled map matches the visible one, enumerating junctions to resolve phrases like "the 4-way junction in the middle", nearest-waypoint lane facts, and next/previous lane navigation. Use when the user asks about the map's layout, lanes, junctions, topology, or to locate/navigate specific map elements.

설치 방법 보기

이럴 때 유용합니다

  • Understand a map's road and lane layout
  • Compare the road network overlay with visible roads
  • Locate the four-way junction nearest the map center
  • Inspect a lane and trace its forward or backward path

포함된 파일(5)

  • SKILL.md6.6 KB
  • references/waypoints.md4.1 KB
  • scripts/check_env.sh2.1 KB
  • scripts/env.sh1.1 KB
  • scripts/waypoints.py13.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Explore a CARLA map

Paths. scripts/… and references/… below are relative to the directory holding this SKILL.md. Your working directory is the user's project, not that directory, so prefix them with its absolute path or the command is not found.

Query and visualise the road network of the loaded map. Three headline uses:

  1. Rundown — summary turns the map into stats and a one-paragraph description ("a dense, city-like map … mostly 2-lane roads … 12 junctions").
  2. Show the topology — topology --draw overlays the modelled road graph so you can confirm it matches the map you see rendered.
  3. Resolve a described element — junctions lists every junction with its centre, arm count, distance-to-map-centre and bearing, so a phrase like "the 4-way junction in the middle" resolves to a specific junction id.

Plus per-point queries: waypoint (lane facts) and navigate (next/previous).

How natural language maps to elements

This skill emits structured data; the agent does the matching (like the weather skill). "The 4-way junction in the middle" → junctions --arms 4, then pick the smallest dist ... of centre. "The northern junction" → the one whose bearing is N. Draw the chosen one with junctions --arms 4 --draw (or by id) to confirm. See references/waypoints.md for the vocabulary (centre/near/far, bearings, "biggest" = size).

Instructions

Progress:
- [ ] Step 1: Check prerequisites (bash scripts/check_env.sh), clear FAILs
- [ ] Step 2: Rundown the map (summary) if asked about layout
- [ ] Step 3: For a described element, enumerate (junctions) then filter to one
- [ ] Step 4: Draw it (--draw) to confirm modelled == visible; navigate if needed

Commands need CARLA_HOST/CARLA_PORT from scripts/env.sh. Negative coordinates: pass --at with an = (e.g. --at=-24,-57,0.6) so the leading minus isn't parsed as a flag; the space form only works for all-positive coords.

Step 1: Check prerequisites

bash scripts/check_env.sh

Step 2-4: Explore

source scripts/env.sh

# a rundown of the map
python3 scripts/waypoints.py summary

# draw the whole road topology to compare with the visible map
python3 scripts/waypoints.py topology --draw --life 180

# every junction; or just the four-way ones, nearest the centre first
python3 scripts/waypoints.py junctions
python3 scripts/waypoints.py junctions --arms 4
python3 scripts/waypoints.py junctions --arms 4 --draw     # highlight + label them

# lane facts at a point, and a forward walk along the lane
python3 scripts/waypoints.py waypoint --at 30,20,0
python3 scripts/waypoints.py navigate --at 30,20,0 --dist 2 --steps 30 --draw

On CARLA 0.10.0 (the UE5 line: 5.5 and 5.8)

Landmark.waypoint is always None on 0.10.0. Measured on Town10HD_Opt: 68 landmarks, 68 of them with waypoint is None. Every other landmark field populates normally (id, name, type, road_id, s, t, distance, orientation, transform, country, unit, value, sub_type, text, h_offset, z_offset, height, width, pitch, roll, is_dynamic, get_lane_validities).

So any code shaped landmark.waypoint.transform or landmark.waypoint.lane_id raises AttributeError: 'NoneType' there. Get the road position from the landmark itself instead — map.get_waypoint_xodr( landmark.road_id, lane_id, landmark.s), or map.get_waypoint( landmark.transform.location) when you only need the nearest lane.

get_all_landmarks, get_all_landmarks_of_type, get_all_landmarks_from_id and get_landmark_group all work on both versions. The rest of the Map/Waypoint API this skill uses — get_topology, generate_waypoints, get_waypoint, get_spawn_points, get_crosswalks — is unchanged.

Examples

Example 1: describe the map

User says: "give me a rundown of the topology"

summary. Relay the RUNDOWN paragraph (extent, road/lane counts, dominant lane count, junction breakdown, density).

Example 2: confirm the model matches what's rendered

User says: "show me the topology so I can check the map"

topology --draw on a rendered server; the green arrows trace every road segment — they should sit on the visible roads.

Example 3: resolve a described junction

User says: "highlight the 4-way junction in the middle"

junctions --arms 4 → pick the row with the smallest "of centre" distance → note its id → junctions --arms 4 --draw (or read its centre and debug-draw box there). Confirm the label lands on the central crossroads.

Example 4: navigate a lane

User says: "follow the lane forward from (30,20) for 60 m"

navigate --at 30,20,0 --dist 2 --steps 30 --draw.

Troubleshooting

Problem: summary is slow on a large map Cause: Town11/12/13 have huge road networks; stats sample every 3 m. Solution: expected; it still completes. Increase STAT_STEP in the script for a faster, coarser pass.

Problem: drawn topology/junctions not visible Cause: headless -nullrhi server, or the spectator is far away. Solution: use a rendered server (see debug-draw) and move to the map centre.

Problem: a "junction" has an odd arm count Cause: arms are counted as distinct entry road ids — merges/ramps can skew it. Solution: treat arm count as approximate; confirm visually with --draw.

Problem: waypoint --at says no driving lane Cause: the point is off-road or on a non-driving lane. Solution: move the point onto a road; the query projects to the nearest driving lane within range.

Outputs

Text reports (rundown, junction list, lane facts, navigation path) and optional world.debug overlays. No file, no world change.

Detail (the Map/Waypoint/Junction API, arm counting, bearings/centre semantics, lane topology) in references/waypoints.md.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Add a message type to CARLA's native ROS 2 interface. Create its C++ data structure, serialization code for transmission, type identity hash, registration, and tests, with Docker-based hash calculation and build checks.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Adding a standard ROS 2 message type missing from CARLA
  • Defining a custom carla_msgs message
  • Investigating type-hash warnings
carla-simulator/carla1.5만2026년 10월 20일 업데이트

Extend CARLA’s native ROS 2 interface to publish sensor data or receive vehicle commands. Covers topic implementation, registration, data connections, and verification, plus adding middleware, the communication layer used to exchange messages.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Publish obstacle sensor data to ROS 2
  • Add a topic for vehicle speed commands
  • Integrate another communication middleware
carla-simulator/carla1.5만2026년 10월 20일 업데이트

Summarize ScenarioRunner results to see which scenarios passed and which checks failed. Compare runs before and after changes, or analyze recorded driving to produce measurements and plots of vehicle distance and deviation from the lane center.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Checking scenario pass and fail results
  • Comparing results before and after controller changes
  • Plotting vehicle distances from a recorded run
carla-simulator/carla1.5만2026년 10월 20일 업데이트

Checks a local CARLA checkout for missing API documentation, outdated references, broken links, and pages absent from navigation. Produces a grouped Markdown report without building the project or running the simulator.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Reviewing documentation before a release
  • Finding missing or outdated API references
  • Checking broken links and navigation gaps
carla-simulator/carla1.5만2026년 10월 20일 업데이트

Read and display CARLA object bounding boxes, then project them onto a camera image as 2D rectangles. Export an annotated PNG and box coordinates in JSON for object detection annotation work.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Adding vehicle boxes to a camera image
  • Exporting box coordinates for detection annotations
  • Checking vehicle dimensions
carla-simulator/carla1.5만2026년 10월 20일 업데이트

Builds CARLA's ue4-dev branch on Linux, producing the Unreal Engine 4.26 editor, server modules, and an installed Python client package. Fetches required content, optionally compiles native ROS 2 support, and verifies the build against a source-built server.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Building CARLA ue4-dev from source
  • Compiling CARLA with native ROS 2 support
  • Building the Python client for an existing environment
carla-simulator/carla1.5만2026년 10월 20일 업데이트

carla-simulator의 스킬 모두 보기

이 스킬의 문제 신고