Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve simulated manual override with FollowTrajectoryAction #1280

Closed
wants to merge 57 commits into from

Conversation

HansRobo
Copy link
Member

@HansRobo HansRobo commented Jun 11, 2024

Description

Abstract

Improve simulated manual override with FollowTrajectoryAction

Background

In previous version of scenario_simulator_v2, the control mode during the override is still AUTONOMOUS.
This could not be accurately simulated for manual overrides , so this pull request was created.

Details

Note

This section is copied from ManualOverrideWithFollowTrajectoryAction.md in this pull-request.

scenario_simulator_v2 simulates the manual override of Autoware, with FollowTrajectoryAction.
During the executing FollowTrajectoryAction, the control of the ego entity is taken over from Autoware to the FollowTrajectoryAction.

3 types of override for Autoware

There are 3 types of override for Autoware.

  • Local: Manually control the vehicle from nearby with some device such as a joystick. This is one of operation modes.
  • Remote: Manually control the vehicle from a web application on the cloud. This is one of operation modes.
  • Direct: Manually control the vehicle from handle, brake and/or accel directly. Please note that this is not a operation mode but a control mode of vehicle interface.

override simulation in scenario_simulator_v2

vehicle interface simulation is a part of the ego vehicle simulation feature in scenario_simulator_v2.
scenario_simulator_v2 simulates a Direct override triggered by safety operators when a scenario commands overriding the ego vehicle by FollowTrajectoryAction.

3 steps scenario_simulator_v2 takes to simulate the overrides

1. triggering the override

In real vehicle, the override detected in vehicle internally and communicated to vehicle interface node such as pacmod_interface node.

In scenario_simulator_v2, openscenario_interpreter send an override flag via zmq interface between traffic_simulator and simple_sensor_simulator when FollowTrajectoryAction is started.

simple_sensor_simulator receives it and set the control mode to MANUAL like vehicle interface do when hardware override triggers detected.

2. during the override

traffic_simulator send ego status calculated to follow described in the scenario and simple_sensor_simulator overrides Autoware control with overwriting ego status by the received ego status.

3. finishing the override

When FollowTrajectoryAction is finished, traffic_simulator call service to enable autoware control and stop sending the override flag to simple_sensor_simulator via zmq communication.

This mimics the steps safety operators do in real vehicle via some human interfaces, in API level.

References

Destructive Changes

None

Known Limitations

scenario_simulator_v2 does not support a remote override for now.

@HansRobo HansRobo self-assigned this Jun 11, 2024
Copy link

github-actions bot commented Jun 11, 2024

Checklist for reviewers ☑️

All references to "You" in the following text refer to the code reviewer.

  • Is this pull request written in a way that is easy to read from a third-party perspective?
  • Is there sufficient information (background, purpose, specification, algorithm description, list of disruptive changes, and migration guide) in the description of this pull request?
  • If this pull request contains a destructive change, does this pull request contain the migration guide?
  • Labels of this pull request are valid?
  • All unit tests/integration tests are included in this pull request? If you think adding test cases is unnecessary, please describe why and cross out this line.
  • The documentation for this pull request is enough? If you think adding documents for this pull request is unnecessary, please describe why and cross out this line.

@HansRobo HansRobo added bump patch If this pull request merged, bump patch version of the scenario_simulator_v2 wait for regression test and removed wait for regression test labels Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bump patch If this pull request merged, bump patch version of the scenario_simulator_v2
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants