Skip to content
cccskills
FreePublished on GitHub

control-traffic-lights

Control traffic lights in a running CARLA simulation. Change their color, switch them off, hold a fixed state, adjust phase durations, or restore normal cycling, targeting individual lights, junctions, nearby lights, or the whole map.

OriginalShow the original description

Controls the traffic-light actors on a running CARLA server — set a light green/red/yellow/off, freeze all lights (optionally all-green), set phase timing (green/yellow/red durations), and reset to the normal cycle. Target all lights, one by id, all in a junction, or the nearest. Use when the user asks to "make the light red", "freeze all lights green", "change the light timing", "turn the traffic lights off", or "reset the lights". This is the light actors, not the Traffic Manager (that's control-traffic).

See how to install

Good for

  • Holding every traffic light green
  • Setting one junction's lights to red
  • Shortening traffic-light cycles
  • Restoring normal traffic-light cycling

Files included (5)

  • SKILL.md4.0 KB
  • references/traffic-lights.md2.1 KB
  • scripts/check_env.sh2.1 KB
  • scripts/env.sh1.1 KB
  • scripts/traffic_lights.py5.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Control traffic lights

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.

Drive the actual traffic.traffic_light actors: set states, freeze them, tune phase timing. Not to be confused with control-traffic — that is the Traffic Manager governing how autopilot vehicles drive; this is the lights themselves.

Instructions

Progress:
- [ ] Step 1: Check prerequisites (bash scripts/check_env.sh), clear FAILs
- [ ] Step 2: list to see lights/states; get a junction id from map-waypoints if needed
- [ ] Step 3: set / freeze / timing / reset (all, by id, by junction, or nearest)

Commands need CARLA_HOST/CARLA_PORT from scripts/env.sh. Negative coordinates: use --near=-24,-57,1.

Step 1: Check prerequisites

bash scripts/check_env.sh

Step 3: Control

source scripts/env.sh

python3 scripts/traffic_lights.py list                      # ids, states, timing

# freeze the whole grid green (classic "green wave" / free-flow test)
python3 scripts/traffic_lights.py freeze on --state green
python3 scripts/traffic_lights.py freeze off                # back to normal cycling

# set one light, or all in a junction, or the nearest to a point
python3 scripts/traffic_lights.py set --state red --id 42
python3 scripts/traffic_lights.py set --state green --junction 838
python3 scripts/traffic_lights.py set --state red --near=-24,-57,1

# phase timing (seconds) on all lights
python3 scripts/traffic_lights.py timing --green 20 --yellow 3 --red 10 --all

python3 scripts/traffic_lights.py reset                     # normal cycle again

Examples

Example 1: let traffic flow

User says: "make all the lights green so cars don't stop"

freeze on --state green. All lights hold green until freeze off / reset.

Example 2: red light at one junction

User says: "make the crossroads in the middle red"

map-waypoints junctions --arms 4 → central junction id → set --state red --junction <id>.

Example 3: faster cycle

User says: "shorten the light cycle"

timing --green 10 --yellow 2 --red 6 --all.

Troubleshooting

Problem: lights snap back after set Cause: they keep cycling; set changes the current state, the cycle continues. Solution: freeze on to hold a state, or timing to change the cycle itself.

Problem: --junction returns nothing Cause: wrong junction id, or that junction has no signalised lights. Solution: get the id from map-waypoints junctions; not all junctions are lit.

Problem: vehicles still stop at a green I set Cause: they may be on a different phase, or autopilot reacts to its own light. Solution: freeze on --state green affects all; or let cars ignore lights via control-traffic (ignore-lights).

Outputs

Traffic-light state on the server (states/freeze/timing). No file. list reports current states and timings.

Detail (states, freeze semantics, groups, per-junction/waypoint lookup) in references/traffic-lights.md.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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/carla14.5KUpdated Oct 18, 2026

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/carla14.5KUpdated Oct 18, 2026

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/carla14.5KUpdated Oct 18, 2026

audit-carla-docs

FreeSummary

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/carla14.5KUpdated Oct 18, 2026

bounding-boxes

FreeSummary

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/carla14.5KUpdated Oct 18, 2026

build-carla-ue4

FreeSummary

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/carla14.5KUpdated Oct 18, 2026

See all skills by carla-simulator

Report a problem with this skill