new update robot_localization
I have so time work with this package, last week i update this in other work_space and started to do test with old bags. I was surprised because a observation, now the front of base_link its Y???? Before was X. This is a modification? I link my rosbag https://www.dropbox.com/s/1kkzfjnf0bi...
-New package
-Old package
EDIT 2: I did a rosbag record https://www.dropbox.com/s/njkh0m9qox7... i launch a ekf with the same position and 4 times with each cardinal points, and the tf between utm and odom no changes the orientation.
EDIT 3: https://www.dropbox.com/s/ws428skxsg1...
I record a rosbag that during 12 minuts, the secuence is the next
MIN ACTIONS
0
Only launched gps and compass
Compass pointing to north
1
Launch ekf, navsat, tf
3
Shutdown ekf, navsat, tf
Compass pointing to south
4
Launch ekf, navsat, tf
6
Shutdown ekf, navsat, tf
Compass pointing to east
7
Launch ekf, navsat, tf
9
Shutdown ekf, navsat, tf
Compass pointing to west
10
Launch ekf, navsat, tf
12
This route is a 8x8 square meters course 3 times, first north, second west, then south and finally east. Square route according to the right-hand rule. https://www.dropbox.com/s/2fyeh3k06qo...
This is the launch file:
<!-- Ekf -->
<launch>
<param name="/use_sim_time" value="true" />
<node pkg="rosbag" type="play" name="rosbagplay" args="/home/jorge_j/example.bag --clock -d 3" required="true"/>
<node pkg="tf2_ros" type="static_transform_publisher" name="bl_imu" args="0.0 0.0 0.0 0.0 0.0 0.0 1.0 base_link compass" />
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" clear_params="true">
<param name="frequency" value="30"/>
<param name="sensor_timeout" value="0.1"/>
<param name="two_d_mode" value="true"/>
<param name="map_frame" value="map"/>
<param name="odom_frame" value="odom"/>
<param name="base_link_frame" value="base_link"/>
<param name="world_frame" value="odom"/>
<param name="transform_time_offset" value="0.0"/>
<param name="odom0" value="/odometry/gps"/>
<param name="imu0" value="/compass/data"/>
<rosparam param="odom0_config">[ true, true, false,
false, false, false,
false, false, false,
false, false, false,
false, false, false]</rosparam>
<rosparam param="imu0_config">[false, false, false,
false, false, true,
false, false, false,
false, false, false,
false, false, false]</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="imu0_remove_gravitational_acceleration" value="true"/>
<param name="print_diagnostics" value="true"/>
<param name="odom0_queue_size" value="10"/>
<param name="imu0_queue_size" value="10"/>
<param name="debug" value="false"/>
<param name="debug_out_file" value="debug_ekf_localization.txt"/>
<rosparam param="process_noise_covariance">[0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0.06, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0.03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0.03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 ...
Did you launch the EKF four times, or launch it once, and just turn the robot? Just trying to understand your process.
Launch it once, and just turn the robot
The transform isn't going to change if you rotate the robot and don't stop the node. You need to stop it, rotate the robot, then start it again. The UTM->odom transform is static.
I stop the node, rotate and then start again and the tf between odom and UTM has the same quaternion in all times. And my imu sensor only have data of yaw, so the matrix only have a true the yaw. The imu when pointing to East yaw=0 and when pointing to north yaw=90, is correct with my launch?
I already understand why need the imu data the navsat node. I want that the transform orientation between utm and odom is 0 and not a small amount. So that the Odom has the same orientation as the UTM.
You should probably ask that last question in a new question. This one is getting a little too long.