Show EOL distros: 

Package Summary


  • Maintainer: Chad Rockey <chadrockey AT willowgarage DOT com>
  • Author: Chad Rockey <chadrockey AT willowgarage DOT com>
  • License: BSD

Package Summary


Package Summary



Image credit: RobotShop

Supported Hardware

This driver should work with any SCIP 2.2 or earlier compliant laser range-finders.

API Stability

The ROS API of this driver should be considered stable.

Parameter Ranges

The UTM-30LX laser can report corrupt data and even crash if settings with an excessive data rate are requested. The following settings are known to work:

Intensity mode off:

  • cluster: 1

  • skip: 1

  • intensity: false

  • min_ang: -2.2689

  • max_ang: 2.2689

Intensity mode on:

  • cluster: 1

  • skip: 1

  • intensity: true

  • min_ang: -1.047

  • max_ang: 1.047

Allow Unsafe Settings Option

Allow Unsafe Settings Option is not available, please consider using the legacy hokuyo_node for UTM-30LX with certain configurations. (Or provide a pull request to urg_node to add support for unsafe_settings.)


Command-Line Tools

The getID program can be used to get information about a hokuyo laser scanner. Each of them can be invoked in a human readable way:

$ rosrun urg_node getID /dev/ttyACM0
Device at /dev/ttyACM0 has ID H0807228

or in a script friendly way:

$ rosrun urg_node getID /dev/ttyACM0 --

If they fail to connect to the device they will retry for about ten seconds before giving up.

Using udev to Give Hokuyos Consistent Device Names

The getID program can be used to get the hardware ID of a Hokuyo device given its port. Combined with udev, this allows a consistent device name to be given to each device, even if the order in which they are plugged in varies. On the PR2 we use the following udev rule:

SUBSYSTEMS=="usb", KERNEL=="ttyACM[0-9]*", ACTION=="add", ATTRS{idVendor}=="15d1", ATTRS{idProduct}=="0000", MODE="666", PROGRAM="/opt/ros/hydro/lib/urg_node/getID /dev/%k q", SYMLINK+="sensors/hokuyo_%c", GROUP="dialout"

This udev rule sets up a device name that is based on the Hokuyo's hardware ID. The PR2 then has a symlink to that name that gets changed if the Hokuyo is replaced:

$ ls -l /etc/ros/sensors/base_hokuyo
lrwxrwxrwx 1 root root 28 2010-01-12 15:53 /etc/ros/sensors/base_hokuyo -> /dev/sensors/hokuyo_H0902620
$ ls -l /dev/sensors/hokuyo_H0902620
lrwxrwxrwx 1 root root 10 2010-04-12 12:34 /dev/sensors/hokuyo_H0902620 -> ../ttyACM1

Wiki: urg_node (last edited 2017-06-26 07:32:32 by MarkusKnapp)