Skip to content

Commit d692710

Browse files
mergify[bot]hilary-luochristophfroehlich
authored
Mecanum Drive: Populate the pose covariance matrix (backport #1772) (#1806)
Co-authored-by: Hilary Luo <103377417+hilary-luo@users.noreply.github.com> Co-authored-by: Christoph Fröhlich <christophfroehlich@users.noreply.github.com>
1 parent d6b611f commit d692710

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

mecanum_drive_controller/src/mecanum_drive_controller.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,13 +167,14 @@ controller_interface::CallbackReturn MecanumDriveController::on_configure(
167167
rt_odom_state_publisher_->msg_.child_frame_id = params_.base_frame_id;
168168
rt_odom_state_publisher_->msg_.pose.pose.position.z = 0;
169169

170-
auto & covariance = rt_odom_state_publisher_->msg_.twist.covariance;
170+
auto & pose_covariance = rt_odom_state_publisher_->msg_.pose.covariance;
171+
auto & twist_covariance = rt_odom_state_publisher_->msg_.twist.covariance;
171172
constexpr size_t NUM_DIMENSIONS = 6;
172173
for (size_t index = 0; index < 6; ++index)
173174
{
174175
const size_t diagonal_index = NUM_DIMENSIONS * index + index;
175-
covariance[diagonal_index] = params_.pose_covariance_diagonal[index];
176-
covariance[diagonal_index] = params_.twist_covariance_diagonal[index];
176+
pose_covariance[diagonal_index] = params_.pose_covariance_diagonal[index];
177+
twist_covariance[diagonal_index] = params_.twist_covariance_diagonal[index];
177178
}
178179
rt_odom_state_publisher_->unlock();
179180

mecanum_drive_controller/test/mecanum_drive_controller_params.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ test_mecanum_drive_controller:
1616
odom_frame_id: "odom"
1717
enable_odom_tf: true
1818
twist_covariance_diagonal: [0.0, 7.0, 14.0, 21.0, 28.0, 35.0]
19-
pose_covariance_diagonal: [0.0, 7.0, 14.0, 21.0, 28.0, 35.0]
19+
pose_covariance_diagonal: [0.0, 6.0, 12.0, 18.0, 24.0, 30.0]
2020

2121

2222
test_mecanum_drive_controller_with_rotation:

mecanum_drive_controller/test/test_mecanum_drive_controller.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ TEST_F(MecanumDriveControllerTest, when_controller_is_configured_expect_all_para
6262
ASSERT_EQ(controller_->params_.kinematics.base_frame_offset.y, 0.0);
6363
ASSERT_EQ(controller_->params_.kinematics.base_frame_offset.theta, 0.0);
6464

65+
ASSERT_EQ(
66+
controller_->params_.pose_covariance_diagonal,
67+
std::vector<double>({0.0, 6.0, 12.0, 18.0, 24.0, 30.0}));
68+
ASSERT_EQ(
69+
controller_->params_.twist_covariance_diagonal,
70+
std::vector<double>({0.0, 7.0, 14.0, 21.0, 28.0, 35.0}));
71+
6572
ASSERT_EQ(
6673
controller_->params_.front_left_wheel_command_joint_name, TEST_FRONT_LEFT_CMD_JOINT_NAME);
6774
ASSERT_EQ(

0 commit comments

Comments
 (0)