Program Listing for File imu_param_handler.hpp

Return to documentation for file (/tmp/ws/src/depthai-ros/depthai_ros_driver/include/depthai_ros_driver/param_handlers/imu_param_handler.hpp)

#pragma once

#include <memory>
#include <string>
#include <vector>

#include "depthai-shared/properties/IMUProperties.hpp"
#include "depthai/pipeline/datatype/CameraControl.hpp"
#include "depthai_bridge/ImuConverter.hpp"
#include "depthai_ros_driver/param_handlers/base_param_handler.hpp"

namespace dai {
namespace node {
class IMU;
}
}  // namespace dai

namespace rclcpp {
class Node;
class Parameter;
}  // namespace rclcpp

namespace depthai_ros_driver {
namespace param_handlers {
namespace imu {
enum class ImuMsgType { IMU, IMU_WITH_MAG, IMU_WITH_MAG_SPLIT };
}
class ImuParamHandler : public BaseParamHandler {
   public:
    explicit ImuParamHandler(rclcpp::Node* node, const std::string& name);
    ~ImuParamHandler();
    void declareParams(std::shared_ptr<dai::node::IMU> imu, const std::string& imuType);
    dai::CameraControl setRuntimeParams(const std::vector<rclcpp::Parameter>& params) override;
    std::unordered_map<std::string, dai::ros::ImuSyncMethod> imuSyncMethodMap;
    std::unordered_map<std::string, imu::ImuMsgType> imuMessagetTypeMap;
    std::unordered_map<std::string, dai::IMUSensor> rotationVectorTypeMap;
    imu::ImuMsgType getMsgType();
    dai::ros::ImuSyncMethod getSyncMethod();
};
}  // namespace param_handlers
}  // namespace depthai_ros_driver