@@ -15,15 +15,14 @@ inline ros::Time CreateRosTimestamp(const uint64_t mico_sec) {
1515 return {sec, nsec};
1616}
1717
18- class UdpDemoNode {
18+ class CamDriver {
1919 public:
20- UdpDemoNode (ros::NodeHandle &nh) : node_(nh), it_(node_), camera_name_(" cam_1" ), imu_name_(" imu_1" ) {}
21-
20+ CamDriver (ros::NodeHandle &nh) : node_(nh), it_(node_), camera_name_(" cam_1" ), imu_name_(" imu_1" ) {}
2221 void ImuCallback (const void *msg, size_t ) {
2322 const auto *imu_data = static_cast <const ImuData *>(msg);
2423 sensor_msgs::Imu imu_msg_data;
25- imu_msg_data.header .frame_id = " /base_imu_link " ;
26- imu_msg_data.header .stamp = CreateRosTimestamp (imudata. time_stamp_us );
24+ imu_msg_data.header .frame_id = " map " ;
25+ imu_msg_data.header .stamp = CreateRosTimestamp (imu_data-> time_stamp_us );
2726
2827 imu_msg_data.angular_velocity .x = imu_data->g [0 ];
2928 imu_msg_data.angular_velocity .y = imu_data->g [1 ];
@@ -33,10 +32,10 @@ class UdpDemoNode {
3332 imu_msg_data.linear_acceleration .y = imu_data->a [1 ];
3433 imu_msg_data.linear_acceleration .z = imu_data->a [2 ];
3534
36- imu_msg_data.orientation .w = imu_data->a [0 ];
37- imu_msg_data.orientation .x = imu_data->a [1 ];
38- imu_msg_data.orientation .y = imu_data->a [2 ];
39- imu_msg_data.orientation .z = imu_data->a [3 ];
35+ imu_msg_data.orientation .w = imu_data->q [0 ];
36+ imu_msg_data.orientation .x = imu_data->q [1 ];
37+ imu_msg_data.orientation .y = imu_data->q [2 ];
38+ imu_msg_data.orientation .z = imu_data->q [3 ];
4039 imu_pub_.publish (imu_msg_data);
4140 }
4241
@@ -59,8 +58,9 @@ class UdpDemoNode {
5958 image_pub_ = it_.advertise (camera_name_, 30 );
6059 synchronizer_.Start ();
6160 std::this_thread::sleep_for (std::chrono::milliseconds (5000 ));
62- Messenger::GetInstance ().SubStruct (" imu_1" , ImuCallback);
63- Messenger::GetInstance ().SubStruct (" cam_1" , ImageCallback);
61+ using namespace std ::placeholders;
62+ Messenger::GetInstance ().SubStruct (" imu_1" , std::bind (&CamDriver::ImuCallback, this , _1, _2));
63+ Messenger::GetInstance ().SubStruct (" cam_1" , std::bind (&CamDriver::ImageCallback, this , _1, _2));
6464 }
6565
6666 void Run () {
0 commit comments