diff --git a/src/collision_manager_alg_node.cpp b/src/collision_manager_alg_node.cpp index af20bdafb8e7db206ffe55ea566d8c6e7202454e..536e18be530cd0aeb09f58395e6825a6341eccda 100644 --- a/src/collision_manager_alg_node.cpp +++ b/src/collision_manager_alg_node.cpp @@ -484,11 +484,14 @@ bool CollisionManagerAlgNode::get_base_link_new_pose_from_icp(const Eigen::Vecto tf_map_new_blink = tf_map_new_laser*(_front? this->tf_blink_front_laser: this->tf_blink_rear_laser).inverse(); _blink_pose << tf_map_new_blink.getOrigin().x(), tf_map_new_blink.getOrigin().y(), tf2::getYaw(tf_map_new_blink.getRotation()); - Eigen::Quaternion<double> rot(tf_map_laser.getOrigin().w(), tf_map_laser.getOrigin().x(), tf_map_laser.getOrigin().y(), tf_map_laser.getOrigin().z()); + Eigen::Quaternion<double> rot(tf_map_laser.getRotation().w(), tf_map_laser.getRotation().x(), tf_map_laser.getRotation().y(), tf_map_laser.getRotation().z()); Eigen::Transform<double,3,Eigen::Affine> map_laser_rot(rot); _blink_cov = map_laser_rot*_covariances; + for (unsigned int i=0; i<9; i++) + _blink_cov(i) = std::fabs(_blink_cov(i))*(_covariances(i) < 0? -1: 1); + if (this->config_.debug) { if (_front)