NoviceRos
@NoviceRos

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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

No Answers yet.

Your answer might help someone💌