[Documentation] [TitleIndex] [WordIndex

  Show EOL distros: 

Package Summary

This package provides a ROS driver for Infinisoleil sensors.

Package Summary

This package provides a ROS driver for Infinisoleil sensors.

Package Summary

This package provides a ROS driver for Infinisoleil sensors.

Overview

This package provides a ROS driver for Infinisoleil sensors. The driver accesses the sensors using infinisoleil-lib.

The driver publishes range and IR images and point cloud. The driver converts from received packets containing range and IR data into sensor_msgs/Image respectively. In addition, the driver creates sensor_msgs/PointCloud2 by using obtained range data and sensor information.

Installation

Setup infiniosleil-lib

This package requires infinisoleil-lib. Please download the library from SourceForge and install it.

Install infinisoleil

Please clone the source repository into your catkin SOURCE SPACE and run catkin_make at root of your catkin WORK SPACE.

ROS API

FX8DrvierNodelet

The driver nodelet receives scan data from the sensor and publishes the data.

Published Topics

Scan data
The driver receives scan data from the sensor and publishes it as range image, IR image and point cloud. range_image (sensor_msgs/Image) ir_image (sensor_msgs/Image) point_cloud (sensor_msgs/PointCloud2)
Diagnostics
The driver publishes frequency diagnostics of topics, received error code from the sensor and returned error information of infinisoleil-lib. /diagnostics (diagnostic_msgs/DiagnosticArray)

Parameters

Initial Parameters
These parameters only affect the driver when it starts. ~hostname (str, default: 192.168.0.80) ~port_number (str, default: 50000) ~connect_timeout (int, default: 10000) ~send_timeout (int, default: 3000) ~receive_timeout (int, default: 5000) ~range_frame_id (str, default: range_image) ~ir_frame_id (str, default: ir_image) ~point_cloud_frame_id (str, default: point_cloud) ~diagnostics_enable (bool, default: true)
Reconfigurable Parameters
The sensor has measure_mode. The driver configures measure_mode of the sensor when the driver receives a request for reconfiguration. Image resolution and frame_cycle are changed according to measure_mode. ~measure_mode (int, default: 0)
Read-only Parameters
These parameters are read-only. ~measure_point_x (int) ~measure_point_y (int) ~swing_fs (int) ~swing_ss (int) ~xy_surface_count (int) ~frame_cycle (int) ~max_measure_mode (int) ~xy_serial_number (str) ~logic_version (str) ~firm_version (str) ~product_number (str)

fx8_node

The node has nodelet loader and load FX8DriverNodelet at initialization. It provides the same ROS API as FX8DriverNodelet above.

Usage

Start a nodelet manager process with an FX8DriverNodelet. The driver publishes range image, IR image and point cloud. If other nodelets are loaded in the same nodelet manager process, those will have zero copy access to published topics.

$ rosrun nodelet nodelet manager
$ rosrun nodelet nodelet load infinisoleil/FX8DriverNodelet manager

Start a driver nodelet with configuration of hostname.

$ rosrun nodelet nodelet manager
$ rosrun nodelet nodelet load infinisoleil/FX8DriverNodelet manager _hostname:=192.168.0.81

Launch file

This package has two launch files. fx8_drvier.launch runs a nodelet manager process and an FX8DriverNodelet. fx8_node.launch runs an fx8_node.

$ roslaunch infinisoleil fx8_driver.launch

$ roslaunch infinisoleil fx8_node.launch

Start an fx8_node by roslaunch with configuration of hostname.

$ roslaunch infinisoleil fx8_node.launch hostname:=192.168.0.81

Start a driver nodelet by roslaunch without diagnostics.

$ roslaunch infinisoleil fx8_driver.launch diagnostics_enable:=false

fx8_driver.launch runs a nodelet manager and a driver nodelet. The nodelet manager can load another driver nodelet but drivers cannot connect to the same sensor. So, this case requires two sensors.

  <launch>
    <!-- launch fx8_driver.launch -->
    <include file="$(find infinisoleil)/launch/fx8_driver.launch"/>
  
    <!-- Add another driver nodelet -->
    <node pkg="nodelet" type="nodelet" name="add_driver"
      args="load infinisoleil/FX8DriverNodelet fx8_nodelet_manager"
      output="screen">
      <remap from="range_image" to="add_driver/range_image"/>
      <remap from="ir_image" to="add_driver/ir_image"/>
      <remap from="point_cloud" to="add_driver/point_cloud"/>
      <param name="hostname" type="str" value="192.168.0.81"/>
    </node>
  </launch>

Tests

This package supports hertz test. Hertz test checks frame_cycle corresponded to specific measure_mode. For instance, run a test with default parameters.

$ rostest infinisoleil fx8_driver_hertz.test

Run a test with configuration of hostname.

$ rostest infinisoleil fx8_driver_hertz.test set_hostname:=192.168.0.81

Run a test with configuration of measure mode.

$ rostest infinisoleil fx8_driver_hertz.test set_measure_mode:=1 hz:=16.0


2019-12-07 12:41