34 #ifndef RC_VISARD_DRIVERNODELET_H 35 #define RC_VISARD_DRIVERNODELET_H 38 #include <dynamic_reconfigure/server.h> 39 #include <rc_visard_driver/rc_visard_driverConfig.h> 40 #include <rc_common_msgs/Trigger.h> 53 #include <rc_visard_driver/GetTrajectory.h> 74 bool dynamicsStart(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
77 bool dynamicsStartSlam(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
80 bool dynamicsRestart(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
83 bool dynamicsRestartSlam(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
86 bool dynamicsStop(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
89 bool dynamicsStopSlam(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
92 bool dynamicsResetSlam(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
96 rc_visard_driver::GetTrajectory::Response& resp);
99 bool saveSlamMap(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
102 bool loadSlamMap(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
105 bool removeSlamMap(rc_common_msgs::Trigger::Request& req, rc_common_msgs::Trigger::Response& resp);
111 const std::string& frame_id_prefix,
bool tfEnabled,
112 bool staticImu2CamTf);
127 dynamic_reconfigure::Server<rc_visard_driver::rc_visard_driverConfig>*
reconfig;
141 boost::recursive_mutex
mtx;
144 rc_visard_driver::rc_visard_driverConfig
config;
bool dynamicsStart(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Start Stereo INS.
ThreadedStream::Manager::Ptr dynamicsStreams
std::shared_ptr< RemoteInterface > Ptr
bool dev_supports_chunk_data
bool autopublishTrajectory
unsigned int totalIncompleteBuffers
bool dynamicsStopSlam(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Stop SLAM (keep Stereo INS running)
void reconfigure(rc_visard_driver::rc_visard_driverConfig &config, uint32_t level)
void produce_connection_diagnostics(diagnostic_updater::DiagnosticStatusWrapper &stat)
std::shared_ptr< ThreadedStream > Ptr
diagnostic_updater::Updater updater
diagnostics publishing
bool getSlamTrajectory(rc_visard_driver::GetTrajectory::Request &req, rc_visard_driver::GetTrajectory::Response &resp)
Get the Slam trajectory.
ros::ServiceServer slamLoadMapService
bool dynamicsStartSlam(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Start Stereo INS+SLAM.
void grab(std::string device, rcg::Device::ACCESS access)
std::shared_ptr< Manager > Ptr
void produce_device_diagnostics(diagnostic_updater::DiagnosticStatusWrapper &stat)
ros::ServiceServer depthAcquisitionTriggerService
wrapper for REST-API calls relating to rc_visard's dynamics interface
ros::ServiceServer dynamicsStartSlamService
bool dynamicsRestart(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Restart Stereo INS.
bool removeSlamMap(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Remove the onboard SLAM map.
ros::ServiceServer getSlamTrajectoryService
bool perform_depth_acquisition_trigger
bool tfEnabled
should poses published also via tf?
bool dev_supports_depth_acquisition_trigger
void initConfiguration(const std::shared_ptr< GenApi::CNodeMapRef > &nodemap, rc_visard_driver::rc_visard_driverConfig &cfg, rcg::Device::ACCESS access)
tf2_ros::StaticTransformBroadcaster tfStaticBroadcaster
std::atomic_bool imageSuccess
unsigned int totalCompleteBuffers
ros::ServiceServer dynamicsStopSlamService
unsigned int totalImageReceiveTimeouts
ros::ServiceServer dynamicsRestartSlamService
static ThreadedStream::Ptr CreateDynamicsStreamOfType(rc::dynamics::RemoteInterface::Ptr rcdIface, const std::string &stream, ros::NodeHandle &nh, const std::string &frame_id_prefix, bool tfEnabled, bool staticImu2CamTf)
std::atomic_uint_least32_t level
rc_visard_driver::rc_visard_driverConfig config
void keepAliveAndRecoverFromFails()
int cntConsecutiveRecoveryFails
ros::ServiceServer slamSaveMapService
ros::ServiceServer dynamicsStopService
std::atomic_bool imageRequested
std::string gev_packet_size
ros::Publisher trajPublisher
std::shared_ptr< rcg::Device > rcgdev
bool atLeastOnceSuccessfullyStarted
ros::ServiceServer dynamicsStartService
bool dynamicsResetSlam(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Reset SLAM (keep Stereo INS running)
std::atomic_bool stopImageThread
ros::ServiceServer dynamicsRestartService
bool dynamicsStop(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Stop Stereo INS(+SLAM if running)
dynamic_reconfigure::Server< rc_visard_driver::rc_visard_driverConfig > * reconfig
bool dynamicsRestartSlam(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Restart Stereo INS+SLAM.
bool dev_supports_double_shot
bool depthAcquisitionTrigger(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Trigger stereo matching in mode 'SingleFrame'.
std::atomic_bool stopRecoverThread
rc::dynamics::RemoteInterface::Ptr dynamicsInterface
std::thread recoverThread
bool saveSlamMap(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Save the onboard SLAM map.
unsigned int totalConnectionLosses
std::shared_ptr< GenApi::CNodeMapRef > rcgnodemap
ros::ServiceServer dynamicsResetSlamService
boost::recursive_mutex mtx
std::string tfPrefix
all frame names must be prefixed when using more than one rc_visard
bool loadSlamMap(rc_common_msgs::Trigger::Request &req, rc_common_msgs::Trigger::Response &resp)
Load the onboard SLAM map.
ros::ServiceServer slamRemoveMapService