Open
Description
不具合の概要
ROS 2 Jazzyでlaunch経由でIMUノードを起動しようとしていますがエラーになります。
実行環境
- OS: Ubuntu 24.04
- ソフトのバージョン: ros-jazzy-rt-usb-9axisimu-driver 3.0.0-1noble.20250430.001406
再現方法
sudo apt install ros-jazzy-rt-usb-9axisimu-driver
でインストールした後、以下のlaunchを起動する。
import os
import launch
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, EmitEvent, RegisterEventHandler
from launch.substitutions import LaunchConfiguration
from launch.event_handlers.on_process_start import OnProcessStart
from launch_ros.actions import LifecycleNode
import launch_ros.events
import lifecycle_msgs.msg
def generate_launch_description():
imu_node = LifecycleNode(
namespace='',
package='rt_usb_9axisimu_driver',
executable='rt_usb_9axisimu_driver',
name='rt_usb_9axisimu_driver',
parameters=[{
'port': '/dev/rt9axisimu'
}]
)
configure_state_handler = RegisterEventHandler(
OnProcessStart(
target_action=imu_node,
on_start=[
EmitEvent(
event=launch_ros.events.lifecycle.ChangeState(
lifecycle_node_matcher=launch.events.matches_action(imu_node),
transition_id=lifecycle_msgs.msg.Transition.TRANSITION_CONFIGURE,
)
)
]
)
)
active_state_handler = RegisterEventHandler(
launch_ros.event_handlers.OnStateTransition(
target_lifecycle_node=imu_node,
start_state='configuring', goal_state='inactive',
entities=[
EmitEvent(
event=launch_ros.events.lifecycle.ChangeState(
lifecycle_node_matcher=launch.events.matches_action(imu_node),
transition_id=lifecycle_msgs.msg.Transition.TRANSITION_ACTIVATE,
)
)
]
)
)
return LaunchDescription([
imu_node,
configure_state_handler,
active_state_handler,
])
期待する動作
以下のトピックが購読できる。
ros2 topic echo /imu/data_raw
ログ・画像
launch実行すると以下のエラーが出ます。
[rt_usb_9axisimu_driver-1] [INFO] [1747284437.316351876] [rt_usb_9axisimu_driver]: on_configure() is called.
[rt_usb_9axisimu_driver-1] [INFO] [1747284437.334739567] [rt_usb_9axisimu_driver]: Data format is ascii.
[rt_usb_9axisimu_driver-1] [INFO] [1747284437.337637029] [rt_usb_9axisimu_driver]: on_activate() is called.
[rt_usb_9axisimu_driver-1] [ERROR] [1747284437.337651309] [rt_usb_9axisimu_driver]: readSensorData() returns FAILURE, please check your devices.
[rt_usb_9axisimu_driver-1] [WARN] [1747284437.337673361] [rt_usb_9axisimu_driver]: Error occurred while doing error handling.
[rt_usb_9axisimu_driver-1] [INFO] [1747284437.337675954] [rt_usb_9axisimu_driver]: on_error() is called.
[ERROR] [launch_ros.utilities.lifecycle_event_manager]: Failed to make transition 'TRANSITION_ACTIVATE' for LifecycleNode '/rt_usb_9axisimu_driver'
その他
ros2 runから実行すると問題なくキャプチャできています。
ros2 run rt_usb_9axisimu_driver rt_usb_9axisimu_driver --ros-args -p port:=/dev/rt9axisimu
ros2 lifecycle set rt_usb_9axisimu_driver configure
ros2 lifecycle set rt_usb_9axisimu_driver activate