optris_imager_node.cpp
Go to the documentation of this file.
1 /*********************************************************************
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2012-2016
5  * Technische Hochschule Nürnberg Georg Simon Ohm
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * * Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  * * Redistributions in binary form must reproduce the above
15  * copyright notice, this list of conditions and the following
16  * disclaimer in the documentation and/or other materials provided
17  * with the distribution.
18  * * Neither the name of Nuremberg Institute of Technology
19  * Georg Simon Ohm nor the authors names may be used to endorse
20  * or promote products derived from this software without specific
21  * prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34  * POSSIBILITY OF SUCH DAMAGE.
35  *
36  * Author: Stefan May
37  *********************************************************************/
38 
39 #include <sys/stat.h>
40 #include "OptrisImager.h"
41 
42 int main(int argc, char **argv)
43 {
44  ros::init(argc, argv, "optris_imager_node");
45 
46  // private node handle to support command line parameters for rosrun
47  ros::NodeHandle n_("~");
48 
49  std::string xmlConfig = "";
50  n_.getParam("xmlConfig", xmlConfig);
51 
52  // A specific configuration file for each imager device is needed (cf. config directory)
53  struct stat s;
54  if(stat(xmlConfig.c_str(), &s) != 0)
55  {
56  std::cerr << "usage: rosrun <package> <node> _xmlConfig:=<xmlConfig>" << std::endl;
57  std::cerr << " verify that <xmlConfig> exists" << std::endl;
58  return -1;
59  }
60 
62 
63  // Read parameters from xml file
64  evo::IRDeviceParams params;
65  if(!evo::IRDeviceParamsReader::readXML(xmlConfig.c_str(), params))
66  return -1;
67 
68  // Find valid device
69  evo::IRDevice* dev = evo::IRDevice::IRCreateDevice(params);
70  if(!dev)
71  {
72  std::cout << "Error: UVC device with serial " << params.serial << " could not be found" << std::endl;
73  return -1;
74  }
75 
76  // Give control to class instance
77  optris_drivers::OptrisImager imager(dev, params);
78  imager.run();
79 
80  return 0;
81 }
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
Node management class.
Definition: OptrisImager.h:26
bool getParam(const std::string &key, std::string &s) const
int main(int argc, char **argv)


optris_drivers
Author(s): Stefan May (Nuremberg Institute of Technology Georg Simon Ohm - www.th-nuernberg.de), 64-Bit platform supported by Fraunhofer IPA (www.ipa.fraunhofer.de), Support for ROS hydro migration by Christopher-Eyk Hrabia (DAI-Labor, Technische Universität Berlin)
autogenerated on Mon Jun 10 2019 14:09:59