두 오도메트리 또는 모션 데이터를 입력받아 두 오도메트리 간 회전 calibration 정보를 추정
- nav_msgs::Odometry
- geometry_msgs::PoseStamped
- geometry_msgs::TwistStamped
To install this package, follow these steps:
- Clone the repository to your local machine.
cd {YOUR ROS WS}/src
git clone https://github.com/Onlyti/ros_odom_based_calibration.git
- Build the package and source the workspace
cd {YOUR ROS WS}
catkin_make
source devel/setup.bash
To use this package, follow these steps:
- Adjust ROS topic information in "launch/calibration_odom_based.launch"
- Adjuct calibration configure in "config/odom_based_calibration.ini"
- Launch the calibration node using
roslaunch calibration_odom_based calibration.launch
.
The four parameter for use.
- odom1_topic: The odometry topic name and odom1 is reference frame for calibration
- odom2_topic: The odometry topic name and odom2 is target frame for calibration
The calibration_odom_based support multiple topic type for input.
- ODOM_TYPE_NAV_MSGS_ODOM: nav_msgs::Odometry
- ODOM_TYPE_GEO_MSGS_TWIST: geometry_msgs::TwistStamped
- ODOM_TYPE_GEO_MSGS_POSESTAMPED: geometry_msgs::PoseStamped
Set parameter as one of topic type to use.
- odom1_type: The topic msg type of odom1
- odom2_type: The topic msg type of odom2
The calibration_odom_based only estimate rotational calibration parameter.
The Algorithm
[Config]
cfg_i_que_input_max_size_: Input topic buffer length
cfg_i_que_keyframe_max_size_: Odometry pair buffer length. Odometry pair used to estimate rotation parameter.
cfg_d_keyframe_dist_threshold_m_: Keyframe generation condition. Minimum translation distance threshold.
cfg_d_keyframe_rot_threshold_deg_: Keyframe generation condition. Minimum roatation angle threhshold.
cfg_d_keyframe_slow_threshold_mps_: Velociey rejection threshold. Nagative value means no rejection. If some keyframe has to slow data then reject.
cfg_d_time_delay_odom1_to_odom2_sec_: Time delay parameter. Some case odometry is delayed. [odom2 actual time = odom2 time - odom2 delay]
cfg_d_calib_update_rate_: Just for smoosness. [0~1]
[Calib] ** IMPORTANT **
# Known translation parameters from odom1 to odom2
cfg_d_cal_t_x_m_: Known translational calibration parameter.
cfg_d_cal_t_y_m_: Known translational calibration parameter.
cfg_d_cal_t_z_m_: Known translational calibration parameter.
# In the monotonic straight driving synario, the drive directional rotation parameter has less information. Specifically, normaly vehicle drive toward, roll can not be determined. So can fix some parameter.
cfg_b_cal_use_predef_roll_: The flag for use user define parmeter. If true do not estimate.
cfg_d_cal_r_roll_deg_: User defined calibration parameter. Each parameter affect the other calibration parameter result.
cfg_b_cal_use_predef_pitch_: The flag for use user define parmeter. If true do not estimate.
cfg_d_cal_r_pitch_deg_: User defined calibration parameter. Each parameter affect the other calibration parameter result.
cfg_b_cal_use_predef_yaw_: The flag for use user define parmeter. If true do not estimate.
cfg_d_cal_r_yaw_deg_: User defined calibration parameter. Each parameter affect the other calibration parameter result.
[FDE] # Fault Data Exclusion
cfg_d_fde_max_translation_error_threshold_m_: Fault rejection condition with two odometry pair haas difference.
cfg_d_fde_max_rotation_error_threshold_deg_: Fault rejection condition with two odometry pair haas difference.
TBD