You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
importosimportlaunchfromlaunchimportLaunchIntrospectorfromament_index_python.packagesimportget_package_share_directoryfromlaunchimportLaunchDescriptionfromlaunch.actionsimportIncludeLaunchDescriptionfromlaunch.launch_description_sourcesimportPythonLaunchDescriptionSourcefromlaunch.substitutionsimportPathJoinSubstitution, TextSubstitutionfromlaunch.actionsimportEmitEventfromlaunch.actionsimportLogInfofromlaunch.actionsimportRegisterEventHandlerfromlaunch_ros.actionsimportNodefromlaunch_ros.actionsimportLifecycleNodefromlaunch_ros.actionsimportSetParameterfromlaunch_ros.events.lifecycleimportChangeStatefromlaunch_ros.event_handlersimportOnStateTransitionfromlaunch_ros.substitutionsimportFindPackageShareimportlifecycle_msgs.msgdefgenerate_launch_description():
# Set LOG format# os.environ['RCUTILS_CONSOLE_OUTPUT_FORMAT'] = '{time}: [{name}] [{severity}]\t{message}'# Launch Descriptionld=launch.LaunchDescription()
drive_base_node_action=LifecycleNode(
package='sm_guardian',
executable='drive_base_node',
name='drive_base',
namespace='',
output='screen')
drive_base_node_include=IncludeLaunchDescription(
PythonLaunchDescriptionSource([
PathJoinSubstitution([
FindPackageShare('sm_guardian'),
'launch',
'drive_base.launch.py'
])
])
)
drive_base_executable='drive_base_node'drive_base_name='drive_base'# Make the drive_base node take the 'configure' transitiondrive_base_configure_trans_event=EmitEvent(
event=ChangeState(
lifecycle_node_matcher=launch.events.process.matches_executable(drive_base_executable),
transition_id=lifecycle_msgs.msg.Transition.TRANSITION_CONFIGURE,
)
)
# drive_base_set_param = SetParameter('drive_base', )# Make the drive_base node take the 'activate' transitiondrive_base_activate_trans_event_by_executable=EmitEvent(
event=ChangeState(
lifecycle_node_matcher=launch.events.process.matches_executable(drive_base_executable),
transition_id=lifecycle_msgs.msg.Transition.TRANSITION_ACTIVATE,
)
)
drive_base_activate_trans_event_by_name=EmitEvent(
event=ChangeState(
lifecycle_node_matcher=launch.events.process.matches_name(drive_base_node_action),
# lifecycle_node_matcher = launch.events.process.matches_name(drive_base_name),transition_id=lifecycle_msgs.msg.Transition.TRANSITION_ACTIVATE,
)
)
# Add the actions to the launch description.# The order they are added reflects the order in which they will be executed.# ld.add_action(drive_base_node_action)ld.add_action(drive_base_node_include)
ld.add_action(drive_base_activate_trans_event_by_executable)
# ld.add_action(drive_base_activate_trans_event_by_name)returnld
Expected behavior
the drive_base_node can be activated after the events emitted in activate_drive_emit_event.launch.py
Actual behavior
the state cannote be activated after launching activate_drive.launch.py
Bug report
Required Info:
Steps to reproduce issue
the drive_base_node can be seen in https://github.com/micro-ROS/system_modes/blob/master/system_modes_examples/src/drive_base.cpp and adding initial configuration
with
launch
activate_drive_emit_event.launch.py
Expected behavior
the drive_base_node can be activated after the events emitted in
activate_drive_emit_event.launch.py
Actual behavior
the state cannote be activated after launching
activate_drive.launch.py
Additional information
matches_executable() works well, see #668
The text was updated successfully, but these errors were encountered: