MultiJointTrackerNode.h
Go to the documentation of this file.
1 /*
2  * MultiJointTrackerNode.h
3  *
4  * Author: roberto
5  *
6  * This is a modified implementation of the method for online estimation of kinematic structures described in our paper
7  * "Online Interactive Perception of Articulated Objects with Multi-Level Recursive Estimation Based on Task-Specific Priors"
8  * (Martín-Martín and Brock, 2014).
9  * This implementation can be used to reproduce the results of the paper and to be applied to new research.
10  * The implementation allows also to be extended to perceive different information/models or to use additional sources of information.
11  * A detail explanation of the method and the system can be found in our paper.
12  *
13  * If you are using this implementation in your research, please consider citing our work:
14  *
15 @inproceedings{martinmartin_ip_iros_2014,
16 Title = {Online Interactive Perception of Articulated Objects with Multi-Level Recursive Estimation Based on Task-Specific Priors},
17 Author = {Roberto {Mart\'in-Mart\'in} and Oliver Brock},
18 Booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems},
19 Pages = {2494-2501},
20 Year = {2014},
21 Location = {Chicago, Illinois, USA},
22 Note = {http://www.robotics.tu-berlin.de/fileadmin/fg170/Publikationen_pdf/martinmartin_ip_iros_2014.pdf},
23 Url = {http://www.robotics.tu-berlin.de/fileadmin/fg170/Publikationen_pdf/martinmartin_ip_iros_2014.pdf},
24 Projectname = {Interactive Perception}
25 }
26  * If you have questions or suggestions, contact us:
27  * roberto.martinmartin@tu-berlin.de
28  *
29  * Enjoy!
30  */
31 
32 #ifndef JOINT_TRACKER_NODE_H
33 #define JOINT_TRACKER_NODE_H
34 
35 #include <ros/ros.h>
37 
38 #include <std_srvs/Empty.h>
39 #include "joint_tracker/publish_urdf.h"
40 
41 #include <sensor_msgs/PointCloud2.h>
42 #include <geometry_msgs/Pose.h>
43 
44 #include <sensor_msgs/JointState.h>
45 #include <std_msgs/String.h>
46 
49 
50 #include <pcl_ros/publisher.h>
51 #include <pcl/io/io.h>
52 #include <pcl/point_types.h>
53 
54 #include <Eigen/StdVector>
55 #include <Eigen/Geometry>
56 
59 
60 #include "omip_msgs/RigidBodyPosesAndVelsMsg.h"
61 #include "omip_msgs/RigidBodyPoseAndVelMsg.h"
62 
65 
66 #include <std_msgs/Float64.h>
67 
68 namespace omip{
69 
70 class MultiJointTrackerNode : public RecursiveEstimatorNodeInterface<ks_measurement_ros_t, ks_state_ros_t, MultiJointTracker>
71 {
72 
73 public:
74 
79 
83  virtual ~MultiJointTrackerNode();
84 
88  void ReadParameters();
89 
95  virtual void measurementCallback(const boost::shared_ptr<ks_measurement_ros_t const> &poses_and_vels);
96 
102  virtual void statePredictionCallback(const boost::shared_ptr<ks_state_ros_t const> & predicted_next_state){}
103 
107  void ReadBag(){}
108 
109  virtual bool publishURDF(joint_tracker::publish_urdf::Request& request, joint_tracker::publish_urdf::Response& response);
110 
111 protected:
112 
117  virtual void _publishState() const;
118 
123  virtual void _publishPredictedMeasurement() const;
124 
129  virtual void _PrintResults() const;
130 
131  virtual void _generateURDF(std_msgs::String &urdf_string_msg, sensor_msgs::JointState &joint_state_msg) const;
132 
134 
135  double _sensor_fps;
138 
139 
141 
143 
145 
147 
148  std::string _sr_path;
149 };
150 }
151 
152 #endif /* JOINT_TRACKER_NODE_H */
virtual void _generateURDF(std_msgs::String &urdf_string_msg, sensor_msgs::JointState &joint_state_msg) const
virtual void _PrintResults() const
Print the results of the joint tracker on the terminal.
virtual void _publishState() const
Publish the current state of this RE level.
virtual void _publishPredictedMeasurement() const
Publish the prediction about the next measurement by this RE level.
virtual bool publishURDF(joint_tracker::publish_urdf::Request &request, joint_tracker::publish_urdf::Response &response)
virtual void measurementCallback(const boost::shared_ptr< ks_measurement_ros_t const > &poses_and_vels)
Callback for the measurements for this RE level (Poses and vels of the tracker RB from the lower leve...
virtual void statePredictionCallback(const boost::shared_ptr< ks_state_ros_t const > &predicted_next_state)
Callback for the predictions about the state of this RE level coming from the higher level of the hie...


joint_tracker
Author(s): Roberto Martín-Martín
autogenerated on Mon Jun 10 2019 14:06:16