robot_pose_ekfの動作について
ROS Melodicの環境下でrobot_pose_ekfの検証を実施しています。
車体はAgileX Roboticss車のscout_miniという車両です。
https://github.com/agilexrobotics/scout_ros
車体については下記のLaunchファイルで起動しています。
roslaunch scout_bringup scout_miniomni_robot_base.launch
IMUはWITMOTION WT901を使用しているのですが、odom_combinedがpublishされません。
何が問題なのか教えていただけると幸いです。
発生しているエラーは下記の様な状況です。
[ERROR] [1689771599.758436445, 8575.844000000]: Covariance specified for measurement on topic wheelodom is zero
[ERROR] [1689771599.781066368, 8575.865000000]: Covariance specified for measurement on topic wheelodom is zero
robot_pose_ekfのLaunchは以下となります。
<launch>
Imuに対するTFの定義
<node pkg="tf" type="static_transform_publisher" name="imu_broadcaster" args="0 0 0 0 0 0 /base_link /imu_link 100" />
<node pkg="tf" type="static_transform_publisher" name="odom_broadcaster" args="0 0 0 0 0 0 /base_link /odom_link 100" />
<node pkg="tf" type="static_transform_publisher" name="static_transform" args="0 0 0 0 0 0 /base_footprint /base_link 100"/>
<!-- Loading IMU Driver -->
<include file="$(find wit_node)/launch/wit.launch" />
<!-- Loading Robot Pose EKF -->
<arg name="output_frame" default="odom"/>
<arg name="base_footprint_frame" default="base_footprint"/>
<arg name="freq" default="10.0"/>
<arg name="sensor_timeout" default="1.0"/>
<arg name="odom_used" default="true"/>
<arg name="imu_used" default="true"/>
<arg name="vo_used" default="false"/>
<!-- <remap from="odom" to="odom"/> -->
<remap from="imu_data" to="imu"/>
<node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
<param name="output_frame" value="$(arg output_frame)"/>
<param name="base_footprint_frame" value="$(arg base_footprint_frame)"/>
<param name="freq" value="$(arg freq)"/>
<param name="sensor_timeout" value="$(arg sensor_timeout)"/>
<param name="odom_used" value="$(arg odom_used)"/>
<param name="imu_used" value="$(arg imu_used)"/>
<param name="vo_used" value="$(arg vo_used)"/>
</node>
</launch>
自分で試したこと
下記にあるTroubleshootingは確認しました。
http://wiki.ros.org/robot_pose_ekf/Troubleshooting
①rosrun robot_pose_ekf wtf.py
rosrun robot_pose_ekf wtf.py
looking for node robot_pose_ekf...
Input:
* Odometry sensor
- is used
- is active
- received 1330 messages
- listens to topic /odom
* IMU sensor
- is used
- is active
- received 915 messages
- listens to topic /imu
* Visual Odometry sensor
- is NOT used
- is NOT active
- received 0 messages
- listens to topic
* GPS sensor
- is NOT used
- is NOT active
- received 0 messages
- listens to topic
Output:
* Robot pose ekf filter
- is active
- sent 0 messages
- pulishes on topics /robot_pose_ekf/odom_combined and /tf
②rostopic hz /odom
rostopic hz /odom
subscribed to [/odom]
WARNING: may be using simulated time
average rate: 50.000
min: 0.017s max: 0.023s std dev: 0.00148s window: 43
average rate: 50.000
min: 0.016s max: 0.026s std dev: 0.00147s window: 89
average rate: 50.019
③rostopic hz /imu
WARNING: may be using simulated time
average rate: 32.634
min: 0.000s max: 0.052s std dev: 0.01644s window: 29
average rate: 32.295
min: 0.000s max: 0.052s std dev: 0.01582s window: 58
average rate: 32.150
④rostopic echo /odom
---
header:
seq: 57512
stamp:
secs: 10121
nsecs: 62000000
frame_id: "odom"
child_frame_id: "base_link"
pose:
pose:
position:
x: 4.40049318173e-05
y: 2.07419614007e-06
z: 0.0
orientation:
x: 0.0
y: 0.0
z: -4.69999983734e-05
w: 0.999999998896
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
twist:
twist:
linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
---
⑤rostopic echo /imu
header:
seq: 27073
stamp:
secs: 9992
nsecs: 17000000
frame_id: "imu_link"
orientation:
x: -0.0344246564418
y: -0.21234175224
z: 0.875935295928
w: 0.431813942147
orientation_covariance: [0.001, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.001]
angular_velocity:
x: 0.0
y: 0.0
z: 0.0
angular_velocity_covariance: [1e-05, 0.0, 0.0, 0.0, 1e-05, 0.0, 0.0, 0.0, 1e-05]
linear_acceleration:
x: 1.18671875
y: -3.86162109375
z: 8.74248046875
linear_acceleration_covariance: [0.01, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.01]
---
0