종종 변하지 않는 데이터를 (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 |