ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
1) In the YAML file at the end of IMU params add
imu0_remove_gravitational_acceleration: true
So it should look like:
imu0_config: [false, false, false,
false, false, false,
false, false, false,
false, false, false,
true, true, true]
imu0_nodelay: false
imu0_differential: false
imu0_relative: true
imu0_queue_size: 1
imu0_pose_rejection_threshold: 5 # Note the difference in parameter names
imu0_twist_rejection_threshold: 5 #
imu0_linear_acceleration_rejection_threshold: 8 #
imu0_remove_gravitational_acceleration: true
2) Make sure your static TF of IMU and Camera are accurate and confirm if time stamps on accelerations are in sync with VIO
3) Suggestion : write a separate code to differentiate the Pose estimate of VIO to get linear velocities and transform it to body frame and feed it as a twist input measurement to the Robot_Localization module . according to this : https://github.com/cra-ros-pkg/robot_localization/blob/48b85fadd2c837b03a229f47ade8d05e65a03407/src/ekf.cpp#L267 only acceleration is used to predict velocity, I think you'd get more accurate data if you differentiate VIO pose.
Also, are you using the VIO provided by ETH zurich ? How did you manage to compile it for Kinetic, I've trying to compile ROVIO for weeks now.
2 | No.2 Revision |
1) In the YAML file at the end of IMU params add
imu0_remove_gravitational_acceleration: true
So it should look like:
imu0_config: [false, false, false,
false, false, false,
false, false, false,
false, false, false,
true, true, true]
imu0_nodelay: false
imu0_differential: false
imu0_relative: true
imu0_queue_size: 1
imu0_pose_rejection_threshold: 5 # Note the difference in parameter names
imu0_twist_rejection_threshold: 5 #
imu0_linear_acceleration_rejection_threshold: 8 #
imu0_remove_gravitational_acceleration: true
2) Make sure your static TF of IMU and Camera are accurate and confirm if time stamps on accelerations are in sync with VIO
3) Suggestion : write a separate code to differentiate the Pose estimate of VIO to get linear velocities and transform it to body frame and feed it as a twist input measurement to the Robot_Localization module . according to this : https://github.com/cra-ros-pkg/robot_localization/blob/48b85fadd2c837b03a229f47ade8d05e65a03407/src/ekf.cpp#L267 only acceleration is used to predict velocity, I think you'd get more accurate data if you differentiate VIO pose.
Also, are you using the VIO provided by ETH zurich ? How did you manage to compile it for Kinetic, Kinetic ? I've been trying to compile ROVIO for 16.04 for weeks now.
3 | No.3 Revision |
1) In the YAML file at the end of IMU params add
imu0_remove_gravitational_acceleration: true
So it should look like:
imu0_config: [false, false, false,
false, false, false,
false, false, false,
false, false, false,
true, true, true]
imu0_nodelay: false
imu0_differential: false
imu0_relative: true
imu0_queue_size: 1
imu0_pose_rejection_threshold: 5 # Note the difference in parameter names
imu0_twist_rejection_threshold: 5 #
imu0_linear_acceleration_rejection_threshold: 8 #
imu0_remove_gravitational_acceleration: true
2) Make sure your static TF of IMU and Camera to the base_link are accurate and confirm if time stamps on accelerations are in sync with VIO
3) Suggestion : write a separate code to differentiate the Pose estimate of VIO to get linear velocities and transform it to body frame and feed it as a twist input measurement to the Robot_Localization module . according to this : https://github.com/cra-ros-pkg/robot_localization/blob/48b85fadd2c837b03a229f47ade8d05e65a03407/src/ekf.cpp#L267 only acceleration is used to predict velocity, I think you'd get more accurate data if you differentiate VIO pose.
Also, are you using the VIO provided by ETH zurich ? How did you manage to compile it for Kinetic ? I've been trying to compile ROVIO for 16.04 for weeks now.