44 #include <geometry_msgs/PoseStamped.h> 
   47 #include <visualization_msgs/InteractiveMarkerFeedback.h> 
   48 #include <visualization_msgs/InteractiveMarker.h> 
   50 #include <Eigen/Geometry> 
   57 using visualization_msgs::InteractiveMarkerControl;
 
   58 using visualization_msgs::InteractiveMarkerFeedback;
 
   60 typedef std::function<void(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr&)> 
IMarkerCallback;
 
   64 geometry_msgs::Pose getIdentityPose()
 
   66   geometry_msgs::Pose pose;
 
   67   pose.orientation.w = 1.0;
 
   75   explicit IMarkerSimple(
const std::string& name = 
"imarker", 
double scale = 0.2,
 
   76                          const geometry_msgs::Pose& initial_pose = getIdentityPose(),
 
   77                          const std::string& parent_frame = 
"world");
 
   81   void setPose(
const Eigen::Isometry3d& pose);
 
   83   void setPose(
const geometry_msgs::Pose& pose);
 
   85   void iMarkerCallback(
const visualization_msgs::InteractiveMarkerFeedbackConstPtr& feedback);
 
   95   void make6DofMarker(
const geometry_msgs::Pose& pose = getIdentityPose(), 
double scale = 0.2,
 
   96                       const std::string& parent_frame = 
"world");
 
  101   std::string 
name_ = 
"imarker_simple";
 
  109   std::shared_ptr<interactive_markers::InteractiveMarkerServer> 
imarker_server_;