Triggering Autonomous Mode for custom planner in microservice architecture #3809
Replies: 2 comments 2 replies
-
In order to switch to autonomous mode, The field becomes true if all the dependent module states(planning state, localization state, perception state, etc) are true. code Each module states are published by component state monitor which looks if all the expected messages are coming out from each module, which are defined by the config here. Therefore, if you are replacing planning module with your own custom implementation, I would first look into the topics for planning and modify them for your system. (by default it is looking at |
Beta Was this translation helpful? Give feedback.
-
Thank you very much for your help! So for other interested users, here is some documentation: UpdateOld Problem Partially Solved
--> Solution:
Problem Description - What we have tried so far
Below are some pictures of the current state: QuestionsWe still seem to have some problem with our trajectory msg. We tried to dive deeper into the system_error_monitor but could not figure out exactly what the error condition is, that it reacted to. Our assumption currently is that the system_error_monitor indeed raises a valid error which (after we disable the system_error_monitor partially) results into the car just not moving. If you have further suggestions, please let us know. Thank you for your help and best regards. |
Beta Was this translation helpful? Give feedback.
-
We are currently using autoware and autoware.universe as a middleware for an autonomous driving project. We have split the different modules (system, planning, ...) into different microservices and are now in the process of integrating our own algorithms.
Problem Overview
Unfortunately, we seem to be stuck at getting our custom planner to run. Similar to issue # #3783 , we are stuck at the point that the auto mode cannot be triggered (greyed out button in rviz). However, for previous versions of autoware (under ROS2 Galactic), our code worked. We currently suspect the component_state_monitor of our planning module to be the problem, however we cannot rule out problems with our microservice architecture completely.
Our current state can be seen here:
The operation_mode can be seen here:
The autoware state can be seen here. It works as expected up to state 3, where it gets stuck.
The routing state (topic /api/routing/state) is 2.
The motion state (topic /api/motion/state) is 1 and the service /api/motion/accept_start response that it is not the "starting" state.
What we have tried so far
We interprete the guide.py output that there is a rate error in our planning, but we could not find out how the rate error is exactly defined. Please let us now, if you have any suggestions here.
As described in issue #3783 , we checked the two planning topics listed here. Both the topic /planning/mission_planning/route and /planning/scenario_planning/trajectory are published once.
The topic /system/component_state_monitor/component/autonomous/* only is false for the planning module.
Trying to change states for either the component_state_machine or the autoware state manually via ros2 topic pub and a hand-crafted message yields the response that "The mode change is blocked by the system"
Using the service /api/operation_mode/change_to_autonomous also yields the response "The mode change is blocked by the system", but the change to all other modes (e.g. stop mode) works fine.
We also tried changing the operation mode as described here, but were unsuccessful
Questions and Need for Advice / Additional Documentation
As you can probably tell by the lack of strategy in our trouble-shooting, we are kind of lost when it comes to understanding the details of the different states, modes etc. and, especially, what triggers what when with which topic to activate the autonomous mode.
If you have additional documentation about the state change, please let us know.
Thank you
Beta Was this translation helpful? Give feedback.
All reactions