Skip to content

Latest commit

 

History

History
394 lines (231 loc) · 17.4 KB

File metadata and controls

394 lines (231 loc) · 17.4 KB

Planning simulation

Preparation

Download and unpack a sample map.

  • You can also download the map manually.
gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1499_nsbUbIeturZaDj7jhUownh5fvXHd'
unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip

!!! Note

Sample map: Copyright 2020 TIER IV, Inc.

Check if you have ~/autoware_data folder and files in it.

$ cd ~/autoware_data
$ ls -C -w 30
image_projection_based_fusion
lidar_apollo_instance_segmentation
lidar_centerpoint
tensorrt_yolo
tensorrt_yolox
traffic_light_classifier
traffic_light_fine_detector
traffic_light_ssd_fine_detector
yabloc_pose_initializer

If not, please, follow Manual downloading of artifacts.

Change the maximum velocity, that is 15km/h by default.

Basic simulations

!!! info "Using Autoware Launch GUI"

If you prefer a graphical user interface (GUI) over the command line for launching and managing your simulations, refer to the [Using Autoware Launch GUI](#using-autoware-launch-gui) section at the end of this document for a step-by-step guide.

Lane driving scenario

1. Launch Autoware

source ~/autoware/install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

!!! warning

Note that you cannot use `~` instead of `$HOME` here.

If `~` is used, the map will fail to load.

after-autoware-launch

2. Set an initial pose for the ego vehicle

set-initial-pose

a) Click the 2D Pose estimate button in the toolbar, or hit the P key.

b) In the 3D View pane, click and hold the left-mouse button, and then drag to set the direction for the initial pose. An image representing the vehicle should now be displayed.

!!! warning

Remember to set the initial pose of the car in the same direction as the lane.

To confirm the direction of the lane, check the arrowheads displayed on the map.

3. Set a goal pose for the ego vehicle

a) Click the 2D Goal Pose button in the toolbar, or hit the G key.

b) In the 3D View pane, click and hold the left-mouse button, and then drag to set the direction for the goal pose. If done correctly, you will see a planned path from initial pose to goal pose.

set-goal-pose

4. Start the ego vehicle

Now you can start the ego vehicle driving by clicking the Auto button in the AutowareStatePanel. Alternatively, you can manually start the vehicle by running the following command:

source ~/autoware/install/setup.bash
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode {}

After that, Auto button will be selected and grayed out.

start-driving

Parking scenario

  1. Set an initial pose and a goal pose, and engage the ego vehicle.

    after-set-goal-pose

  2. When the vehicle approaches the goal, it will switch from lane driving mode to parking mode.

  3. After that, the vehicle will maneuver into the destination parking spot.

    parking-maneuver

Pull out and pull over scenario

  1. In a pull out scenario, set the ego vehicle at the road shoulder.

    pullover-pullout

  2. Set a goal and then engage the ego vehicle.

  3. In a pull over scenario, similarly set the ego vehicle in a lane and set a goal on the road shoulder.

Lane change scenario

  1. Download and unpack Nishishinjuku map.

    gdown -O ~/autoware_map/ 'https://github.com/tier4/AWSIM/releases/download/v1.1.0/nishishinjuku_autoware_map.zip'
    unzip -d ~/autoware_map ~/autoware_map/nishishinjuku_autoware_map.zip
  2. Launch autoware with Nishishinjuku map with following command:

    source ~/autoware/install/setup.bash
    ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/nishishinjuku_autoware_map vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

    open-nishishinjuku-map

  3. Set an initial pose and a goal pose in adjacent lanes.

    set-position-and-goal

  4. Engage the ego vehicle. It will make a lane change along the planned path.

    lane-changing

Avoidance scenario

  1. Set an initial pose and a goal pose in the same lane. A path will be planned.

    set-position-and-goal

  2. Set a "2D Dummy Bus" on the roadside. A new path will be planned.

    set-dummy-bus

  3. Engage the ego vehicle. It will avoid the obstacle along the newly planned path.

    avoidance-driving

Advanced Simulations

Placing dummy objects

  1. Click the 2D Dummy Car or 2D Dummy Pedestrian button in the toolbar.

  2. Set the pose of the dummy object by clicking and dragging on the map.

  3. Set the velocity of the object in Tool Properties -> 2D Dummy Car/Pedestrian panel.

    !!! note

    Changes to the velocity parameter will only affect objects placed after the parameter is changed.

    set-dummy-car

  4. Delete any dummy objects placed in the view by clicking the Delete All Objects button in the toolbar and then click anywhere in the 3D View pane to complete it.

Placing interactive dummy objects

Click the Interactive button in the toolbar to create the next dummy object in interactive mode.

set-interactive-dummy-car

!!! info

- **Add an interactive dummy object:** ++shift+"🖱️ Right Click"++ on the map.
- **Delete an interactive dummy object:** ++alt+"🖱️ Right Click"++ on the object.
- **Move an existing interactive dummy object:** ++"🖱️ Right Click"++ and hold on the object. Then drag and drop it to the desired location.

Traffic light recognition simulation

By default, traffic lights on the map are all treated as if they are set to green. As a result, when a path is created that passed through an intersection with a traffic light, the ego vehicle will drive through the intersection without stopping.

The following steps explain how to set and reset traffic lights in order to test how the Planning component will respond.

Set traffic light

By default, Rviz doesn't display the IDs of traffic lights on the map. To enable the display of traffic light IDs, follow these steps:

  1. In the Displays panel, find the traffic_light_id topic by toggling the triangle icons next to Map > Lanelet2VectorMap > Namespaces.
  2. Check the traffic_light_id checkbox.
  3. Reload the topic by clicking the Map checkbox twice.
  4. Have a closer look at the IDs by zooming in the region or by changing the View type.

see-traffic-light-ID

  1. Go to Panels -> Add new panel, select tier4_traffic_light_rviz_plugin/TrafficLightPublishPanel, and then press OK.

  2. In TrafficLightPublishPanel, set the ID and color of the traffic light.

  3. Click the SET button. set-traffic-light

  4. Finally, click the PUBLISH button to send the traffic light status to the simulator. Any planned path that goes past the selected traffic light will then change accordingly.

send-traffic-light-color

Update/Reset traffic light

You can update the color of the traffic light by selecting the next color (in the image it is GREEN) and clicking SET button. In the image the traffic light in front of the ego vehicle changed from RED to GREEN and the vehicle restarted.

after-traffic-light-color-update

To remove a traffic light from TrafficLightPublishPanel, click the RESET button.

Reference video tutorials

Driving through a crosswalk

When driving through a crosswalk, the ego vehicle evaluates both the presence of pedestrians/objects and the state of any associated traffic lights.

!!! info

For more technical details, refer to the [**autoware_behavior_velocity_crosswalk_module** documentation](https://autowarefoundation.github.io/autoware_universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/).

!!! info

These examples use the **Nishishinjuku** map, the same one used in the [lane change scenario](#lane-change-scenario).

!!! tip

For these tutorials, it is easier to use **interactive dummy pedestrians** (see [Placing interactive dummy objects](#placing-interactive-dummy-objects) above).

This way you can quickly add, move, and delete dummy pedestrians as needed.

Non-signalized crosswalk (no traffic light)

Behavior logic
flowchart TD
    A["Approach **crosswalk**"] --> B{"Pedestrian somewhere on the **crosswalk**? <br/> (Pedestrian velocity is not important.)"}
    B -- "No" --> C["Proceed without slowing down"]
    B -- "Yes" --> D["Slow down and stop **one time**"]
    D --> E["Wait a few seconds to confirm safe to proceed"]
    E --> F{"Pedestrian or object on **planned path**?"}
    F -- "Yes" --> G["Continue waiting / yield"]
    F -- "No" --> H["Resume driving (will not stop again for this crosswalk)"]
    H --> I["Crosswalk passed ➡️ behavior resets when encountering the same crosswalk again"]
Loading

!!! example "Experiment"

We will test the expected “single stop then go” behavior:

1. Place a still dummy pedestrian on the crosswalk. (Not on the planned path, just on the crosswalk.)

2. The ego vehicle will decelerate and stop before the crosswalk.

3. After waiting for a few seconds, the ego vehicle will start driving again as usual.
  1. Set an initial pose and a goal pose for the ego vehicle to drive through a non-signalized crosswalk. A path will be planned.

    initial-setup

  2. Place an interactive dummy pedestrian on the crosswalk and set its pose as if it is crossing the street. It doesn't matter whether the dummy pedestrian is moving or not, as long as it is on the crosswalk.

    place-pedestrian

  3. Engage the ego vehicle by clicking on Auto. The ego vehicle will decelerate and stop before the crosswalk. The marked crosswalk in the figure indicates that the stopping behavior is caused by the objects on the crosswalk.

    wait-before-crosswalk

  4. The ego vehicle will wait for about a few seconds. Then it will start moving again and pass the crosswalk.

    pass-crosswalk

Signalized crosswalk (with traffic light)

![test-location.png](images/planning/passing-crosswalk/signalized/test-location.png) Location for signalized crosswalk experiments

!!! example "Experiment 1: Pedestrian Present While Traffic Light Is GREEN"

This experiment mirrors the previous one but at a signalized crosswalk.

With the pedestrian near the path and the traffic light GREEN, the ego behaves the same as at a non-signalized crosswalk: it slows, stops, waits, then continues.

wait-for-pedestrian

!!! example "Experiment 2: Interaction of Pedestrians and a RED Traffic Light"

1. Stop before the crosswalk when the traffic light is set to `RED`. (Without pedestrians.)

2. Add a dummy pedestrian on the crosswalk while the traffic light is `RED`. (Both the traffic light and the crosswalk should affect the stopping behavior.)

3. Finally, set the traffic light to `GREEN` again and the vehicle will pass normally.
  1. Stop at red (no pedestrians). Remove any existing dummy pedestrians and set the traffic light to RED. The ego vehicle will stop before the crosswalk and wait solely because of the traffic_light reason.

    stop-from-red-light

  2. Add a pedestrian while the light is RED. The ego remains stopped, now influenced by both the traffic light and the crosswalk object.

    stop-from-red-and-pedestrian

  3. Observe how the stop reasons update. After a short period, only traffic_light may remain displayed. Moving the pedestrian slightly (with ++shift+"🖱️ Right Click"++ drag) reintroduces both markers, but the system stabilizes back to the traffic-light reason during the wait.

    stop-red-light-with-pedestrian.png

  4. Switch the light to GREEN. When set to green and Auto mode is engaged, the ego vehicle proceeds normally.

    move-after-red-to-green.png

Using Autoware Launch GUI

This section provides a step-by-step guide on using the Autoware Launch GUI for planning simulations, offering an alternative to the command-line instructions provided in the Basic simulations section.

Getting Started with Autoware Launch GUI

  1. Installation: Ensure you have installed the Autoware Launch GUI. Installation instructions.

  2. Launching the GUI: Open the Autoware Launch GUI from your applications menu.

    GUI screenshot for launching the GUI

Launching a Planning Simulation

Lane Driving Scenario

  1. Set Autoware Path: In the GUI, set the path to your Autoware installation.

    GUI_screenshot_for_setting_Autoware_path

  2. Select Launch File: Choose planning_simulator.launch.xml for the lane driving scenario.

    GUI screenshot for selecting launch file

  3. Customize Parameters: Adjust parameters such as map_path, vehicle_model, and sensor_model as needed.

    GUI screenshot for customizing parameters GUI screenshot for customizing parameters

  4. Start Simulation: Click the launch button to start the simulation.

    GUI screenshot for starting simulation

  5. Any Scenario: From here, you can follow the instructions in the

Monitoring and Managing the Simulation

  • Real-Time Monitoring: Use the GUI to monitor CPU/Memory usage and Autoware logs in real-time.
  • Profile Management: Save your simulation profiles for quick access in future simulations.
  • Adjusting Parameters: Easily modify simulation parameters on-the-fly through the GUI.

Want to Try Autoware with Your Custom Map?

The above content describes the process for conducting some operations in the planning simulator using a sample map. If you are interested in running Autoware with maps of your own environment, please visit the How to Create Vector Map section for guidance.

Want to Try Autoware with Higher Speed?

The original Autoware is designed to operate at a wide speed range. But for safety reasons, the default maximum velocity has been limited to 15 km/h. Because of that, even you drag the slider to a higher speed in rviz panel, the system will not allow it.

If you want to run Autoware at a higher speed, you can modify the max_vel parameter in the config file autoware_launch/config/planning/scenario_planning/common/common.param.yaml located in the autoware_launch repository.

!!! example

Set `max_vel` to `20.0` (20 m/s = 72 km/h).
Then launch the planning simulator, place the vehicle and set the velocity limit with the slider.

increase-max-velocity