camera_aravis_nodelet.h
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  * camera_aravis
4  *
5  * Copyright © 2022 Fraunhofer IOSB and contributors
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
20  * Boston, MA 02110-1301, USA.
21  *
22  ****************************************************************************/
23 
24 #ifndef CAMERA_ARAVIS_CAMERA_ARAVIS_NODELET
25 #define CAMERA_ARAVIS_CAMERA_ARAVIS_NODELET
26 
27 extern "C" {
28 #include <arv.h>
29 }
30 
31 #include <iostream>
32 #include <stdlib.h>
33 #include <math.h>
34 #include <string.h>
35 #include <algorithm>
36 #include <functional>
37 #include <cctype>
38 #include <memory>
39 #include <atomic>
40 #include <thread>
41 #include <chrono>
42 #include <unordered_map>
43 
44 #include <glib.h>
45 
46 #include <ros/ros.h>
47 #include <nodelet/nodelet.h>
48 #include <nodelet/NodeletUnload.h>
49 #include <ros/time.h>
50 #include <ros/duration.h>
51 #include <sensor_msgs/Image.h>
52 #include <std_msgs/Int64.h>
55 #include <boost/algorithm/string/trim.hpp>
56 
57 #include <yaml-cpp/yaml.h>
58 
59 #include <dynamic_reconfigure/server.h>
60 #include <dynamic_reconfigure/SensorLevels.h>
61 #include <tf/transform_listener.h>
64 #include <camera_aravis/CameraAravisConfig.h>
65 #include <camera_aravis/CameraAutoInfo.h>
66 #include <camera_aravis/CameraDiagnostics.h>
67 #include <camera_aravis/ExtendedCameraInfo.h>
68 
69 #include <camera_aravis/get_integer_feature_value.h>
70 #include <camera_aravis/set_integer_feature_value.h>
71 #include <camera_aravis/get_float_feature_value.h>
72 #include <camera_aravis/set_float_feature_value.h>
73 #include <camera_aravis/get_string_feature_value.h>
74 #include <camera_aravis/set_string_feature_value.h>
75 #include <camera_aravis/get_boolean_feature_value.h>
76 #include <camera_aravis/set_boolean_feature_value.h>
77 
80 
81 namespace camera_aravis
82 {
83 
84 typedef CameraAravisConfig Config;
85 
87 {
88 public:
90  virtual ~CameraAravisNodelet();
91 
92 private:
93  bool verbose_ = false;
94  std::string guid_ = "";
95 
96  bool use_ptp_stamp_ = false;
97  std::string ptp_enable_feature_ = "GevIEEE1588";
98  std::string ptp_status_feature_ = "GevIEEE1588Status";
99  std::string ptp_set_cmd_feature_ = "";
100 
101  bool pub_ext_camera_info_ = false;
102  bool pub_tf_optical_ = false;
103 
104  ArvCamera *p_camera_ = NULL;
105  ArvDevice *p_device_ = NULL;
106 
107  gint num_streams_ = 0;
108  std::vector<ArvStream *> p_streams_;
109  std::vector<std::string> stream_names_;
110  std::vector<CameraBufferPool::Ptr> p_buffer_pools_;
111  int32_t acquire_ = 0;
112  std::vector<ConversionFunction> convert_formats;
113 
114  virtual void onInit() override;
115  void spawnStream();
116 
117 
118 protected:
119  // reset PTP clock
121 
122  // apply auto functions from a ros message
123  void cameraAutoInfoCallback(const CameraAutoInfoConstPtr &msg_ptr);
124 
126  void setAutoMaster(bool value);
127  void setAutoSlave(bool value);
128 
129  void setExtendedCameraInfo(std::string channel_name, size_t stream_id);
130  void fillExtendedCameraInfoMessage(ExtendedCameraInfo &msg);
131 
132  // Extra stream options for GigEVision streams.
133  void tuneGvStream(ArvGvStream *p_stream);
134 
135  void rosReconfigureCallback(Config &config, uint32_t level);
136 
137  // Start and stop camera on demand
138  void rosConnectCallback();
139 
140  // Callback to wrap and send recorded image as ROS message
141  static void newBufferReadyCallback(ArvStream *p_stream, gpointer can_instance);
142 
143  // Buffer Callback Helper
144  static void newBufferReady(ArvStream *p_stream, CameraAravisNodelet *p_can, std::string frame_id, size_t stream_id);
145 
146  // Clean-up if aravis device is lost
147  static void controlLostCallback(ArvDevice *p_gv_device, gpointer can_instance);
148 
149  // Services
151  bool getIntegerFeatureCallback(camera_aravis::get_integer_feature_value::Request& request, camera_aravis::get_integer_feature_value::Response& response);
152 
154  bool getFloatFeatureCallback(camera_aravis::get_float_feature_value::Request& request, camera_aravis::get_float_feature_value::Response& response);
155 
157  bool getStringFeatureCallback(camera_aravis::get_string_feature_value::Request& request, camera_aravis::get_string_feature_value::Response& response);
158 
160  bool getBooleanFeatureCallback(camera_aravis::get_boolean_feature_value::Request& request, camera_aravis::get_boolean_feature_value::Response& response);
161 
163  bool setIntegerFeatureCallback(camera_aravis::set_integer_feature_value::Request& request, camera_aravis::set_integer_feature_value::Response& response);
164 
166  bool setFloatFeatureCallback(camera_aravis::set_float_feature_value::Request& request, camera_aravis::set_float_feature_value::Response& response);
167 
169  bool setStringFeatureCallback(camera_aravis::set_string_feature_value::Request& request, camera_aravis::set_string_feature_value::Response& response);
170 
172  bool setBooleanFeatureCallback(camera_aravis::set_boolean_feature_value::Request& request, camera_aravis::set_boolean_feature_value::Response& response);
173 
174  // triggers a shot at regular intervals, sleeps in between
175  void softwareTriggerLoop();
176 
177  void publishTfLoop(double rate);
178 
179  void readAndPublishCameraDiagnostics(double rate) const;
180 
181  void discoverFeatures();
182 
183  static void parseStringArgs(std::string in_arg_string, std::vector<std::string> &out_args);
184 
185  // WriteCameraFeaturesFromRosparam()
186  // Read ROS parameters from this node's namespace, and see if each parameter has a similarly named & typed feature in the camera. Then set the
187  // camera feature to that value. For example, if the parameter camnode/Gain is set to 123.0, then we'll write 123.0 to the Gain feature
188  // in the camera.
189  //
190  // Note that the datatype of the parameter *must* match the datatype of the camera feature, and this can be determined by
191  // looking at the camera's XML file. Camera enum's are string parameters, camera bools are false/true parameters (not 0/1),
192  // integers are integers, doubles are doubles, etc.
194 
196 
197  std::unique_ptr<dynamic_reconfigure::Server<Config> > reconfigure_server_;
198  boost::recursive_mutex reconfigure_mutex_;
199 
200  std::vector<image_transport::CameraPublisher> cam_pubs_;
201  std::vector<std::unique_ptr<camera_info_manager::CameraInfoManager>> p_camera_info_managers_;
202  std::vector<std::unique_ptr<ros::NodeHandle>> p_camera_info_node_handles_;
203  std::vector<sensor_msgs::CameraInfoPtr> camera_infos_;
204 
205  std::unique_ptr<tf2_ros::StaticTransformBroadcaster> p_stb_;
206  std::unique_ptr<tf2_ros::TransformBroadcaster> p_tb_;
207  geometry_msgs::TransformStamped tf_optical_;
208  std::thread tf_dyn_thread_;
209  std::atomic_bool tf_thread_active_;
210 
211  std::string diagnostic_yaml_url_ = "";
212  double diagnostic_publish_rate_ = 0.1;
213  YAML::Node diagnostic_features_;
215  std::thread diagnostic_thread_;
216  std::atomic_bool diagnostic_thread_active_;
217 
218  CameraAutoInfo auto_params_;
221 
222  boost::recursive_mutex extended_camera_info_mutex_;
223  std::vector<ros::Publisher> extended_camera_info_pubs_;
224 
225  Config config_;
228 
229  std::atomic<bool> spawning_;
230  std::thread spawn_stream_thread_;
231 
233  std::atomic_bool software_trigger_active_;
234  size_t n_buffers_ = 0;
235 
236  std::unordered_map<std::string, const bool> implemented_features_;
237 
240 
241  struct
242  {
243  int32_t x = 0;
244  int32_t y = 0;
245  int32_t width = 0;
246  int32_t width_min = 0;
247  int32_t width_max = 0;
248  int32_t height = 0;
249  int32_t height_min = 0;
250  int32_t height_max = 0;
251  } roi_;
252 
253  struct Sensor
254  {
255  int32_t width = 0;
256  int32_t height = 0;
257  std::string pixel_format;
258  size_t n_bits_pixel = 0;
259  };
260 
261  std::vector<Sensor *> sensors_;
262 
263  struct StreamIdData
264  {
266  size_t stream_id;
267  };
268 };
269 
270 } // end namespace camera_aravis
271 
272 #endif /* CAMERA_ARAVIS_CAMERA_ARAVIS_NODELET */
camera_aravis::CameraAravisNodelet::ptp_status_feature_
std::string ptp_status_feature_
Definition: camera_aravis_nodelet.h:119
camera_aravis::CameraAravisNodelet::tf_thread_active_
std::atomic_bool tf_thread_active_
Definition: camera_aravis_nodelet.h:230
camera_aravis::CameraAravisNodelet::auto_sub_
ros::Subscriber auto_sub_
Definition: camera_aravis_nodelet.h:241
camera_aravis::CameraAravisNodelet::setStringFeatureCallback
bool setStringFeatureCallback(camera_aravis::set_string_feature_value::Request &request, camera_aravis::set_string_feature_value::Response &response)
Definition: camera_aravis_nodelet.cpp:733
camera_aravis::CameraAravisNodelet::tf_dyn_thread_
std::thread tf_dyn_thread_
Definition: camera_aravis_nodelet.h:229
camera_aravis::CameraAravisNodelet::rosConnectCallback
void rosConnectCallback()
Definition: camera_aravis_nodelet.cpp:1312
camera_aravis::CameraAravisNodelet::shutdown_delay_s_
double shutdown_delay_s_
Definition: camera_aravis_nodelet.h:260
camera_aravis::CameraAravisNodelet::diagnostic_publish_rate_
double diagnostic_publish_rate_
Definition: camera_aravis_nodelet.h:233
camera_aravis::CameraAravisNodelet::x
int32_t x
Definition: camera_aravis_nodelet.h:264
camera_aravis::CameraAravisNodelet::newBufferReady
static void newBufferReady(ArvStream *p_stream, CameraAravisNodelet *p_can, std::string frame_id, size_t stream_id)
Definition: camera_aravis_nodelet.cpp:1347
camera_aravis::CameraAravisNodelet::width
int32_t width
Definition: camera_aravis_nodelet.h:266
camera_aravis::CameraAravisNodelet::diagnostic_thread_
std::thread diagnostic_thread_
Definition: camera_aravis_nodelet.h:236
ros::Publisher
camera_aravis::CameraAravisNodelet::fillExtendedCameraInfoMessage
void fillExtendedCameraInfoMessage(ExtendedCameraInfo &msg)
Definition: camera_aravis_nodelet.cpp:1443
camera_aravis::CameraAravisNodelet::Sensor::width
int32_t width
Definition: camera_aravis_nodelet.h:276
camera_aravis::CameraAravisNodelet::setExtendedCameraInfo
void setExtendedCameraInfo(std::string channel_name, size_t stream_id)
Definition: camera_aravis_nodelet.cpp:1031
camera_aravis::CameraAravisNodelet::p_tb_
std::unique_ptr< tf2_ros::TransformBroadcaster > p_tb_
Definition: camera_aravis_nodelet.h:227
camera_aravis::CameraAravisNodelet::get_integer_service_
ros::ServiceServer get_integer_service_
Definition: camera_aravis_nodelet.h:171
camera_aravis::CameraAravisNodelet::tf_optical_
geometry_msgs::TransformStamped tf_optical_
Definition: camera_aravis_nodelet.h:228
camera_aravis::CameraAravisNodelet::StreamIdData::can
CameraAravisNodelet * can
Definition: camera_aravis_nodelet.h:286
camera_aravis::CameraAravisNodelet::config_min_
Config config_min_
Definition: camera_aravis_nodelet.h:247
camera_aravis::CameraAravisNodelet::set_integer_service_
ros::ServiceServer set_integer_service_
Definition: camera_aravis_nodelet.h:183
camera_buffer_pool.h
camera_aravis::CameraAravisNodelet::height_min
int32_t height_min
Definition: camera_aravis_nodelet.h:270
ros.h
camera_aravis::CameraAravisNodelet::~CameraAravisNodelet
virtual ~CameraAravisNodelet()
Definition: camera_aravis_nodelet.cpp:59
time.h
camera_info_manager.h
camera_aravis::CameraAravisNodelet::extended_camera_info_pubs_
std::vector< ros::Publisher > extended_camera_info_pubs_
Definition: camera_aravis_nodelet.h:244
camera_aravis::CameraAravisNodelet::software_trigger_thread_
std::thread software_trigger_thread_
Definition: camera_aravis_nodelet.h:253
camera_aravis::CameraAravisNodelet::StreamIdData::stream_id
size_t stream_id
Definition: camera_aravis_nodelet.h:287
camera_aravis::CameraAravisNodelet::convert_formats
std::vector< ConversionFunction > convert_formats
Definition: camera_aravis_nodelet.h:133
camera_aravis::CameraAravisNodelet::syncAutoParameters
void syncAutoParameters()
Definition: camera_aravis_nodelet.cpp:909
camera_aravis::Config
CameraAravisConfig Config
Definition: camera_aravis_nodelet.h:105
camera_aravis
Definition: camera_aravis_nodelet.h:81
camera_aravis::CameraAravisNodelet::get_boolean_service_
ros::ServiceServer get_boolean_service_
Definition: camera_aravis_nodelet.h:180
camera_aravis::CameraAravisNodelet::guid_
std::string guid_
Definition: camera_aravis_nodelet.h:115
camera_aravis::CameraAravisNodelet::p_streams_
std::vector< ArvStream * > p_streams_
Definition: camera_aravis_nodelet.h:129
camera_aravis::CameraAravisNodelet::acquire_
int32_t acquire_
Definition: camera_aravis_nodelet.h:132
camera_aravis::CameraAravisNodelet::pub_tf_optical_
bool pub_tf_optical_
Definition: camera_aravis_nodelet.h:123
camera_aravis::CameraAravisNodelet::getIntegerFeatureCallback
bool getIntegerFeatureCallback(camera_aravis::get_integer_feature_value::Request &request, camera_aravis::get_integer_feature_value::Response &response)
Definition: camera_aravis_nodelet.cpp:686
camera_aravis::CameraAravisNodelet::p_camera_
ArvCamera * p_camera_
Definition: camera_aravis_nodelet.h:125
camera_aravis::CameraAravisNodelet::diagnostic_pub_
ros::Publisher diagnostic_pub_
Definition: camera_aravis_nodelet.h:235
camera_aravis::CameraAravisNodelet::ptp_enable_feature_
std::string ptp_enable_feature_
Definition: camera_aravis_nodelet.h:118
camera_aravis::CameraAravisNodelet::CameraAravisNodelet
CameraAravisNodelet()
Definition: camera_aravis_nodelet.cpp:55
camera_aravis::CameraAravisNodelet::spawnStream
void spawnStream()
Definition: camera_aravis_nodelet.cpp:598
camera_aravis::CameraAravisNodelet
Definition: camera_aravis_nodelet.h:107
transform_broadcaster.h
camera_aravis::CameraAravisNodelet::getStringFeatureCallback
bool getStringFeatureCallback(camera_aravis::get_string_feature_value::Request &request, camera_aravis::get_string_feature_value::Response &response)
Definition: camera_aravis_nodelet.cpp:726
camera_aravis::CameraAravisNodelet::getBooleanFeatureCallback
bool getBooleanFeatureCallback(camera_aravis::get_boolean_feature_value::Request &request, camera_aravis::get_boolean_feature_value::Response &response)
Definition: camera_aravis_nodelet.cpp:746
ros::ServiceServer
camera_aravis::CameraAravisNodelet::publishTfLoop
void publishTfLoop(double rate)
Definition: camera_aravis_nodelet.cpp:1557
camera_aravis::CameraAravisNodelet::diagnostic_yaml_url_
std::string diagnostic_yaml_url_
Definition: camera_aravis_nodelet.h:232
camera_aravis::CameraAravisNodelet::shutdown_trigger_
ros::Timer shutdown_trigger_
Definition: camera_aravis_nodelet.h:259
camera_aravis::CameraAravisNodelet::sensors_
std::vector< Sensor * > sensors_
Definition: camera_aravis_nodelet.h:282
camera_aravis::CameraAravisNodelet::camera_infos_
std::vector< sensor_msgs::CameraInfoPtr > camera_infos_
Definition: camera_aravis_nodelet.h:224
camera_aravis::CameraAravisNodelet::get_string_service_
ros::ServiceServer get_string_service_
Definition: camera_aravis_nodelet.h:177
duration.h
camera_aravis::CameraAravisNodelet::config_max_
Config config_max_
Definition: camera_aravis_nodelet.h:248
camera_aravis::CameraAravisNodelet::p_device_
ArvDevice * p_device_
Definition: camera_aravis_nodelet.h:126
camera_aravis::CameraAravisNodelet::spawn_stream_thread_
std::thread spawn_stream_thread_
Definition: camera_aravis_nodelet.h:251
camera_aravis::CameraAravisNodelet::height_max
int32_t height_max
Definition: camera_aravis_nodelet.h:271
camera_aravis::CameraAravisNodelet::config_
Config config_
Definition: camera_aravis_nodelet.h:246
camera_aravis::CameraAravisNodelet::p_camera_info_node_handles_
std::vector< std::unique_ptr< ros::NodeHandle > > p_camera_info_node_handles_
Definition: camera_aravis_nodelet.h:223
camera_aravis::CameraAravisNodelet::setIntegerFeatureCallback
bool setIntegerFeatureCallback(camera_aravis::set_integer_feature_value::Request &request, camera_aravis::set_integer_feature_value::Response &response)
Definition: camera_aravis_nodelet.cpp:693
camera_aravis::CameraAravisNodelet::reconfigure_server_
std::unique_ptr< dynamic_reconfigure::Server< Config > > reconfigure_server_
Definition: camera_aravis_nodelet.h:218
camera_aravis::CameraAravisNodelet::tuneGvStream
void tuneGvStream(ArvGvStream *p_stream)
Definition: camera_aravis_nodelet.cpp:1048
camera_aravis::CameraAravisNodelet::n_buffers_
size_t n_buffers_
Definition: camera_aravis_nodelet.h:255
camera_aravis::CameraAravisNodelet::onShutdownTriggered
void onShutdownTriggered(const ros::TimerEvent &)
Definition: camera_aravis_nodelet.cpp:1887
camera_aravis::CameraAravisNodelet::set_boolean_service_
ros::ServiceServer set_boolean_service_
Definition: camera_aravis_nodelet.h:192
camera_aravis::CameraAravisNodelet::extended_camera_info_mutex_
boost::recursive_mutex extended_camera_info_mutex_
Definition: camera_aravis_nodelet.h:243
camera_aravis::CameraAravisNodelet::writeCameraFeaturesFromRosparam
void writeCameraFeaturesFromRosparam()
Definition: camera_aravis_nodelet.cpp:1818
camera_aravis::CameraAravisNodelet::diagnostic_features_
YAML::Node diagnostic_features_
Definition: camera_aravis_nodelet.h:234
camera_aravis::CameraAravisNodelet::newBufferReadyCallback
static void newBufferReadyCallback(ArvStream *p_stream, gpointer can_instance)
Definition: camera_aravis_nodelet.cpp:1328
camera_aravis::CameraAravisNodelet::stream_names_
std::vector< std::string > stream_names_
Definition: camera_aravis_nodelet.h:130
camera_aravis::CameraAravisNodelet::p_camera_info_managers_
std::vector< std::unique_ptr< camera_info_manager::CameraInfoManager > > p_camera_info_managers_
Definition: camera_aravis_nodelet.h:222
conversion_utils.h
camera_aravis::CameraAravisNodelet::set_float_service_
ros::ServiceServer set_float_service_
Definition: camera_aravis_nodelet.h:186
camera_aravis::CameraAravisNodelet::width_max
int32_t width_max
Definition: camera_aravis_nodelet.h:268
camera_aravis::CameraAravisNodelet::discoverFeatures
void discoverFeatures()
Definition: camera_aravis_nodelet.cpp:1725
ros::TimerEvent
camera_aravis::CameraAravisNodelet::set_string_service_
ros::ServiceServer set_string_service_
Definition: camera_aravis_nodelet.h:189
camera_aravis::CameraAravisNodelet::spawning_
std::atomic< bool > spawning_
Definition: camera_aravis_nodelet.h:250
camera_aravis::CameraAravisNodelet::cam_pubs_
std::vector< image_transport::CameraPublisher > cam_pubs_
Definition: camera_aravis_nodelet.h:221
camera_aravis::CameraAravisNodelet::roi_
struct camera_aravis::CameraAravisNodelet::@0 roi_
camera_aravis::CameraAravisNodelet::setBooleanFeatureCallback
bool setBooleanFeatureCallback(camera_aravis::set_boolean_feature_value::Request &request, camera_aravis::set_boolean_feature_value::Response &response)
Definition: camera_aravis_nodelet.cpp:753
image_transport.h
camera_aravis::CameraAravisNodelet::auto_params_
CameraAutoInfo auto_params_
Definition: camera_aravis_nodelet.h:239
transform_listener.h
camera_aravis::CameraAravisNodelet::Sensor::height
int32_t height
Definition: camera_aravis_nodelet.h:277
camera_aravis::CameraAravisNodelet::rosReconfigureCallback
void rosReconfigureCallback(Config &config, uint32_t level)
Definition: camera_aravis_nodelet.cpp:1075
camera_aravis::CameraAravisNodelet::pub_ext_camera_info_
bool pub_ext_camera_info_
Definition: camera_aravis_nodelet.h:122
camera_aravis::CameraAravisNodelet::verbose_
bool verbose_
Definition: camera_aravis_nodelet.h:114
camera_aravis::CameraAravisNodelet::StreamIdData
Definition: camera_aravis_nodelet.h:284
camera_aravis::CameraAravisNodelet::parseStringArgs
static void parseStringArgs(std::string in_arg_string, std::vector< std::string > &out_args)
Definition: camera_aravis_nodelet.cpp:1790
nodelet::Nodelet
camera_aravis::CameraAravisNodelet::auto_pub_
ros::Publisher auto_pub_
Definition: camera_aravis_nodelet.h:240
camera_aravis::CameraAravisNodelet::onInit
virtual void onInit() override
Definition: camera_aravis_nodelet.cpp:122
camera_aravis::CameraAravisNodelet::reconfigure_mutex_
boost::recursive_mutex reconfigure_mutex_
Definition: camera_aravis_nodelet.h:219
camera_aravis::CameraAravisNodelet::diagnostic_thread_active_
std::atomic_bool diagnostic_thread_active_
Definition: camera_aravis_nodelet.h:237
nodelet.h
camera_aravis::CameraAravisNodelet::y
int32_t y
Definition: camera_aravis_nodelet.h:265
camera_aravis::CameraAravisNodelet::width_min
int32_t width_min
Definition: camera_aravis_nodelet.h:267
camera_aravis::CameraAravisNodelet::setFloatFeatureCallback
bool setFloatFeatureCallback(camera_aravis::set_float_feature_value::Request &request, camera_aravis::set_float_feature_value::Response &response)
Definition: camera_aravis_nodelet.cpp:713
camera_aravis::CameraAravisNodelet::setAutoMaster
void setAutoMaster(bool value)
Definition: camera_aravis_nodelet.cpp:979
camera_aravis::CameraAravisNodelet::num_streams_
gint num_streams_
Definition: camera_aravis_nodelet.h:128
camera_aravis::CameraAravisNodelet::softwareTriggerLoop
void softwareTriggerLoop()
Definition: camera_aravis_nodelet.cpp:1530
camera_aravis::CameraAravisNodelet::controlLostCallback
static void controlLostCallback(ArvDevice *p_gv_device, gpointer can_instance)
Definition: camera_aravis_nodelet.cpp:1520
camera_aravis::CameraAravisNodelet::get_float_service_
ros::ServiceServer get_float_service_
Definition: camera_aravis_nodelet.h:174
static_transform_broadcaster.h
camera_aravis::CameraAravisNodelet::software_trigger_active_
std::atomic_bool software_trigger_active_
Definition: camera_aravis_nodelet.h:254
camera_aravis::CameraAravisNodelet::ptp_set_cmd_feature_
std::string ptp_set_cmd_feature_
Definition: camera_aravis_nodelet.h:120
camera_aravis::CameraAravisNodelet::Sensor
Definition: camera_aravis_nodelet.h:274
camera_aravis::CameraAravisNodelet::getFloatFeatureCallback
bool getFloatFeatureCallback(camera_aravis::get_float_feature_value::Request &request, camera_aravis::get_float_feature_value::Response &response)
Definition: camera_aravis_nodelet.cpp:706
camera_aravis::CameraAravisNodelet::p_stb_
std::unique_ptr< tf2_ros::StaticTransformBroadcaster > p_stb_
Definition: camera_aravis_nodelet.h:226
camera_aravis::CameraAravisNodelet::p_buffer_pools_
std::vector< CameraBufferPool::Ptr > p_buffer_pools_
Definition: camera_aravis_nodelet.h:131
camera_aravis::CameraAravisNodelet::implemented_features_
std::unordered_map< std::string, const bool > implemented_features_
Definition: camera_aravis_nodelet.h:257
camera_aravis::CameraAravisNodelet::resetPtpClock
void resetPtpClock()
Definition: camera_aravis_nodelet.cpp:766
camera_aravis::CameraAravisNodelet::Sensor::n_bits_pixel
size_t n_bits_pixel
Definition: camera_aravis_nodelet.h:279
camera_aravis::CameraAravisNodelet::setAutoSlave
void setAutoSlave(bool value)
Definition: camera_aravis_nodelet.cpp:992
camera_aravis::CameraAravisNodelet::height
int32_t height
Definition: camera_aravis_nodelet.h:269
ros::Timer
camera_aravis::CameraAravisNodelet::Sensor::pixel_format
std::string pixel_format
Definition: camera_aravis_nodelet.h:278
camera_aravis::CameraAravisNodelet::use_ptp_stamp_
bool use_ptp_stamp_
Definition: camera_aravis_nodelet.h:117
ros::Subscriber
camera_aravis::CameraAravisNodelet::readAndPublishCameraDiagnostics
void readAndPublishCameraDiagnostics(double rate) const
Definition: camera_aravis_nodelet.cpp:1577
camera_aravis::CameraAravisNodelet::cameraAutoInfoCallback
void cameraAutoInfoCallback(const CameraAutoInfoConstPtr &msg_ptr)
Definition: camera_aravis_nodelet.cpp:801


camera_aravis
Author(s): Boitumelo Ruf, Fraunhofer IOSB , Dominik Kleiser, Fraunhofer IOSB , Dominik A. Klein, Fraunhofer FKIE , Steve Safarik, Straw Lab , Andrew Straw, Straw Lab , Floris van Breugel, van Breugel Lab
autogenerated on Thu Feb 1 2024 03:25:11