@@ -52,7 +52,7 @@ class ImuBiasLockBaseROS : public DualSensingModule<sensor_msgs::msg::Imu, Joint
5252{
5353public:
5454 ImuBiasLockBaseROS () = delete ;
55- ImuBiasLockBaseROS (rclcpp::Node::SharedPtr nh);
55+ ImuBiasLockBaseROS (rclcpp::Node::SharedPtr nh,Eigen::Isometry3d ins_to_body );
5656 RBISUpdateInterface* processMessage (const sensor_msgs::msg::Imu *msg, StateEstimator *est) /* override*/ ;
5757 // tf2_ros::Buffer tfBuffer;
5858
@@ -86,7 +86,8 @@ class ImuBiasLockBaseROS : public DualSensingModule<sensor_msgs::msg::Imu, Joint
8686};
8787
8888template <class JointStateT >
89- ImuBiasLockBaseROS<JointStateT>::ImuBiasLockBaseROS(rclcpp::Node::SharedPtr nh) : nh_(nh)
89+ ImuBiasLockBaseROS<JointStateT>::ImuBiasLockBaseROS(rclcpp::Node::SharedPtr nh,
90+ Eigen::Isometry3d ins_to_body) : nh_(nh)
9091{
9192 tf2_ros::Buffer tfBuffer (nh_->get_clock ());
9293 tf2_ros::TransformListener tf_imu_to_body_listener_ (tfBuffer);
@@ -108,19 +109,19 @@ ImuBiasLockBaseROS<JointStateT>::ImuBiasLockBaseROS(rclcpp::Node::SharedPtr nh)
108109 std::string base_frame = " base" ;
109110 nh_->get_parameter_or <std::string>(ins_param_prefix + " base_link_name" , base_frame, " base" );
110111 RCLCPP_INFO_STREAM (nh_->get_logger (), " [ImuBiasLockBaseROS] Name of base_link: '" << base_frame << " '" );
111- Eigen::Isometry3d ins_to_body = Eigen::Isometry3d::Identity ();
112- while (rclcpp::ok ()) {
113- try {
114- // lookupTransform API is : target_frame, source_frame
115- geometry_msgs::msg::TransformStamped temp_transform = tfBuffer.lookupTransform (base_frame, imu_frame, tf2::TimePointZero);
116- ins_to_body = tf2::transformToEigen (temp_transform.transform );
117- RCLCPP_INFO_STREAM (nh_->get_logger (), " IMU (" << imu_frame << " ) to base (" << base_frame << " ) transform: translation=(" << ins_to_body.translation ().transpose () << " ), rotation=(" << ins_to_body.rotation () << " )" );
118- break ;
119- } catch (const tf2::TransformException& ex) {
120- RCLCPP_ERROR (nh_->get_logger (), " %s" , ex.what ());
121- rclcpp::sleep_for (std::chrono::seconds (1 ));
122- }
123- }
112+ // Eigen::Isometry3d ins_to_body = Eigen::Isometry3d::Identity();
113+ // while (rclcpp::ok()) {
114+ // try {
115+ // // lookupTransform API is : target_frame, source_frame
116+ // geometry_msgs::msg::TransformStamped temp_transform = tfBuffer.lookupTransform(base_frame, imu_frame, tf2::TimePointZero);
117+ // ins_to_body = tf2::transformToEigen(temp_transform.transform);
118+ // RCLCPP_INFO_STREAM(nh_->get_logger(), "IMU (" << imu_frame << ") to base (" << base_frame << ") transform: translation=(" << ins_to_body.translation().transpose() << "), rotation=(" << ins_to_body.rotation() << ")");
119+ // break;
120+ // } catch (const tf2::TransformException& ex) {
121+ // RCLCPP_ERROR(nh_->get_logger(), "%s", ex.what());
122+ // rclcpp::sleep_for(std::chrono::seconds(1));
123+ // }
124+ // }
124125
125126 quadruped::ImuBiasLockConfig cfg;
126127 nh_->get_parameter_or (lock_param_prefix + " torque_threshold" , cfg.torque_threshold_ , 0.0 );
@@ -165,7 +166,6 @@ ImuBiasLockBaseROS<JointStateT>::ImuBiasLockBaseROS(rclcpp::Node::SharedPtr nh)
165166 base_arrow_.color .r = 0 ;
166167 base_arrow_.color .g = 1 ;
167168 }
168-
169169 bias_lock_module_ = std::make_unique<quadruped::ImuBiasLock>(ins_to_body, cfg);
170170}
171171
@@ -268,7 +268,7 @@ bool ImuBiasLockBaseROS<JointStateT>::processMessageInit(
268268class ImuBiasLockROS_Sim : public ImuBiasLockBaseROS <sensor_msgs::msg::JointState>
269269{
270270public:
271- ImuBiasLockROS_Sim (rclcpp::Node::SharedPtr nh);
271+ ImuBiasLockROS_Sim (rclcpp::Node::SharedPtr nh, Eigen::Isometry3d ins_to_body );
272272 virtual ~ImuBiasLockROS_Sim () = default ;
273273
274274 RBISUpdateInterface* processMessage (const sensor_msgs::msg::Imu *msg, StateEstimator *est) /* override*/ ;
@@ -288,7 +288,7 @@ class ImuBiasLockROS_Sim : public ImuBiasLockBaseROS<sensor_msgs::msg::JointStat
288288class ImuBiasLockWithAccelerationROS : public ImuBiasLockBaseROS <pronto_msgs::msg::JointStateWithAcceleration>
289289{
290290public:
291- ImuBiasLockWithAccelerationROS (rclcpp::Node::SharedPtr nh) : ImuBiasLockBaseROS<pronto_msgs::msg::JointStateWithAcceleration>(nh) {}
291+ ImuBiasLockWithAccelerationROS (rclcpp::Node::SharedPtr nh, Eigen::Isometry3d ins_to_body ) : ImuBiasLockBaseROS<pronto_msgs::msg::JointStateWithAcceleration>(nh,ins_to_body ) {}
292292 virtual ~ImuBiasLockWithAccelerationROS () = default ;
293293
294294 void processSecondaryMessage (const pronto_msgs::msg::JointStateWithAcceleration &msg);
@@ -297,7 +297,7 @@ class ImuBiasLockWithAccelerationROS : public ImuBiasLockBaseROS<pronto_msgs::ms
297297class ImuBiasLockROS : public ImuBiasLockBaseROS <pi3hat_moteus_int_msgs::msg::JointsStates>
298298{
299299public:
300- ImuBiasLockROS (rclcpp::Node::SharedPtr nh);
300+ ImuBiasLockROS (rclcpp::Node::SharedPtr nh, Eigen::Isometry3d ins_to_body );
301301 virtual ~ImuBiasLockROS () = default ;
302302
303303 RBISUpdateInterface* processMessage (const sensor_msgs::msg::Imu *msg, StateEstimator *est) /* override*/ ;
0 commit comments