From 0a8ccdf5bf6eb5886add25140228e819a0133389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergi=20Hern=C3=A0ndez=20Juan?= <shernand@iri.upc.edu> Date: Wed, 11 Feb 2015 11:09:01 +0000 Subject: [PATCH] Changes to enable the use of nodelets. Added a new launch file with the same node configuration of the firewire_nodelet.launch file but without nodelets. --- firewire_nodelet_plugin.xml | 4 +- include/camera_common.h | 8 ++++ launch/firewire.launch | 65 ++++++++++++++++++++++++++ launch/firewire_nodelet.launch | 4 +- package.xml | 1 + src/firewire_camera_driver_nodelet.cpp | 2 +- 6 files changed, 79 insertions(+), 5 deletions(-) create mode 100755 launch/firewire.launch diff --git a/firewire_nodelet_plugin.xml b/firewire_nodelet_plugin.xml index 78eb24b..90cb46e 100755 --- a/firewire_nodelet_plugin.xml +++ b/firewire_nodelet_plugin.xml @@ -1,5 +1,5 @@ -<library path="lib/libfirewire_camera_driver_nodelet"> - <class name="iri_firewire_camera/iri_firewire_nodelet" type="FirewireCameraNodelet" base_class_type="nodelet::Nodelet"> +<library path="lib/libiri_firewire_camera_nodelet"> + <class name="iri_firewire_camera/FirewireCameraNodelet" type="FirewireCameraNodelet" base_class_type="nodelet::Nodelet"> <description> Nodelete for the iri firewire camera module </description> diff --git a/include/camera_common.h b/include/camera_common.h index aa0e6c1..39264b0 100755 --- a/include/camera_common.h +++ b/include/camera_common.h @@ -27,4 +27,12 @@ typedef struct sensor_msgs::CameraInfo CameraInfo_msg_; }TROSCamera; +typedef struct +{ + image_transport::ImageTransport *it; + image_transport::CameraPublisher camera_image_publisher_; + sensor_msgs::ImagePtr Image_msg_; + sensor_msgs::CameraInfoPtr CameraInfo_msg_; +}TROSCameraPtr; + #endif diff --git a/launch/firewire.launch b/launch/firewire.launch new file mode 100755 index 0000000..9490be3 --- /dev/null +++ b/launch/firewire.launch @@ -0,0 +1,65 @@ +<launch> + + <!-- bumblebee --> + <!-- published topics: /sensors/head_right/image_raw --> + <!-- subscribed topics: --> + <!-- service clients: --> + <!-- service servers: --> + <!-- action clients: --> + <!-- action servers: --> + <node pkg ="iri_firewire_camera" + type="iri_firewire_camera" + name="bumblebee"> + <remap from="/bumblebee/camera_image" + to="/sensors/head_right/image_raw"/> + <param name="Camera_node" value="0" /> + <param name="frame_id" value="bumblebee_right" type="string" /> + <!-- set calibration file --> + <param name="cal_file" value="file://$(find iri_firewire_camera)/calibration/$(env ROBOT)_right_camera.yaml" type="string" /> + <param name="ISO_speed" value="400" /> + <param name="Framerate" value="7.5" /> + <param name="Color_coding" value="3" /> + <param name="Image_width" value="1024" /> + <param name="Image_height" value="768" /> + <param name="~tf_prefix" value="/$(env ROBOT)" type="str"/> + </node> + + <!-- published topics: /processed_image --> + <!-- subscribed topics: /sensors/head_right/image_raw --> + <!-- /sensors/head_right/camera_info --> + <!-- service clients: --> + <!-- service servers: --> + <!-- action clients: --> + <!-- action servers: --> + <!-- image crop --> + <node pkg ="nodelet" + type="nodelet" + name="image_proc_dec" + args="standalone image_proc/crop_decimate"> + <param name="decimation_x" value="2" /> + <param name="decimation_y" value="2" /> + <remap from="/camera/image_raw" + to="/sensors/head_right/image_raw"/> + <remap from="/camera/camera_info" + to="/sensors/head_right/camera_info"/> + </node> + + <!-- image rectification --> + <node pkg ="image_proc" + type="image_proc" + name="image_proc_rect"> + <remap from="/image_raw" + to="/camera_out/image_raw" /> + <remap from="/camera_info" + to="/camera_out/camera_info" /> + <remap from="/image_rect_color" + to="/processed_image" /> + </node> + + <node pkg="image_view" + type="image_view" + name="image_view" > + <remap from="/image" to="/processed_image"/> + </node> + +</launch> diff --git a/launch/firewire_nodelet.launch b/launch/firewire_nodelet.launch index 94dc81c..96d17b4 100755 --- a/launch/firewire_nodelet.launch +++ b/launch/firewire_nodelet.launch @@ -2,7 +2,7 @@ <node pkg="nodelet" type="nodelet" name="standalone_nodelet" args="manager" output="screen"> <param name="Camera_node" value="0" /> <param name="frame_id" value="bumblebee_frame" type="string" /> - <param name="cal_file" value="file://$(find iri_firewire_camera)/calibration/bumblebee_right.yml" type="string" /> + <param name="cal_file" value="file://$(find iri_firewire_camera)/calibration/$(env ROBOT)_right_camera.yaml" type="string" /> <param name="ISO_speed" value="400" /> <param name="Framerate" value="7.5" /> <param name="Color_coding" value="3" /> @@ -22,7 +22,7 @@ </node> <!-- firewire camera driver --> - <node pkg="nodelet" type="nodelet" name="iri_firewire_nodelet" args="load iri_firewire_camera/iri_firewire_nodelet standalone_nodelet" output="screen"> + <node pkg="nodelet" type="nodelet" name="iri_firewire_nodelet" args="load iri_firewire_camera/FirewireCameraNodelet standalone_nodelet" output="screen"> </node> <!-- image decimation --> diff --git a/package.xml b/package.xml index c82d03d..99c4384 100644 --- a/package.xml +++ b/package.xml @@ -61,5 +61,6 @@ <!-- The export tag contains other, unspecified, tags --> <export> <!-- Other tools can request additional information be placed here --> + <nodelet plugin="${prefix}/firewire_nodelet_plugin.xml" /> </export> </package> diff --git a/src/firewire_camera_driver_nodelet.cpp b/src/firewire_camera_driver_nodelet.cpp index f031363..1e0adac 100755 --- a/src/firewire_camera_driver_nodelet.cpp +++ b/src/firewire_camera_driver_nodelet.cpp @@ -237,5 +237,5 @@ FirewireCameraNodelet::~FirewireCameraNodelet() } // parameters are: package, class name, class type, base class type -PLUGINLIB_DECLARE_CLASS(iri_firewire_camera, iri_firewire_nodelet, FirewireCameraNodelet, nodelet::Nodelet); +PLUGINLIB_DECLARE_CLASS(iri_firewire_camera, FirewireCameraNodelet, FirewireCameraNodelet, nodelet::Nodelet); -- GitLab