I am looking to use the EKF node of the Robot localization package to localize my quadcopter but I do not have a odometry sensor on my robot. I have the following - Pose values obtained from visual odomtery and another set of pose values from Hector SLAM.
Is it that the process model of the package is based on the odomtery values and wont work without them.
The diagnostics topic say that no event has been recorded. Can I do something like pusblishing these pose messages as nav_odometry messgages?
Can I get some more clarity on using this package?
EDIT:
In response to Tom's answer :- I kind of recognized the mistake a while ago. I have made the following changes - I no longer use Hector slam values. I am using the visual odometry as the odom message and imu data on my robot as well. The following is my latest launch file
<launch>
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" clear_params="true">
<param name="frequency" value="10"/>
<param name="sensor_timeout" value="0.1"/>
<param name="two_d_mode" value="false"/>
<param name="odom_frame" value="vo"/>
<param name="base_link_frame" value="imu_f"/>
<param name="world_frame" value="vo"/>
<param name="transform_time_offset" value="0.0"/>
<param name = "odom0" value = "/vo"/>
<rosparam param="odom0_config">[true, true, true,
true, true, true,
false, false, false,
false, false, false,
false, false, false]</rosparam>
<param name = "imu0" value = "/imu_data_frames"/>
<rosparam param="imu0_config">[false, false, false,
true, true, true,
false, false, false,
true, true, true,
true, true, true]</rosparam>
<param name="odom0_differential" value="false"/>
<param name="imu0_differential" value="false"/>
<param name="odom0_relative" value="false"/>
<param name="imu0_relative" value="false"/>
<param name="print_diagnostics" value="true"/>
I am publishing the visual odometry(pose from the AR marker) on the odom frame and the imu data(orient, ang vel, lin acc) on the imu topic. With regards to the frames - I have removed the map frame since I dont have one. Since my goal is trying to estimate the pose of the AR marker with respect to the camera I want the imu values in the camera frame as well and hence I publish a static transform from imu_f(imu frame) to vo(camera frame) as follows
<node pkg ="tf" type="static_transform_publisher" name="my_broadcast" args="0.44 0 0.22 0 0 1.57 imu_f vo 100" />
I am getting values on /odometry/filtered but with the above configuration, the covariance on the pose just explodes. Is it because the package itself provides a tranform from odom to base_link and with me providing the opposite transform, it just messes up. Any suggestions on how I can set it right?
Originally posted by nagsaver on ROS Answers with karma: 13 on 2015-10-28
Post score: 0