Skip to content

set_initial_state: set current_state to initial state#93

Open
k-okada wants to merge 2 commits into
ros:noetic-develfrom
k-okada:set_initial_state_example
Open

set_initial_state: set current_state to initial state#93
k-okada wants to merge 2 commits into
ros:noetic-develfrom
k-okada:set_initial_state_example

Conversation

@k-okada

@k-okada k-okada commented Dec 27, 2022

Copy link
Copy Markdown

Does anyone know how to use the Set as initialState' button in smach_viewer` or has it ever worked?

This button is used to issue ~/smach/container_init and executes

def set_initial_state(self, initial_states, userdata=smach.UserData()):
smach.logdebug("Setting initial states to " + str(initial_states))
if len(initial_states) > 1:
smach.logwarn("Attempting to set initial state to include more than"
" one state, but the StateMachine container can only"
" have one initial state. Taking the first one.")
# Set the initial state label
if len(initial_states) > 0:
self._initial_state_label = initial_states[0]
# Set local userdata
self.userdata.update(userdata)

but it only updates _initial_state_label, which appears to have no effect on the content. I thought this feature used to work and stopped working at some point, but the first commit 88ce804, but it doesn't seem to be working. If anyone has saved the code prior to this, please let me know.

This PR allows you to force the initial state by clocking this button, see https://github.com/eacousineau/executive_smach_tutorials/blob/854024cc2bbed1ebf90181bef2a7086beca82b24/examples/state_machine_simple_introspection.py for an example.

hoge.mp4

@130s

130s commented Oct 16, 2024

Copy link
Copy Markdown
Member

Could @k-okada or anyone resolve the conflict?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants