Skip to content

Commit e3c6e14

Browse files
author
Stuart Alldritt
committed
Fixing nodelet
1 parent 6bbcac2 commit e3c6e14

File tree

4 files changed

+56
-25
lines changed

4 files changed

+56
-25
lines changed

include/azure-kinect-ros-driver/k4a_ros_bridge_nodelet.h

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,21 @@
1616
//
1717
#include "azure-kinect-ros-driver/k4a_ros_device.h"
1818

19-
class K4AROSBridgeNodelet : public nodelet::Nodelet
19+
namespace Azure_Kinect_ROS_Driver
2020
{
21-
public:
21+
class K4AROSBridgeNodelet : public nodelet::Nodelet
22+
{
23+
public:
2224

23-
K4AROSBridgeNodelet();
24-
~K4AROSBridgeNodelet();
25+
K4AROSBridgeNodelet();
26+
~K4AROSBridgeNodelet();
2527

26-
virtual void onInit();
28+
virtual void onInit();
2729

28-
private:
30+
private:
2931

30-
std::unique_ptr<K4AROSDevice> k4a_device;
31-
};
32-
33-
#include <pluginlib/class_list_macros.h>
34-
35-
PLUGINLIB_EXPORT_CLASS(K4AROSBridgeNodelet, nodelet::Nodelet)
32+
std::unique_ptr<K4AROSDevice> k4a_device;
33+
};
34+
}
3635

3736
#endif // K4A_ROS_BRIDGE_NODELET_H

nodelet_plugins.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<library path="lib/libazure-kinect-ros-driver_nodelet">
2+
<class name="Azure-Kinect-ROS-Driver/K4AROSBridgeNodelet" type="Azure_Kinect_ROS_Driver::K4AROSBridgeNodelet" base_class_type="nodelet::Nodelet">
3+
<description>
4+
A nodelet version of the Azure Kinect ROS Driver.
5+
</description>
6+
</class>
7+
</library>

package.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,10 @@
2222
<depend>tf2_ros</depend>
2323
<depend>tf2_geometry_msgs</depend>
2424
<depend>geometry_msgs</depend>
25+
<depend>nodelet</depend>
26+
27+
<export>
28+
<nodelet plugin="${prefix}/nodelet_plugins.xml" />
29+
</export>
2530

2631
</package>

src/k4a_ros_bridge_nodelet.cpp

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,46 @@
1010

1111
// Library headers
1212
//
13+
#include <pluginlib/class_list_macros.h>
1314

1415
// Project headers
1516
//
1617

17-
K4AROSBridgeNodelet::K4AROSBridgeNodelet() : Nodelet(),
18-
k4a_device(nullptr)
19-
{
20-
}
18+
PLUGINLIB_EXPORT_CLASS(Azure_Kinect_ROS_Driver::K4AROSBridgeNodelet, nodelet::Nodelet)
2119

22-
K4AROSBridgeNodelet::~K4AROSBridgeNodelet()
20+
namespace Azure_Kinect_ROS_Driver
2321
{
24-
}
22+
K4AROSBridgeNodelet::K4AROSBridgeNodelet() : Nodelet(),
23+
k4a_device(nullptr)
24+
{
25+
}
2526

26-
void K4AROSBridgeNodelet::onInit()
27-
{
28-
k4a_device = std::unique_ptr<K4AROSDevice>(new K4AROSDevice(getNodeHandle(), getPrivateNodeHandle()));
27+
K4AROSBridgeNodelet::~K4AROSBridgeNodelet()
28+
{
29+
k4a_device->stopCameras();
30+
k4a_device->stopImu();
31+
}
2932

30-
if (!k4a_device->startCameras())
33+
void K4AROSBridgeNodelet::onInit()
3134
{
32-
k4a_device.reset(nullptr);
33-
throw nodelet::Exception("Could not start K4A_ROS_Device!");
35+
NODELET_INFO("K4A ROS Nodelet Start");
36+
37+
/*k4a_device = std::unique_ptr<K4AROSDevice>(new K4AROSDevice(getNodeHandle(), getPrivateNodeHandle()));
38+
39+
if (k4a_device->startCameras() != K4A_RESULT_SUCCEEDED)
40+
{
41+
k4a_device.reset(nullptr);
42+
throw nodelet::Exception("Could not start K4A_ROS_Device!");
43+
}
44+
45+
NODELET_INFO("Cameras started");
46+
47+
if (k4a_device->startImu() != K4A_RESULT_SUCCEEDED)
48+
{
49+
k4a_device.reset(nullptr);
50+
throw nodelet::Exception("Could not start K4A_ROS_Device!");
51+
}
52+
53+
NODELET_INFO("IMU started");*/
3454
}
35-
}
55+
}

0 commit comments

Comments
 (0)