Skip to content

ROS interface for IFM O3Mxxx based devices(O3M150, O3M250)

Notifications You must be signed in to change notification settings

pfrydlewicz/ifm_o3mxxx

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IFM O3Mxxx drivers for ROS

Overview

This package includes the basic ROS drivers for ifm O3Mxxx for publishing Pointcloud2 messages, depth image and raw message with sensor specific information. It has been tested with O3M150 and O3M250. The code is based on IFM sample codes for parsing the ethernet based communication data. The data is then repacked into ROS compatible formats.

Compatible Firmwares

The O3M supports 3 different firmware types:

  • DI: Pointcloud data + Basic Functions (ROIs and volumentric ROIs)
  • OD: Pointcloud data + Object Detection/Collision Avoidance
  • LD: Pointcloud data + Line Guidance

Current Revision

Firmware Supported Firmwares
DI DI_3.7.x, DI_4.10.x, DI_4.17.x, DI_4.21.x
OD Not yet
LG Not yet

Installation

Download or clone the folder into you workspace. Run catkin_make.

ROS API

Published topics

  • ifm_o3mxxx_pc (sensor_msgs/PointCloud2) Valid points of the PointCloud

  • ifm_o3mxxx_raw (ifm_o3mxxx/IFMO3mxxx) Raw sensor information coming from IFM sensor

    • Header header
    • uint16[1024] distance_data
    • float32[1024] x
    • float32[1024] y
    • float32[1024] z
    • uint16[1024] confidence
    • uint16[1024] amplitude
    • float32[4] amplitude_normalization
    • uint32 available
    • uint16 height
    • uint16 width
    • float32 trans_x
    • float32 trans_y
    • float32 trans_z
    • float32 rot_x
    • float32 rot_y
    • float32 rot_z
  • ifm_o3mxxx/depth/raw (sensor_msgs/Image) Depth image of valid points

Parameters

  • Port (int, default: 4599)
  • IP (string, default: "255.255.255.255")
  • frame_id (string, default: "ifm")
  • OutDepthImageTopic (string, default: "ifm_o3mxxx_depth_image")
  • PointCloudTopic (string, default: "ifm_o3mxxx_pc")
  • RawTopic (string, default: "ifm_o3mxxx_raw")

TODO

Only the PointCloud2 information and raw sensor information has been used. The depth image has not been used much(other than visualization), so it should be tested before before you start using it. Also the image interface might need more work(mo calibration etc. is taken into consideration yet).

O3M151 and O3M251 produce object information instead of point cloud. These functionalities could (probably) be added to the driver but currently I do not have such decive at hand.

Acknowledgement

This driver has been developed at Tampere University of Technology, Laboratory of Automation and Hydraulics(AUT)

About

ROS interface for IFM O3Mxxx based devices(O3M150, O3M250)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 62.5%
  • C++ 24.9%
  • Objective-C 10.6%
  • CMake 2.0%