.. _program_listing_file__tmp_ws_src_depthai-ros_depthai_bridge_include_depthai_bridge_TFPublisher.hpp: Program Listing for File TFPublisher.hpp ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/depthai-ros/depthai_bridge/include/depthai_bridge/TFPublisher.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "depthai-shared/common/CameraFeatures.hpp" #include "depthai/device/CalibrationHandler.hpp" #include "geometry_msgs/msg/quaternion.hpp" #include "geometry_msgs/msg/transform_stamped.hpp" #include "nlohmann/json.hpp" #include "rclcpp/node.hpp" #include "rclcpp/parameter_client.hpp" #include "tf2_ros/static_transform_broadcaster.h" namespace dai { namespace ros { class TFPublisher { public: explicit TFPublisher(rclcpp::Node* node, const dai::CalibrationHandler& calHandler, const std::vector& camFeatures, const std::string& camName, const std::string& camModel, const std::string& baseFrame, const std::string& parentFrame, const std::string& camPosX, const std::string& camPosY, const std::string& camPosZ, const std::string& camRoll, const std::string& camPitch, const std::string& camYaw, const std::string& imuFromDescr, const std::string& customURDFLocation, const std::string& customXacroArgs); std::string getURDF(); geometry_msgs::msg::Quaternion quatFromRotM(nlohmann::json rotMatrix); geometry_msgs::msg::Vector3 transFromExtr(nlohmann::json translation); private: void convertModelName(); std::string prepareXacroArgs(); void publishDescription(); void publishCamTransforms(nlohmann::json camData, rclcpp::Node* node); void publishImuTransform(nlohmann::json json, rclcpp::Node* node); bool modelNameAvailable(); std::string getCamSocketName(int socketNum); std::unique_ptr _paramClient; std::shared_ptr _tfPub; std::string _camName; std::string _camModel; std::string _baseFrame; std::string _parentFrame; std::string _camPosX; std::string _camPosY; std::string _camPosZ; std::string _camRoll; std::string _camPitch; std::string _camYaw; std::string _imuFromDescr; std::string _customURDFLocation; std::string _customXacroArgs; std::vector _camFeatures; rclcpp::Logger _logger; const std::unordered_map _socketNameMap = { {dai::CameraBoardSocket::AUTO, "rgb"}, {dai::CameraBoardSocket::CAM_A, "rgb"}, {dai::CameraBoardSocket::CAM_B, "left"}, {dai::CameraBoardSocket::CAM_C, "right"}, {dai::CameraBoardSocket::CAM_D, "left_back"}, {dai::CameraBoardSocket::CAM_E, "right_back"}, }; }; } // namespace ros } // namespace dai