Make camera markers node retrieve frame id from camera info

This commit is contained in:
Oleg Kalachev
2018-09-12 02:50:36 +03:00
parent 1909feceba
commit 3bd4a6673f
2 changed files with 6 additions and 3 deletions

View File

@@ -26,7 +26,6 @@
<!-- camera visualization markers -->
<node pkg="clever" type="camera_markers" ns="main_camera" name="main_camera_markers">
<param name="frame_id" value="main_camera_optical"/>
<param name="scale" value="3.0"/>
</node>
</launch>

View File

@@ -9,6 +9,7 @@
#include <string>
#include <ros/ros.h>
#include <sensor_msgs/CameraInfo.h>
#include <visualization_msgs/Marker.h>
#include <visualization_msgs/MarkerArray.h>
@@ -81,12 +82,15 @@ MarkerArray createMarkers() {
int main(int argc, char **argv)
{
ros::init(argc, argv, "camera_markers");
ros::init(argc, argv, "camera_markers", ros::init_options::AnonymousName);
ros::NodeHandle nh, nh_priv("~");
nh_priv.param<std::string>("frame_id", camera_frame, "main_camera_optical");
nh_priv.param("scale", markers_scale, 1.0);
// wait for camera info
auto camera_info = ros::topic::waitForMessage<sensor_msgs::CameraInfo>("camera_info", nh);
camera_frame = camera_info->header.frame_id;
ros::Publisher markers_pub = nh.advertise<visualization_msgs::MarkerArray>("camera_markers", 1, true);
markers_pub.publish(createMarkers());