75 ss <<
"[CpAprilTagVisualization] computeAggregatedMarker" << std::endl;
78 ss <<
"[CpAprilTagVisualization] getTagsWithinTime" << std::endl;
85 for (
auto & apriltag : tags)
87 avgX += apriltag.second.pose.position.x;
88 avgY += apriltag.second.pose.position.y;
89 avgZ += apriltag.second.pose.position.z;
96 "[CpAprilTagVisualization] no apriltags detected to visualize");
107 ss <<
"[CpAprilTagVisualization] detected " << tags.size() <<
" tags" << std::endl;
108 ss <<
"[CpAprilTagVisualization] avgX: " << avgX <<
", avgY: " << avgY <<
", avgZ: " << avgZ
111 tf2::Transform apriltagTransform;
112 apriltagTransform.setOrigin(tf2::Vector3(avgX, avgY, 0.0));
113 apriltagTransform.setRotation(tf2::Quaternion(0.0, 0.0, 0.0, 1.0));
117 ss <<
"[CpAprilTagVisualization] apriltagTransform: " << apriltagTransform.getOrigin().x()
118 <<
", " << apriltagTransform.getOrigin().y() <<
", " << apriltagTransform.getOrigin().z();
119 ss <<
"[CpAprilTagVisualization] globalApriltagTransform: "
123 RCLCPP_INFO_THROTTLE(
getLogger(), *(
getNode()->get_clock()), 1000, ss.str().c_str());
133 visualization_msgs::msg::MarkerArray markerArray;
135 visualization_msgs::msg::Marker marker;
136 marker.header.frame_id =
"map";
137 marker.header.stamp =
getNode()->now();
138 marker.ns =
"apriltag";
140 marker.action = visualization_msgs::msg::Marker::ADD;
143 marker.lifetime = rclcpp::Duration(0.5s);
146 marker.type = visualization_msgs::msg::Marker::SPHERE;
149 marker.pose.position.x = origin.x();
150 marker.pose.position.y = origin.y();
151 marker.pose.position.z = origin.z();
154 marker.pose.orientation.w = rotation.w();
155 marker.pose.orientation.y = rotation.y();
156 marker.pose.orientation.z = rotation.z();
157 marker.pose.orientation.x = rotation.x();
159 RCLCPP_INFO_THROTTLE(
161 "[CpAprilTagVisualization] marker position: %f, %f, %f", origin.x(), origin.y(),
165 marker.color.r = 1.0;
166 marker.color.g = 0.0;
167 marker.color.b = 0.0;
168 marker.color.a = 1.0;
170 marker.scale.x = 0.1;
171 marker.scale.y = 0.1;
172 marker.scale.z = 0.1;
174 markerArray.markers.push_back(marker);