...
Finally, the last component of the action package is the ActionRunner
. It allows you to run regular and waiting actions right away with run_action()
and run_waiting_action()
respectively. It takes the same input as the ActionFactory
methods, because that is being called under the hood first. ActionRunner
also allows you to preload a set of actions, run them in parallel, and wait for all of the waiting actions (not regular actions) to finish before continuing. use load_waiting_action()
and load_waiting_action()
to preload actions and run_loaded_actions()
to run them.
Code Block | ||
---|---|---|
| ||
sic = BasicSICConnector(server_ip, robot)
action_runner = ActionRunner(sic)
action_runner.run_waiting_action('say', 'Hello, Action Runner!',
additional_callback=hello_action_runner_callback)
# run_waiting_action('say', ...) waits to finish talking before continuing
def hello_action_runner_callback():
print('Hello Action Runner Done')
# The following actions will run in parallel.
action_runner.load_waiting_action('wake_up')
action_runner.load_waiting_action('set_eye_color', 'green')
action_runner.load_waiting_action('say', 'I am standing up now')
action_runner.run_loaded_actions() # If you want to keep an action sequence for reuse, add clear=False as input.
action_runner.run_action('say', 'I will start sitting down as I say this. Because I am not a waiting action')
action_runner.run_action('set_eye_color', 'white')
action_runner.run_waiting_action('rest')
|
...