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 #include <camera_aravis/one_shot_white_balance.h>
78 
81 
82 namespace camera_aravis
83 {
84 
85 typedef CameraAravisConfig Config;
86 
88 {
89 public:
91  virtual ~CameraAravisNodelet();
92 
93 private:
94  bool verbose_ = false;
95  std::string guid_ = "";
96 
97  bool use_ptp_stamp_ = false;
98  std::string ptp_enable_feature_ = "GevIEEE1588";
99  std::string ptp_status_feature_ = "GevIEEE1588Status";
100  std::string ptp_set_cmd_feature_ = "";
101 
102  bool pub_ext_camera_info_ = false;
103  bool pub_tf_optical_ = false;
104 
105  ArvCamera *p_camera_ = NULL;
106  ArvDevice *p_device_ = NULL;
107 
108  gint num_streams_ = 0;
109  std::vector<ArvStream *> p_streams_;
110  std::vector<std::string> stream_names_;
111  std::vector<CameraBufferPool::Ptr> p_buffer_pools_;
112  int32_t acquire_ = 0;
113  std::vector<ConversionFunction> convert_formats;
114 
115  virtual void onInit() override;
116  void spawnStream();
117 
118 
119 protected:
120  // reset PTP clock
122 
123  // apply auto functions from a ros message
124  void cameraAutoInfoCallback(const CameraAutoInfoConstPtr &msg_ptr);
125 
127  void setAutoMaster(bool value);
128  void setAutoSlave(bool value);
129 
130  void setExtendedCameraInfo(std::string channel_name, size_t stream_id);
131  void fillExtendedCameraInfoMessage(ExtendedCameraInfo &msg);
132 
133  // Extra stream options for GigEVision streams.
134  void tuneGvStream(ArvGvStream *p_stream);
135 
136  void rosReconfigureCallback(Config &config, uint32_t level);
137 
138  // Start and stop camera on demand
139  void rosConnectCallback();
140 
141  // Callback to wrap and send recorded image as ROS message
142  static void newBufferReadyCallback(ArvStream *p_stream, gpointer can_instance);
143 
144  // Buffer Callback Helper
145  static void newBufferReady(ArvStream *p_stream, CameraAravisNodelet *p_can, std::string frame_id, size_t stream_id);
146 
147  // Clean-up if aravis device is lost
148  static void controlLostCallback(ArvDevice *p_gv_device, gpointer can_instance);
149 
150  // Services
152  bool getIntegerFeatureCallback(camera_aravis::get_integer_feature_value::Request& request, camera_aravis::get_integer_feature_value::Response& response);
153 
155  bool getFloatFeatureCallback(camera_aravis::get_float_feature_value::Request& request, camera_aravis::get_float_feature_value::Response& response);
156 
158  bool getStringFeatureCallback(camera_aravis::get_string_feature_value::Request& request, camera_aravis::get_string_feature_value::Response& response);
159 
161  bool getBooleanFeatureCallback(camera_aravis::get_boolean_feature_value::Request& request, camera_aravis::get_boolean_feature_value::Response& response);
162 
164  bool setIntegerFeatureCallback(camera_aravis::set_integer_feature_value::Request& request, camera_aravis::set_integer_feature_value::Response& response);
165 
167  bool setFloatFeatureCallback(camera_aravis::set_float_feature_value::Request& request, camera_aravis::set_float_feature_value::Response& response);
168 
170  bool setStringFeatureCallback(camera_aravis::set_string_feature_value::Request& request, camera_aravis::set_string_feature_value::Response& response);
171 
173  bool setBooleanFeatureCallback(camera_aravis::set_boolean_feature_value::Request& request, camera_aravis::set_boolean_feature_value::Response& response);
174 
176  bool oneShotWhiteBalanceCallback(camera_aravis::one_shot_white_balance::Request& request, camera_aravis::one_shot_white_balance::Response& response);
177 
178  // triggers a shot at regular intervals, sleeps in between
179  void softwareTriggerLoop();
180 
181  void publishTfLoop(double rate);
182 
183  void readAndPublishCameraDiagnostics(double rate) const;
184 
185  void discoverFeatures();
186 
187  static void parseStringArgs(std::string in_arg_string, std::vector<std::string> &out_args);
188 
189  // WriteCameraFeaturesFromRosparam()
190  // 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
191  // 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
192  // in the camera.
193  //
194  // Note that the datatype of the parameter *must* match the datatype of the camera feature, and this can be determined by
195  // looking at the camera's XML file. Camera enum's are string parameters, camera bools are false/true parameters (not 0/1),
196  // integers are integers, doubles are doubles, etc.
198 
200 
201  std::unique_ptr<dynamic_reconfigure::Server<Config> > reconfigure_server_;
202  boost::recursive_mutex reconfigure_mutex_;
203 
204  std::vector<image_transport::CameraPublisher> cam_pubs_;
205  std::vector<std::unique_ptr<camera_info_manager::CameraInfoManager>> p_camera_info_managers_;
206  std::vector<std::unique_ptr<ros::NodeHandle>> p_camera_info_node_handles_;
207  std::vector<sensor_msgs::CameraInfoPtr> camera_infos_;
208 
209  std::unique_ptr<tf2_ros::StaticTransformBroadcaster> p_stb_;
210  std::unique_ptr<tf2_ros::TransformBroadcaster> p_tb_;
211  geometry_msgs::TransformStamped tf_optical_;
212  std::thread tf_dyn_thread_;
213  std::atomic_bool tf_thread_active_;
214 
215  std::string diagnostic_yaml_url_ = "";
216  double diagnostic_publish_rate_ = 0.1;
217  YAML::Node diagnostic_features_;
219  std::thread diagnostic_thread_;
220  std::atomic_bool diagnostic_thread_active_;
221 
222  CameraAutoInfo auto_params_;
225 
226  boost::recursive_mutex extended_camera_info_mutex_;
227  std::vector<ros::Publisher> extended_camera_info_pubs_;
228 
229  Config config_;
232 
233  std::atomic<bool> spawning_;
234  std::thread spawn_stream_thread_;
235 
237  std::atomic_bool software_trigger_active_;
238  size_t n_buffers_ = 0;
239 
240  std::unordered_map<std::string, const bool> implemented_features_;
241 
244 
245  struct
246  {
247  int32_t x = 0;
248  int32_t y = 0;
249  int32_t width = 0;
250  int32_t width_min = 0;
251  int32_t width_max = 0;
252  int32_t height = 0;
253  int32_t height_min = 0;
254  int32_t height_max = 0;
255  } roi_;
256 
257  struct Sensor
258  {
259  int32_t width = 0;
260  int32_t height = 0;
261  std::string pixel_format;
262  size_t n_bits_pixel = 0;
263  };
264 
265  std::vector<Sensor *> sensors_;
266 
267  struct StreamIdData
268  {
270  size_t stream_id;
271  };
272 };
273 
274 } // end namespace camera_aravis
275 
276 #endif /* CAMERA_ARAVIS_CAMERA_ARAVIS_NODELET */
camera_aravis::CameraAravisNodelet::ptp_status_feature_
std::string ptp_status_feature_
Definition: camera_aravis_nodelet.h:120
camera_aravis::CameraAravisNodelet::tf_thread_active_
std::atomic_bool tf_thread_active_
Definition: camera_aravis_nodelet.h:234
camera_aravis::CameraAravisNodelet::auto_sub_
ros::Subscriber auto_sub_
Definition: camera_aravis_nodelet.h:245
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:759
camera_aravis::CameraAravisNodelet::tf_dyn_thread_
std::thread tf_dyn_thread_
Definition: camera_aravis_nodelet.h:233
camera_aravis::CameraAravisNodelet::rosConnectCallback
void rosConnectCallback()
Definition: camera_aravis_nodelet.cpp:1401
camera_aravis::CameraAravisNodelet::shutdown_delay_s_
double shutdown_delay_s_
Definition: camera_aravis_nodelet.h:264
camera_aravis::CameraAravisNodelet::diagnostic_publish_rate_
double diagnostic_publish_rate_
Definition: camera_aravis_nodelet.h:237
camera_aravis::CameraAravisNodelet::x
int32_t x
Definition: camera_aravis_nodelet.h:268
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:1438
camera_aravis::CameraAravisNodelet::width
int32_t width
Definition: camera_aravis_nodelet.h:270
camera_aravis::CameraAravisNodelet::oneShotWhiteBalanceCallback
bool oneShotWhiteBalanceCallback(camera_aravis::one_shot_white_balance::Request &request, camera_aravis::one_shot_white_balance::Response &response)
Definition: camera_aravis_nodelet.cpp:798
camera_aravis::CameraAravisNodelet::diagnostic_thread_
std::thread diagnostic_thread_
Definition: camera_aravis_nodelet.h:240
ros::Publisher
camera_aravis::CameraAravisNodelet::fillExtendedCameraInfoMessage
void fillExtendedCameraInfoMessage(ExtendedCameraInfo &msg)
Definition: camera_aravis_nodelet.cpp:1537
camera_aravis::CameraAravisNodelet::Sensor::width
int32_t width
Definition: camera_aravis_nodelet.h:280
camera_aravis::CameraAravisNodelet::setExtendedCameraInfo
void setExtendedCameraInfo(std::string channel_name, size_t stream_id)
Definition: camera_aravis_nodelet.cpp:1117
camera_aravis::CameraAravisNodelet::p_tb_
std::unique_ptr< tf2_ros::TransformBroadcaster > p_tb_
Definition: camera_aravis_nodelet.h:231
camera_aravis::CameraAravisNodelet::get_integer_service_
ros::ServiceServer get_integer_service_
Definition: camera_aravis_nodelet.h:172
camera_aravis::CameraAravisNodelet::tf_optical_
geometry_msgs::TransformStamped tf_optical_
Definition: camera_aravis_nodelet.h:232
camera_aravis::CameraAravisNodelet::StreamIdData::can
CameraAravisNodelet * can
Definition: camera_aravis_nodelet.h:290
camera_aravis::CameraAravisNodelet::config_min_
Config config_min_
Definition: camera_aravis_nodelet.h:251
camera_aravis::CameraAravisNodelet::set_integer_service_
ros::ServiceServer set_integer_service_
Definition: camera_aravis_nodelet.h:184
camera_buffer_pool.h
camera_aravis::CameraAravisNodelet::height_min
int32_t height_min
Definition: camera_aravis_nodelet.h:274
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:248
camera_aravis::CameraAravisNodelet::software_trigger_thread_
std::thread software_trigger_thread_
Definition: camera_aravis_nodelet.h:257
camera_aravis::CameraAravisNodelet::StreamIdData::stream_id
size_t stream_id
Definition: camera_aravis_nodelet.h:291
camera_aravis::CameraAravisNodelet::convert_formats
std::vector< ConversionFunction > convert_formats
Definition: camera_aravis_nodelet.h:134
camera_aravis::CameraAravisNodelet::syncAutoParameters
void syncAutoParameters()
Definition: camera_aravis_nodelet.cpp:995
camera_aravis::Config
CameraAravisConfig Config
Definition: camera_aravis_nodelet.h:106
camera_aravis
Definition: camera_aravis_nodelet.h:82
camera_aravis::CameraAravisNodelet::one_shot_white_balance_service_
ros::ServiceServer one_shot_white_balance_service_
Definition: camera_aravis_nodelet.h:196
camera_aravis::CameraAravisNodelet::get_boolean_service_
ros::ServiceServer get_boolean_service_
Definition: camera_aravis_nodelet.h:181
camera_aravis::CameraAravisNodelet::guid_
std::string guid_
Definition: camera_aravis_nodelet.h:116
camera_aravis::CameraAravisNodelet::p_streams_
std::vector< ArvStream * > p_streams_
Definition: camera_aravis_nodelet.h:130
camera_aravis::CameraAravisNodelet::acquire_
int32_t acquire_
Definition: camera_aravis_nodelet.h:133
camera_aravis::CameraAravisNodelet::pub_tf_optical_
bool pub_tf_optical_
Definition: camera_aravis_nodelet.h:124
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:706
camera_aravis::CameraAravisNodelet::p_camera_
ArvCamera * p_camera_
Definition: camera_aravis_nodelet.h:126
camera_aravis::CameraAravisNodelet::diagnostic_pub_
ros::Publisher diagnostic_pub_
Definition: camera_aravis_nodelet.h:239
camera_aravis::CameraAravisNodelet::ptp_enable_feature_
std::string ptp_enable_feature_
Definition: camera_aravis_nodelet.h:119
camera_aravis::CameraAravisNodelet::CameraAravisNodelet
CameraAravisNodelet()
Definition: camera_aravis_nodelet.cpp:55
camera_aravis::CameraAravisNodelet::spawnStream
void spawnStream()
Definition: camera_aravis_nodelet.cpp:609
camera_aravis::CameraAravisNodelet
Definition: camera_aravis_nodelet.h:108
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:752
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:775
ros::ServiceServer
camera_aravis::CameraAravisNodelet::publishTfLoop
void publishTfLoop(double rate)
Definition: camera_aravis_nodelet.cpp:1658
camera_aravis::CameraAravisNodelet::diagnostic_yaml_url_
std::string diagnostic_yaml_url_
Definition: camera_aravis_nodelet.h:236
camera_aravis::CameraAravisNodelet::shutdown_trigger_
ros::Timer shutdown_trigger_
Definition: camera_aravis_nodelet.h:263
camera_aravis::CameraAravisNodelet::sensors_
std::vector< Sensor * > sensors_
Definition: camera_aravis_nodelet.h:286
camera_aravis::CameraAravisNodelet::camera_infos_
std::vector< sensor_msgs::CameraInfoPtr > camera_infos_
Definition: camera_aravis_nodelet.h:228
camera_aravis::CameraAravisNodelet::get_string_service_
ros::ServiceServer get_string_service_
Definition: camera_aravis_nodelet.h:178
duration.h
camera_aravis::CameraAravisNodelet::config_max_
Config config_max_
Definition: camera_aravis_nodelet.h:252
camera_aravis::CameraAravisNodelet::p_device_
ArvDevice * p_device_
Definition: camera_aravis_nodelet.h:127
camera_aravis::CameraAravisNodelet::spawn_stream_thread_
std::thread spawn_stream_thread_
Definition: camera_aravis_nodelet.h:255
camera_aravis::CameraAravisNodelet::height_max
int32_t height_max
Definition: camera_aravis_nodelet.h:275
camera_aravis::CameraAravisNodelet::config_
Config config_
Definition: camera_aravis_nodelet.h:250
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:227
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:713
camera_aravis::CameraAravisNodelet::reconfigure_server_
std::unique_ptr< dynamic_reconfigure::Server< Config > > reconfigure_server_
Definition: camera_aravis_nodelet.h:222
camera_aravis::CameraAravisNodelet::tuneGvStream
void tuneGvStream(ArvGvStream *p_stream)
Definition: camera_aravis_nodelet.cpp:1137
camera_aravis::CameraAravisNodelet::n_buffers_
size_t n_buffers_
Definition: camera_aravis_nodelet.h:259
camera_aravis::CameraAravisNodelet::onShutdownTriggered
void onShutdownTriggered(const ros::TimerEvent &)
Definition: camera_aravis_nodelet.cpp:2002
camera_aravis::CameraAravisNodelet::set_boolean_service_
ros::ServiceServer set_boolean_service_
Definition: camera_aravis_nodelet.h:193
camera_aravis::CameraAravisNodelet::extended_camera_info_mutex_
boost::recursive_mutex extended_camera_info_mutex_
Definition: camera_aravis_nodelet.h:247
camera_aravis::CameraAravisNodelet::writeCameraFeaturesFromRosparam
void writeCameraFeaturesFromRosparam()
Definition: camera_aravis_nodelet.cpp:1933
camera_aravis::CameraAravisNodelet::diagnostic_features_
YAML::Node diagnostic_features_
Definition: camera_aravis_nodelet.h:238
camera_aravis::CameraAravisNodelet::newBufferReadyCallback
static void newBufferReadyCallback(ArvStream *p_stream, gpointer can_instance)
Definition: camera_aravis_nodelet.cpp:1418
camera_aravis::CameraAravisNodelet::stream_names_
std::vector< std::string > stream_names_
Definition: camera_aravis_nodelet.h:131
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:226
conversion_utils.h
camera_aravis::CameraAravisNodelet::set_float_service_
ros::ServiceServer set_float_service_
Definition: camera_aravis_nodelet.h:187
camera_aravis::CameraAravisNodelet::width_max
int32_t width_max
Definition: camera_aravis_nodelet.h:272
camera_aravis::CameraAravisNodelet::discoverFeatures
void discoverFeatures()
Definition: camera_aravis_nodelet.cpp:1836
ros::TimerEvent
camera_aravis::CameraAravisNodelet::set_string_service_
ros::ServiceServer set_string_service_
Definition: camera_aravis_nodelet.h:190
camera_aravis::CameraAravisNodelet::spawning_
std::atomic< bool > spawning_
Definition: camera_aravis_nodelet.h:254
camera_aravis::CameraAravisNodelet::cam_pubs_
std::vector< image_transport::CameraPublisher > cam_pubs_
Definition: camera_aravis_nodelet.h:225
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:782
image_transport.h
camera_aravis::CameraAravisNodelet::auto_params_
CameraAutoInfo auto_params_
Definition: camera_aravis_nodelet.h:243
transform_listener.h
camera_aravis::CameraAravisNodelet::Sensor::height
int32_t height
Definition: camera_aravis_nodelet.h:281
camera_aravis::CameraAravisNodelet::rosReconfigureCallback
void rosReconfigureCallback(Config &config, uint32_t level)
Definition: camera_aravis_nodelet.cpp:1164
camera_aravis::CameraAravisNodelet::pub_ext_camera_info_
bool pub_ext_camera_info_
Definition: camera_aravis_nodelet.h:123
camera_aravis::CameraAravisNodelet::verbose_
bool verbose_
Definition: camera_aravis_nodelet.h:115
camera_aravis::CameraAravisNodelet::StreamIdData
Definition: camera_aravis_nodelet.h:288
camera_aravis::CameraAravisNodelet::parseStringArgs
static void parseStringArgs(std::string in_arg_string, std::vector< std::string > &out_args)
Definition: camera_aravis_nodelet.cpp:1900
nodelet::Nodelet
camera_aravis::CameraAravisNodelet::auto_pub_
ros::Publisher auto_pub_
Definition: camera_aravis_nodelet.h:244
camera_aravis::CameraAravisNodelet::onInit
virtual void onInit() override
Definition: camera_aravis_nodelet.cpp:124
camera_aravis::CameraAravisNodelet::reconfigure_mutex_
boost::recursive_mutex reconfigure_mutex_
Definition: camera_aravis_nodelet.h:223
camera_aravis::CameraAravisNodelet::diagnostic_thread_active_
std::atomic_bool diagnostic_thread_active_
Definition: camera_aravis_nodelet.h:241
nodelet.h
camera_aravis::CameraAravisNodelet::y
int32_t y
Definition: camera_aravis_nodelet.h:269
camera_aravis::CameraAravisNodelet::width_min
int32_t width_min
Definition: camera_aravis_nodelet.h:271
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:736
camera_aravis::CameraAravisNodelet::setAutoMaster
void setAutoMaster(bool value)
Definition: camera_aravis_nodelet.cpp:1065
camera_aravis::CameraAravisNodelet::num_streams_
gint num_streams_
Definition: camera_aravis_nodelet.h:129
camera_aravis::CameraAravisNodelet::softwareTriggerLoop
void softwareTriggerLoop()
Definition: camera_aravis_nodelet.cpp:1631
camera_aravis::CameraAravisNodelet::controlLostCallback
static void controlLostCallback(ArvDevice *p_gv_device, gpointer can_instance)
Definition: camera_aravis_nodelet.cpp:1621
camera_aravis::CameraAravisNodelet::get_float_service_
ros::ServiceServer get_float_service_
Definition: camera_aravis_nodelet.h:175
static_transform_broadcaster.h
camera_aravis::CameraAravisNodelet::software_trigger_active_
std::atomic_bool software_trigger_active_
Definition: camera_aravis_nodelet.h:258
camera_aravis::CameraAravisNodelet::ptp_set_cmd_feature_
std::string ptp_set_cmd_feature_
Definition: camera_aravis_nodelet.h:121
camera_aravis::CameraAravisNodelet::Sensor
Definition: camera_aravis_nodelet.h:278
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:729
camera_aravis::CameraAravisNodelet::p_stb_
std::unique_ptr< tf2_ros::StaticTransformBroadcaster > p_stb_
Definition: camera_aravis_nodelet.h:230
camera_aravis::CameraAravisNodelet::p_buffer_pools_
std::vector< CameraBufferPool::Ptr > p_buffer_pools_
Definition: camera_aravis_nodelet.h:132
camera_aravis::CameraAravisNodelet::implemented_features_
std::unordered_map< std::string, const bool > implemented_features_
Definition: camera_aravis_nodelet.h:261
camera_aravis::CameraAravisNodelet::resetPtpClock
void resetPtpClock()
Definition: camera_aravis_nodelet.cpp:851
camera_aravis::CameraAravisNodelet::Sensor::n_bits_pixel
size_t n_bits_pixel
Definition: camera_aravis_nodelet.h:283
camera_aravis::CameraAravisNodelet::setAutoSlave
void setAutoSlave(bool value)
Definition: camera_aravis_nodelet.cpp:1078
camera_aravis::CameraAravisNodelet::height
int32_t height
Definition: camera_aravis_nodelet.h:273
ros::Timer
camera_aravis::CameraAravisNodelet::Sensor::pixel_format
std::string pixel_format
Definition: camera_aravis_nodelet.h:282
camera_aravis::CameraAravisNodelet::use_ptp_stamp_
bool use_ptp_stamp_
Definition: camera_aravis_nodelet.h:118
ros::Subscriber
camera_aravis::CameraAravisNodelet::readAndPublishCameraDiagnostics
void readAndPublishCameraDiagnostics(double rate) const
Definition: camera_aravis_nodelet.cpp:1678
camera_aravis::CameraAravisNodelet::cameraAutoInfoCallback
void cameraAutoInfoCallback(const CameraAutoInfoConstPtr &msg_ptr)
Definition: camera_aravis_nodelet.cpp:887


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 Wed Sep 25 2024 02:23:21