Added rtabmap_ros/rtabmap nodelet #96 and test_rtabmap_nodelets.launch file as an example

This commit is contained in:
matlabbe
2016-09-30 16:21:06 -04:00
parent 5167492771
commit db91736443
15 changed files with 320 additions and 180 deletions
+11 -2
View File
@@ -56,7 +56,7 @@ namespace rtabmap_ros {
class CommonDataSubscriber {
public:
CommonDataSubscriber();
CommonDataSubscriber(bool gui);
virtual ~CommonDataSubscriber();
bool isSubscribedToDepth() const {return subscribedToDepth_;}
@@ -69,6 +69,7 @@ public:
int getQueueSize() const {return queueSize_;}
protected:
void setupCallbacks(ros::NodeHandle & nh, ros::NodeHandle & pnh);
virtual void commonDepthCallback(
const nav_msgs::OdometryConstPtr & odomMsg,
const rtabmap_ros::UserDataConstPtr & userDataMsg,
@@ -102,6 +103,8 @@ private:
void warningLoop();
void callbackCalled() {callbackCalled_ = true;}
void setupDepthCallbacks(
ros::NodeHandle & nh,
ros::NodeHandle & pnh,
bool subscribeOdom,
bool subscribeUserData,
bool subscribeScan2d,
@@ -110,11 +113,15 @@ private:
int queueSize,
bool approxSync);
void setupStereoCallbacks(
ros::NodeHandle & nh,
ros::NodeHandle & pnh,
bool subscribeOdom,
bool subscribeOdomInfo,
int queueSize,
bool approxSync);
void setupRGBDCallbacks(
ros::NodeHandle & nh,
ros::NodeHandle & pnh,
bool subscribeOdom,
bool subscribeUserData,
bool subscribeScan2d,
@@ -123,6 +130,8 @@ private:
int queueSize,
bool approxSync);
void setupRGBD2Callbacks(
ros::NodeHandle & nh,
ros::NodeHandle & pnh,
bool subscribeOdom,
bool subscribeUserData,
bool subscribeScan2d,
@@ -133,9 +142,9 @@ private:
protected:
std::string subscribedTopicsMsg_;
int queueSize_;
private:
int queueSize_;
bool approxSync_;
boost::thread* warningThread_;
bool callbackCalled_;
+6 -2
View File
@@ -30,6 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <ros/ros.h>
#include <nodelet/nodelet.h>
#include <std_srvs/Empty.h>
@@ -71,14 +72,16 @@ class StereoDense;
namespace rtabmap_ros {
class CoreWrapper : public CommonDataSubscriber
class CoreWrapper : public CommonDataSubscriber, public nodelet::Nodelet
{
public:
CoreWrapper(bool deleteDbOnStart, const rtabmap::ParametersMap & parameters);
CoreWrapper();
virtual ~CoreWrapper();
private:
virtual void onInit();
bool odomUpdate(const nav_msgs::OdometryConstPtr & odomMsg);
bool odomTFUpdate(const ros::Time & stamp); // TF odom
@@ -242,6 +245,7 @@ private:
MoveBaseClient mbClient_;
boost::thread* transformThread_;
bool tfThreadRunning_;
// for loop closure detection only
image_transport::Subscriber defaultSub_;