Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 50 additions & 6 deletions launch/rt_usb_9axisimu_driver.launch.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

# rt_usb_9axisimu_driver.launch.py
#
# License: BSD-3-Clause
Expand Down Expand Up @@ -30,17 +29,62 @@
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

import launch
from launch_ros.actions import Node
from launch import LaunchDescription
from launch_ros.actions import LifecycleNode
from launch_ros.events.lifecycle import ChangeState
from launch_ros.event_handlers import OnStateTransition
from launch.event_handlers.on_process_start import OnProcessStart
from launch.events import matches_action
from launch.actions import EmitEvent, LogInfo, RegisterEventHandler
from lifecycle_msgs.msg import Transition


def generate_launch_description():
"""Generate launch description with multiple components."""
driver = Node(
imu_driver_node = LifecycleNode(
name='rt_usb_9axisimu_driver',
namespace='',
package='rt_usb_9axisimu_driver',
executable='rt_usb_9axisimu_driver',
output='screen'
output='screen',
)

configure_event_handler = RegisterEventHandler(
OnProcessStart(
target_action=imu_driver_node,
on_start=[
LogInfo(msg='Transitions from unconfigured to inactive.'),
EmitEvent(
event=ChangeState(
lifecycle_node_matcher=matches_action(imu_driver_node),
transition_id=Transition.TRANSITION_CONFIGURE,
)
),
],
)
)

return launch.LaunchDescription([driver])
activate_event_handler = RegisterEventHandler(
OnStateTransition(
target_lifecycle_node=imu_driver_node,
start_state='configuring',
goal_state='inactive',
entities=[
LogInfo(msg='Transitions from inactive to active.'),
EmitEvent(
event=ChangeState(
lifecycle_node_matcher=matches_action(imu_driver_node),
transition_id=Transition.TRANSITION_ACTIVATE,
)
),
],
)
)

return LaunchDescription(
[
imu_driver_node,
configure_event_handler,
activate_event_handler,
]
)