Robotics/ROS

[ROS] ros subscribe once

화이팅입미다 2021. 7. 20. 16:58

종종 변하지 않는 데이터를 (tf_static, camera_info 등)을 publish하는 노드들이 있다. 근데 나는 한번만 받아서 업데이트가 필요하다. 그래서 구글에 찾아봄

 

해결 방법 : subscriber 인스턴스를 포인터로 사용하고 delete해준다.

 

 

global variable

ros::Subscriber* camera_info_sub_;

 

initialize

camera_info_sub_ = new ros::Subscriber;
camera_info_sub_ = nh.subscribe("/camera/depth/camera_info", 1, &your_class::camera_info_cb, this);

 

function

void your_class::camera_info_cb(const sensor_msgs::CameraInfo& msg)
{
	...
    
    camera_info_sub_->shutdown(); 
    delete camera_info_sub_;
}

 

'Robotics > ROS' 카테고리의 다른 글

[ROS] How to generate TF message quickly  (0) 2020.12.10
[ROS] how to draw a marker on rviz (node, link, text)  (0) 2020.12.10