Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,12 @@ class AprilTagNode : public rclcpp::Node
message_filters::Synchronizer<ExactPolicy> camera_image_sync_;

// Publishers
const rclcpp::Publisher<tf2_msgs::msg::TFMessage>::SharedPtr tf_pub_;
const rclcpp::Publisher<isaac_ros_apriltag_interfaces::msg::AprilTagDetectionArray>::SharedPtr
detections_pub_;

// TF broadcaster
std::unique_ptr<tf2_ros::TransformBroadcaster> tf_broadcaster_;

struct CUAprilTagImpl;
struct VPIAprilTagImpl;
struct AprilTagImpl;
Expand Down
8 changes: 5 additions & 3 deletions isaac_ros_apriltag/src/apriltag_node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ struct AprilTagNode::VPIAprilTagImpl : AprilTagNode::AprilTagImpl
}

node.detections_pub_->publish(msg_detections);
node.tf_pub_->publish(tfs);
node.tf_broadcaster_->sendTransform(tfs.transforms);

// Cleanup
CHECK_STATUS(vpiArrayUnlock(detections_pose_array));
Expand Down Expand Up @@ -532,7 +532,7 @@ struct AprilTagNode::CUAprilTagImpl : AprilTagNode::AprilTagImpl
}

node.detections_pub_->publish(msg_detections);
node.tf_pub_->publish(tfs);
node.tf_broadcaster_->sendTransform(tfs.transforms);
}

~CUAprilTagImpl()
Expand All @@ -555,7 +555,6 @@ AprilTagNode::AprilTagNode(const rclcpp::NodeOptions & options)
image_sub_{},
camera_info_sub_{},
camera_image_sync_{ExactPolicy{3}, image_sub_, camera_info_sub_},
tf_pub_(create_publisher<tf2_msgs::msg::TFMessage>("tf", rclcpp::QoS(100))),
detections_pub_{create_publisher<isaac_ros_apriltag_interfaces::msg::AprilTagDetectionArray>(
"tag_detections", rclcpp::QoS(1))}
{
Expand Down Expand Up @@ -583,6 +582,9 @@ AprilTagNode::AprilTagNode(const rclcpp::NodeOptions & options)
throw std::runtime_error(os.str());
}

// Create the TF broadcaster
tf_broadcaster_ = std::make_unique<tf2_ros::TransformBroadcaster>(this);

// Setup subscripts
camera_image_sync_.registerCallback(
std::bind(
Expand Down