Program Listing for File slam_mapper.hpp
↰ Return to documentation for file (include/slam_toolbox/slam_mapper.hpp
)
/*
* Author
* Copyright (c) 2019 Samsung Research America
*
* THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
* COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
* COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
* AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
*
* BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO
* BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS
* CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
* CONDITIONS.
*
*/
/* Author: Steven Macenski */
#ifndef SLAM_TOOLBOX__SLAM_MAPPER_HPP_
#define SLAM_TOOLBOX__SLAM_MAPPER_HPP_
#include <memory>
#include "geometry_msgs/msg/quaternion.hpp"
#include "rclcpp/rclcpp.hpp"
#include "rclcpp_lifecycle/lifecycle_node.hpp"
#include "tf2_geometry_msgs/tf2_geometry_msgs.hpp"
#include "tf2/utils.h"
#include "slam_toolbox/toolbox_types.hpp"
namespace mapper_utils
{
using namespace ::karto; // NOLINT
class SMapper
{
public:
SMapper();
~SMapper();
// get occupancy grid from scans
karto::OccupancyGrid * getOccupancyGrid(const double & resolution);
// convert Karto pose to TF pose
tf2::Transform toTfPose(const karto::Pose2 & pose) const;
// convert TF pose to karto pose
karto::Pose2 toKartoPose(const tf2::Transform & pose) const;
template<class NodeT>
void configure(const NodeT & node);
void Reset();
// // processors
// kt_bool ProcessAtDock(LocalizedRangeScan* pScan);
// kt_bool ProcessAgainstNode(LocalizedRangeScan* pScan, const int& nodeId);
// kt_bool ProcessAgainstNodesNearBy(LocalizedRangeScan* pScan);
// kt_bool ProcessLocalization(LocalizedRangeScan* pScan);
void setMapper(karto::Mapper * mapper);
karto::Mapper * getMapper();
void clearLocalizationBuffer();
protected:
std::unique_ptr<karto::Mapper> mapper_;
};
} // namespace mapper_utils
#endif // SLAM_TOOLBOX__SLAM_MAPPER_HPP_