Program Listing for File transformer.h¶
↰ Return to documentation for file (voxblox_ros/include/voxblox_ros/transformer.h
)
#ifndef VOXBLOX_ROS_TRANSFORMER_H_
#define VOXBLOX_ROS_TRANSFORMER_H_
#include <geometry_msgs/TransformStamped.h>
#include <tf/transform_listener.h>
#include <string>
#include <voxblox/core/common.h>
namespace voxblox {
class Transformer {
public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Transformer(const ros::NodeHandle& nh, const ros::NodeHandle& nh_private);
bool lookupTransform(const std::string& from_frame,
const std::string& to_frame, const ros::Time& timestamp,
Transformation* transform);
void transformCallback(const geometry_msgs::TransformStamped& transform_msg);
private:
bool lookupTransformTf(const std::string& from_frame,
const std::string& to_frame,
const ros::Time& timestamp, Transformation* transform);
bool lookupTransformQueue(const ros::Time& timestamp,
Transformation* transform);
ros::NodeHandle nh_;
ros::NodeHandle nh_private_;
std::string world_frame_;
std::string sensor_frame_;
bool use_tf_transforms_;
int64_t timestamp_tolerance_ns_;
Transformation T_B_C_;
Transformation T_B_D_;
tf::TransformListener tf_listener_;
// l Only used if use_tf_transforms_ set to false.
ros::Subscriber transform_sub_;
// l Transform queue, used only when use_tf_transforms is false.
AlignedDeque<geometry_msgs::TransformStamped> transform_queue_;
};
} // namespace voxblox
#endif // VOXBLOX_ROS_TRANSFORMER_H_