Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <ros/ros.h>
00036 #include <nodelet/loader.h>
00037 #include <image_proc/advertisement_checker.h>
00038
00039 int main(int argc, char **argv)
00040 {
00041 ros::init(argc, argv, "image_proc");
00042
00043
00044 if (ros::names::remap("camera") != "camera")
00045 {
00046 ROS_WARN("Remapping 'camera' has no effect! Start image_proc in the "
00047 "camera namespace instead.\nExample command-line usage:\n"
00048 "\t$ ROS_NAMESPACE=%s rosrun image_proc image_proc",
00049 ros::names::remap("camera").c_str());
00050 }
00051 if (ros::this_node::getNamespace() == "/")
00052 {
00053 ROS_WARN("Started in the global namespace! This is probably wrong. Start image_proc "
00054 "in the camera namespace.\nExample command-line usage:\n"
00055 "\t$ ROS_NAMESPACE=my_camera rosrun image_proc image_proc");
00056 }
00057
00058
00059 ros::NodeHandle private_nh("~");
00060 XmlRpc::XmlRpcValue shared_params;
00061 int queue_size;
00062 if (private_nh.getParam("queue_size", queue_size))
00063 shared_params["queue_size"] = queue_size;
00064
00065 nodelet::Loader manager(false);
00066 nodelet::M_string remappings;
00067 nodelet::V_string my_argv;
00068
00069
00070 std::string debayer_name = ros::this_node::getName() + "_debayer";
00071 manager.load(debayer_name, "image_proc/debayer", remappings, my_argv);
00072
00073
00074 std::string rectify_mono_name = ros::this_node::getName() + "_rectify_mono";
00075 if (shared_params.valid())
00076 ros::param::set(rectify_mono_name, shared_params);
00077 manager.load(rectify_mono_name, "image_proc/rectify", remappings, my_argv);
00078
00079
00080
00081 remappings["image_mono"] = ros::names::resolve("image_color");
00082 remappings["image_rect"] = ros::names::resolve("image_rect_color");
00083 std::string rectify_color_name = ros::this_node::getName() + "_rectify_color";
00084 if (shared_params.valid())
00085 ros::param::set(rectify_color_name, shared_params);
00086 manager.load(rectify_color_name, "image_proc/rectify", remappings, my_argv);
00087
00088
00089 ros::V_string topics;
00090 topics.push_back(ros::names::resolve("image_raw"));
00091 topics.push_back(ros::names::resolve("camera_info"));
00092 image_proc::AdvertisementChecker check_inputs(ros::NodeHandle(), ros::this_node::getName());
00093 check_inputs.start(topics, 60.0);
00094
00095 ros::spin();
00096 return 0;
00097 }