19 #ifndef SLAM_TOOLBOX_LOOP_CLOSURE_ASSISTANT_H_ 20 #define SLAM_TOOLBOX_LOOP_CLOSURE_ASSISTANT_H_ 23 #include <boost/thread.hpp> 52 bool manualLoopClosureCallback(slam_toolbox_msgs::LoopClosure::Request& req, slam_toolbox_msgs::LoopClosure::Response& resp);
53 bool clearChangesCallback(slam_toolbox_msgs::Clear::Request& req, slam_toolbox_msgs::Clear::Response& resp);
54 bool interactiveModeCallback(slam_toolbox_msgs::ToggleInteractive::Request &req, slam_toolbox_msgs::ToggleInteractive::Response &resp);
55 void moveNode(
const int&
id,
const Eigen::Vector3d& pose);
58 std::unique_ptr<tf2_ros::TransformBroadcaster>
tfB_;
77 #endif //SLAM_TOOLBOX_LOOP_CLOSURE_ASSISTANT_H_ void moveNode(const int &id, const Eigen::Vector3d &pose)
ros::ServiceServer ssLoopClosure_
std::unique_ptr< tf2_ros::TransformBroadcaster > tfB_
LoopClosureAssistant(ros::NodeHandle &node, karto::Mapper *mapper, laser_utils::ScanHolder *scan_holder, PausedState &state, ProcessType &processor_type)
boost::mutex interactive_mutex_
void addMovedNodes(const int &id, Eigen::Vector3d vec)
bool interactiveModeCallback(slam_toolbox_msgs::ToggleInteractive::Request &req, slam_toolbox_msgs::ToggleInteractive::Response &resp)
std::unique_ptr< interactive_markers::InteractiveMarkerServer > interactive_server_
boost::mutex moved_nodes_mutex_
laser_utils::ScanHolder * scan_holder_
void processInteractiveFeedback(const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback)
ros::ServiceServer ssInteractive_
bool enable_interactive_mode_
bool manualLoopClosureCallback(slam_toolbox_msgs::LoopClosure::Request &req, slam_toolbox_msgs::LoopClosure::Response &resp)
karto::ScanSolver * solver_
ProcessType & processor_type_
ros::ServiceServer ssClear_manual_
std::map< int, Eigen::Vector3d > moved_nodes_
ros::Publisher marker_publisher_
ros::Publisher scan_publisher_
bool clearChangesCallback(slam_toolbox_msgs::Clear::Request &req, slam_toolbox_msgs::Clear::Response &resp)