The Pepperl+Fuchs R2000 Driver

This is the Doxygen documentation of a driver for the Pepperl+Fuchs OMD10M-R2000-B23 laser range finder.

The driver is based upon the widespread boost asio library (<>)

The driver comes as a library, which contains the actual driver, and has additionally a ROS-Node interface to the Robot Operating System (<>), which can optionally be used.

Usage with ROS =========================== The ROS package consists of the driver library and a node named `r2000_node`, which is linked to the library. This is the actual driver node.

Published Topics ---------------------------

Parameters ---------------------------

Quick Start --------------------------- Set the IP-Address of the scanner in `launch/gui_example.launch` and run the following command:

roslaunch pepperl_fuchs_r2000 gui_example.launch

This starts `RViz` ( and the driver and you should see the measuring output of the scanner.

Basic usage without ROS ===========================

The basic usage of the driver library code (C++11 style) is as follows:

#include <pepperl_fuchs_r2000/r2000_driver.h>

int main(int argc, char **argv) { bool success;

pepperl_fuchs::R2000Driver driver; success = driver.connect(""); // Replace IP success = driver.setScanFrequency(35); // Set scanner frequency in the range [10;50] success = driver.setSamplesPerScan(3600); // Set samples per scan in the range [72,25200] (valid values are listed in manual)

auto params = driver.getParameters(); // Get all parameter values as std::map<string, string> for( auto key_value : params ) { Do something with the parameter values }

success = driver.startCapturingUDP(); // Notice: startCapturingTCP() also exists

while(true) { pepperl_fuchs::ScanData scandata = driver.getFullScan(); // Do something with: scandata.headers; // headers, scandata.distance_data; // distances and scandata.amplitude_data; // amplitudes }

driver.stopCapturing(); driver.disconnect(); }

Author(s): Denis Dillenberger
autogenerated on Wed Aug 26 2015 15:22:22