RosDevice.hpp
Go to the documentation of this file.
1 #ifndef _ASTRA_ROS_ROS_DEVICE_HPP_
2 #define _ASTRA_ROS_ROS_DEVICE_HPP_
3 
4 #include <ros/ros.h>
5 
7 #include <dynamic_reconfigure/server.h>
9 
10 #include "astra_ros/DeviceConfig.h"
11 
12 #include "astra_ros/BodyFrame.h"
13 
14 #include "astra_ros/GetChipId.h"
15 #include "astra_ros/GetDepthRegistration.h"
16 #include "astra_ros/GetImageStreamMode.h"
17 #include "astra_ros/GetImageStreamModes.h"
18 #include "astra_ros/GetIrExposure.h"
19 #include "astra_ros/GetIrGain.h"
20 #include "astra_ros/GetMirrored.h"
21 #include "astra_ros/GetRunning.h"
22 #include "astra_ros/GetSerial.h"
23 #include "astra_ros/GetUsbInfo.h"
24 #include "astra_ros/SetDepthRegistration.h"
25 #include "astra_ros/SetImageStreamMode.h"
26 #include "astra_ros/SetIrExposure.h"
27 #include "astra_ros/SetIrGain.h"
28 #include "astra_ros/SetMirrored.h"
29 #include "astra_ros/SetRunning.h"
30 
31 #include "Device.hpp"
32 
33 namespace astra_ros
34 {
35  class RosDevice
36  {
37  public:
45  RosDevice(const std::string &name, ros::NodeHandle &nh, ros::NodeHandle &pnh);
46 
50  const std::string &getName() const noexcept;
51 
56  void update();
57 
58  private:
60 
61  void onFrame(const Device::Frame &frame);
62  void onDynamicReconfigure(DeviceConfig &config, uint32_t level);
63 
64  bool onGetChipId(GetChipId::Request &req, GetChipId::Response &res);
65  bool onGetDepthRegistration(GetDepthRegistration::Request &req, GetDepthRegistration::Response &res);
66  bool onGetColorImageStreamMode(GetImageStreamMode::Request &req, GetImageStreamMode::Response &res);
67  bool onGetDepthImageStreamMode(GetImageStreamMode::Request &req, GetImageStreamMode::Response &res);
68  bool onGetIrImageStreamMode(GetImageStreamMode::Request &req, GetImageStreamMode::Response &res);
69  bool onGetColorImageStreamModes(GetImageStreamModes::Request &req, GetImageStreamModes::Response &res);
70  bool onGetDepthImageStreamModes(GetImageStreamModes::Request &req, GetImageStreamModes::Response &res);
71  bool onGetIrImageStreamModes(GetImageStreamModes::Request &req, GetImageStreamModes::Response &res);
72  bool onGetIrExposure(GetIrExposure::Request &req, GetIrExposure::Response &res);
73  bool onGetIrGain(GetIrGain::Request &req, GetIrGain::Response &res);
74  bool onGetColorMirrored(GetMirrored::Request &req, GetMirrored::Response &res);
75  bool onGetDepthMirrored(GetMirrored::Request &req, GetMirrored::Response &res);
76  bool onGetIrMirrored(GetMirrored::Request &req, GetMirrored::Response &res);
77  bool onGetColorRunning(GetRunning::Request &req, GetRunning::Response &res);
78  bool onGetDepthRunning(GetRunning::Request &req, GetRunning::Response &res);
79  bool onGetIrRunning(GetRunning::Request &req, GetRunning::Response &res);
80  bool onGetSerial(GetSerial::Request &req, GetSerial::Response &res);
81  bool onGetColorUsbInfo(GetUsbInfo::Request &req, GetUsbInfo::Response &res);
82  bool onGetDepthUsbInfo(GetUsbInfo::Request &req, GetUsbInfo::Response &res);
83  bool onGetIrUsbInfo(GetUsbInfo::Request &req, GetUsbInfo::Response &res);
84  bool onSetDepthRegistration(SetDepthRegistration::Request &req, SetDepthRegistration::Response &res);
85  bool onSetColorImageStreamMode(SetImageStreamMode::Request &req, SetImageStreamMode::Response &res);
86  bool onSetDepthImageStreamMode(SetImageStreamMode::Request &req, SetImageStreamMode::Response &res);
87  bool onSetIrImageStreamMode(SetImageStreamMode::Request &req, SetImageStreamMode::Response &res);
88  bool onSetIrExposure(SetIrExposure::Request &req, SetIrExposure::Response &res);
89  bool onSetIrGain(SetIrGain::Request &req, SetIrGain::Response &res);
90  bool onSetColorMirrored(SetMirrored::Request &req, SetMirrored::Response &res);
91  bool onSetDepthMirrored(SetMirrored::Request &req, SetMirrored::Response &res);
92  bool onSetIrMirrored(SetMirrored::Request &req, SetMirrored::Response &res);
93  bool onSetColorRunning(SetRunning::Request &req, SetRunning::Response &res);
94  bool onSetDepthRunning(SetRunning::Request &req, SetRunning::Response &res);
95  bool onSetIrRunning(SetRunning::Request &req, SetRunning::Response &res);
96 
97  std::string name_;
101 
103 
104  typedef dynamic_reconfigure::Server<DeviceConfig> DeviceConfigServer;
105 
106  // DeviceConfigServer isn't movable (w.r.t. move semantics), so we wrap it in a unique_ptr
107  std::unique_ptr<boost::recursive_mutex> mut_;
108  std::unique_ptr<DeviceConfigServer> dynamic_reconfigure_server_;
109 
110  std::unique_ptr<tf2_ros::TransformBroadcaster> tf_broadcaster_;
111 
115  std::string body_frame_id;
116 
118 
119  orbbec_camera_params camera_parameters_;
120 
123 
131 
135 
136 
169  };
170 
171  extern const std::string DEVICE_NAMESPACE;
172 }
173 
174 #endif
astra_ros::Device::Ptr
std::shared_ptr< Device > Ptr
Definition: Device.hpp:24
astra_ros::RosDevice::onSetDepthRegistration
bool onSetDepthRegistration(SetDepthRegistration::Request &req, SetDepthRegistration::Response &res)
Definition: RosDevice.cpp:847
astra_ros::RosDevice::onSetColorImageStreamMode
bool onSetColorImageStreamMode(SetImageStreamMode::Request &req, SetImageStreamMode::Response &res)
Definition: RosDevice.cpp:861
astra_ros::RosDevice::onSetIrExposure
bool onSetIrExposure(SetIrExposure::Request &req, SetIrExposure::Response &res)
Definition: RosDevice.cpp:900
astra_ros::RosDevice::get_depth_image_stream_mode_svc_
ros::ServiceServer get_depth_image_stream_mode_svc_
Definition: RosDevice.hpp:140
ros::Publisher
astra_ros::RosDevice::onGetIrUsbInfo
bool onGetIrUsbInfo(GetUsbInfo::Request &req, GetUsbInfo::Response &res)
Definition: RosDevice.cpp:838
image_transport::ImageTransport
astra_ros::RosDevice::onSetColorMirrored
bool onSetColorMirrored(SetMirrored::Request &req, SetMirrored::Response &res)
Definition: RosDevice.cpp:922
astra_ros::RosDevice::onFrame
void onFrame(const Device::Frame &frame)
Definition: RosDevice.cpp:315
astra_ros::RosDevice::image_transport_
image_transport::ImageTransport image_transport_
Definition: RosDevice.hpp:102
astra_ros::RosDevice::onGetDepthRunning
bool onGetDepthRunning(GetRunning::Request &req, GetRunning::Response &res)
Definition: RosDevice.cpp:794
astra_ros::RosDevice::get_ir_running_svc_
ros::ServiceServer get_ir_running_svc_
Definition: RosDevice.hpp:152
astra_ros::RosDevice::publish_body_mask
bool publish_body_mask
Definition: RosDevice.hpp:113
astra_ros::RosDevice::set_ir_gain_svc_
ros::ServiceServer set_ir_gain_svc_
Definition: RosDevice.hpp:162
astra_ros::RosDevice::onGetColorMirrored
bool onGetColorMirrored(GetMirrored::Request &req, GetMirrored::Response &res)
Definition: RosDevice.cpp:746
astra_ros::RosDevice::getName
const std::string & getName() const noexcept
Definition: RosDevice.cpp:198
ros.h
astra_ros::RosDevice::get_depth_mirrored_svc_
ros::ServiceServer get_depth_mirrored_svc_
Definition: RosDevice.hpp:148
astra_ros::RosDevice::camera_parameters_
orbbec_camera_params camera_parameters_
Definition: RosDevice.hpp:119
astra_ros::RosDevice::colorized_body_image_pub_
image_transport::Publisher colorized_body_image_pub_
Definition: RosDevice.hpp:129
astra_ros::RosDevice::set_ir_running_svc_
ros::ServiceServer set_ir_running_svc_
Definition: RosDevice.hpp:168
astra_ros::RosDevice::onGetIrMirrored
bool onGetIrMirrored(GetMirrored::Request &req, GetMirrored::Response &res)
Definition: RosDevice.cpp:772
astra_ros::RosDevice::set_ir_exposure_svc_
ros::ServiceServer set_ir_exposure_svc_
Definition: RosDevice.hpp:161
astra_ros::RosDevice::onGetColorUsbInfo
bool onGetColorUsbInfo(GetUsbInfo::Request &req, GetUsbInfo::Response &res)
Definition: RosDevice.cpp:820
astra_ros::RosDevice::set_depth_mirrored_svc_
ros::ServiceServer set_depth_mirrored_svc_
Definition: RosDevice.hpp:164
astra_ros::RosDevice::onGetDepthUsbInfo
bool onGetDepthUsbInfo(GetUsbInfo::Request &req, GetUsbInfo::Response &res)
Definition: RosDevice.cpp:829
astra_ros::RosDevice::onGetDepthRegistration
bool onGetDepthRegistration(GetDepthRegistration::Request &req, GetDepthRegistration::Response &res)
Definition: RosDevice.cpp:625
astra_ros::RosDevice::pnh_
ros::NodeHandle & pnh_
Definition: RosDevice.hpp:100
astra_ros::RosDevice::get_color_running_svc_
ros::ServiceServer get_color_running_svc_
Definition: RosDevice.hpp:150
astra_ros::RosDevice::set_ir_mirrored_svc_
ros::ServiceServer set_ir_mirrored_svc_
Definition: RosDevice.hpp:165
astra_ros::RosDevice::onSetColorRunning
bool onSetColorRunning(SetRunning::Request &req, SetRunning::Response &res)
Definition: RosDevice.cpp:955
astra_ros::RosDevice::masked_color_image_pub_
image_transport::Publisher masked_color_image_pub_
Definition: RosDevice.hpp:130
transform_broadcaster.h
astra_ros::RosDevice::get_ir_image_stream_mode_svc_
ros::ServiceServer get_ir_image_stream_mode_svc_
Definition: RosDevice.hpp:141
ros::ServiceServer
astra_ros::RosDevice
Definition: RosDevice.hpp:35
astra_ros::RosDevice::onGetColorImageStreamModes
bool onGetColorImageStreamModes(GetImageStreamModes::Request &req, GetImageStreamModes::Response &res)
Definition: RosDevice.cpp:678
Device.hpp
astra_ros::RosDevice::get_serial_svc_
ros::ServiceServer get_serial_svc_
Definition: RosDevice.hpp:153
astra_ros::RosDevice::depth_image_pub_
image_transport::Publisher depth_image_pub_
Definition: RosDevice.hpp:126
astra_ros::RosDevice::get_ir_mirrored_svc_
ros::ServiceServer get_ir_mirrored_svc_
Definition: RosDevice.hpp:149
astra_ros::RosDevice::publish_body_markers
bool publish_body_markers
Definition: RosDevice.hpp:112
astra_ros::RosDevice::onGetIrExposure
bool onGetIrExposure(GetIrExposure::Request &req, GetIrExposure::Response &res)
Definition: RosDevice.cpp:720
astra_ros::RosDevice::tf_broadcaster_
std::unique_ptr< tf2_ros::TransformBroadcaster > tf_broadcaster_
Definition: RosDevice.hpp:110
astra_ros::RosDevice::set_color_image_stream_mode_svc_
ros::ServiceServer set_color_image_stream_mode_svc_
Definition: RosDevice.hpp:158
astra_ros::RosDevice::color_camera_info_pub_
ros::Publisher color_camera_info_pub_
Definition: RosDevice.hpp:121
astra_ros::RosDevice::body_frame_pub_
ros::Publisher body_frame_pub_
Definition: RosDevice.hpp:132
astra_ros::RosDevice::onGetSerial
bool onGetSerial(GetSerial::Request &req, GetSerial::Response &res)
Definition: RosDevice.cpp:812
astra_ros::RosDevice::onGetIrGain
bool onGetIrGain(GetIrGain::Request &req, GetIrGain::Response &res)
Definition: RosDevice.cpp:733
astra_ros::RosDevice::onGetColorImageStreamMode
bool onGetColorImageStreamMode(GetImageStreamMode::Request &req, GetImageStreamMode::Response &res)
Definition: RosDevice.cpp:638
astra_ros::RosDevice::get_ir_usb_info_svc_
ros::ServiceServer get_ir_usb_info_svc_
Definition: RosDevice.hpp:156
astra_ros::RosDevice::set_color_running_svc_
ros::ServiceServer set_color_running_svc_
Definition: RosDevice.hpp:166
astra_ros::RosDevice::color_image_pub_
image_transport::Publisher color_image_pub_
Definition: RosDevice.hpp:124
astra_ros::RosDevice::DeviceConfigServer
dynamic_reconfigure::Server< DeviceConfig > DeviceConfigServer
Definition: RosDevice.hpp:104
astra_ros::RosDevice::point_cloud_pub_
ros::Publisher point_cloud_pub_
Definition: RosDevice.hpp:134
astra_ros::RosDevice::onGetIrImageStreamMode
bool onGetIrImageStreamMode(GetImageStreamMode::Request &req, GetImageStreamMode::Response &res)
Definition: RosDevice.cpp:664
astra_ros::RosDevice::onGetColorRunning
bool onGetColorRunning(GetRunning::Request &req, GetRunning::Response &res)
Definition: RosDevice.cpp:785
astra_ros::RosDevice::nh_
ros::NodeHandle & nh_
Definition: RosDevice.hpp:98
astra_ros::RosDevice::set_ir_image_stream_mode_svc_
ros::ServiceServer set_ir_image_stream_mode_svc_
Definition: RosDevice.hpp:160
astra_ros::DEVICE_NAMESPACE
const std::string DEVICE_NAMESPACE
astra_ros::RosDevice::get_ir_exposure_svc_
ros::ServiceServer get_ir_exposure_svc_
Definition: RosDevice.hpp:145
astra_ros::RosDevice::body_frame_id
std::string body_frame_id
Definition: RosDevice.hpp:115
astra_ros::RosDevice::set_depth_registration_svc_
ros::ServiceServer set_depth_registration_svc_
Definition: RosDevice.hpp:157
astra_ros::RosDevice::onGetChipId
bool onGetChipId(GetChipId::Request &req, GetChipId::Response &res)
Definition: RosDevice.cpp:617
astra_ros::RosDevice::onGetDepthImageStreamModes
bool onGetDepthImageStreamModes(GetImageStreamModes::Request &req, GetImageStreamModes::Response &res)
Definition: RosDevice.cpp:692
astra_ros::RosDevice::body_mask_image_pub_
image_transport::Publisher body_mask_image_pub_
Definition: RosDevice.hpp:127
astra_ros::RosDevice::body_markers_pub_
ros::Publisher body_markers_pub_
Definition: RosDevice.hpp:133
astra_ros::RosDevice::onSetIrGain
bool onSetIrGain(SetIrGain::Request &req, SetIrGain::Response &res)
Definition: RosDevice.cpp:911
astra_ros::RosDevice::get_depth_running_svc_
ros::ServiceServer get_depth_running_svc_
Definition: RosDevice.hpp:151
astra_ros::RosDevice::get_color_usb_info_svc_
ros::ServiceServer get_color_usb_info_svc_
Definition: RosDevice.hpp:154
astra_ros::RosDevice::onSetDepthRunning
bool onSetDepthRunning(SetRunning::Request &req, SetRunning::Response &res)
Definition: RosDevice.cpp:963
astra_ros::RosDevice::name_
std::string name_
Definition: RosDevice.hpp:97
image_transport.h
astra_ros::RosDevice::onDynamicReconfigure
void onDynamicReconfigure(DeviceConfig &config, uint32_t level)
Definition: RosDevice.cpp:576
astra_ros::RosDevice::get_color_image_stream_modes_svc_
ros::ServiceServer get_color_image_stream_modes_svc_
Definition: RosDevice.hpp:142
astra_ros::RosDevice::dynamic_reconfigure_server_
std::unique_ptr< DeviceConfigServer > dynamic_reconfigure_server_
Definition: RosDevice.hpp:108
astra_ros::Device::Configuration
Definition: Device.hpp:178
astra_ros::RosDevice::depth_camera_info_pub_
ros::Publisher depth_camera_info_pub_
Definition: RosDevice.hpp:122
astra_ros::RosDevice::get_depth_usb_info_svc_
ros::ServiceServer get_depth_usb_info_svc_
Definition: RosDevice.hpp:155
astra_ros::RosDevice::set_color_mirrored_svc_
ros::ServiceServer set_color_mirrored_svc_
Definition: RosDevice.hpp:163
astra_ros::RosDevice::onSetIrImageStreamMode
bool onSetIrImageStreamMode(SetImageStreamMode::Request &req, SetImageStreamMode::Response &res)
Definition: RosDevice.cpp:887
astra_ros::RosDevice::onSetDepthMirrored
bool onSetDepthMirrored(SetMirrored::Request &req, SetMirrored::Response &res)
Definition: RosDevice.cpp:933
astra_ros::RosDevice::get_ir_image_stream_modes_svc_
ros::ServiceServer get_ir_image_stream_modes_svc_
Definition: RosDevice.hpp:144
astra_ros::RosDevice::device_nh_
ros::NodeHandle device_nh_
Definition: RosDevice.hpp:99
astra_ros::RosDevice::onGetIrRunning
bool onGetIrRunning(GetRunning::Request &req, GetRunning::Response &res)
Definition: RosDevice.cpp:803
astra_ros::RosDevice::get_chip_id_svc_
ros::ServiceServer get_chip_id_svc_
Definition: RosDevice.hpp:137
image_transport::Publisher
astra_ros::Device::Frame
Definition: Device.hpp:54
astra_ros::RosDevice::onGetDepthMirrored
bool onGetDepthMirrored(GetMirrored::Request &req, GetMirrored::Response &res)
Definition: RosDevice.cpp:759
astra_ros::RosDevice::getConfiguration
static Device::Configuration getConfiguration(ros::NodeHandle &nh)
Definition: RosDevice.cpp:208
astra_ros::RosDevice::onSetDepthImageStreamMode
bool onSetDepthImageStreamMode(SetImageStreamMode::Request &req, SetImageStreamMode::Response &res)
Definition: RosDevice.cpp:874
astra_ros::RosDevice::device_
Device::Ptr device_
Definition: RosDevice.hpp:117
astra_ros::RosDevice::publish_floor_mask
bool publish_floor_mask
Definition: RosDevice.hpp:114
astra_ros::RosDevice::onSetIrRunning
bool onSetIrRunning(SetRunning::Request &req, SetRunning::Response &res)
Definition: RosDevice.cpp:971
astra_ros::RosDevice::ir_image_pub_
image_transport::Publisher ir_image_pub_
Definition: RosDevice.hpp:125
astra_ros::RosDevice::get_color_mirrored_svc_
ros::ServiceServer get_color_mirrored_svc_
Definition: RosDevice.hpp:147
astra_ros::RosDevice::update
void update()
Definition: RosDevice.cpp:203
astra_ros::RosDevice::onGetIrImageStreamModes
bool onGetIrImageStreamModes(GetImageStreamModes::Request &req, GetImageStreamModes::Response &res)
Definition: RosDevice.cpp:706
astra_ros::RosDevice::get_depth_image_stream_modes_svc_
ros::ServiceServer get_depth_image_stream_modes_svc_
Definition: RosDevice.hpp:143
astra_ros::RosDevice::get_ir_gain_svc_
ros::ServiceServer get_ir_gain_svc_
Definition: RosDevice.hpp:146
astra_ros::RosDevice::RosDevice
RosDevice(const std::string &name, ros::NodeHandle &nh, ros::NodeHandle &pnh)
Definition: RosDevice.cpp:81
astra_ros::RosDevice::set_depth_running_svc_
ros::ServiceServer set_depth_running_svc_
Definition: RosDevice.hpp:167
astra_ros::RosDevice::onGetDepthImageStreamMode
bool onGetDepthImageStreamMode(GetImageStreamMode::Request &req, GetImageStreamMode::Response &res)
Definition: RosDevice.cpp:651
astra_ros::RosDevice::mut_
std::unique_ptr< boost::recursive_mutex > mut_
Definition: RosDevice.hpp:107
astra_ros::RosDevice::get_color_image_stream_mode_svc_
ros::ServiceServer get_color_image_stream_mode_svc_
Definition: RosDevice.hpp:139
astra_ros::RosDevice::set_depth_image_stream_mode_svc_
ros::ServiceServer set_depth_image_stream_mode_svc_
Definition: RosDevice.hpp:159
astra_ros::RosDevice::onSetIrMirrored
bool onSetIrMirrored(SetMirrored::Request &req, SetMirrored::Response &res)
Definition: RosDevice.cpp:944
ros::NodeHandle
astra_ros::RosDevice::floor_mask_image_pub_
image_transport::Publisher floor_mask_image_pub_
Definition: RosDevice.hpp:128
astra_ros
Definition: Device.hpp:14
astra_ros::RosDevice::get_depth_registration_svc_
ros::ServiceServer get_depth_registration_svc_
Definition: RosDevice.hpp:138


astra_ros
Author(s): Braden McDorman
autogenerated on Wed Mar 2 2022 00:53:06