-
 

ouster_driver package from ouster repo

ouster_driver

Package Summary

Tags No category tags.
Version 0.1.7
License Apache 2
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/CPFL/ouster.git
VCS Type git
VCS Version autoware_branch
Last Updated 2019-03-28
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

OS1 ROS client

Additional Links

No additional links.

Maintainers

  • Alexander Carballo
  • Abraham Monrroy

Authors

  • ouster developers

Build Status

OS1 ROS Node

Building the ROS Node

  • Supports Ubuntu 16.04 with ROS Kinetic (for ouster_driver)
  • ROS installation instructions can be found here
  • Additionally requires ros-kinetic-pcl-ros and, optionally, ros-kinetic-rviz for visualization
  • Be sure to source the ROS setup script before building. For example:source /opt/ros/kinetic/setup.bash
  • Both packages can be built by catkin by moving them into a catkin workspace
  • Build with mkdir myworkspace && cd myworkspace && ln -s /path/to/ouster_driver ./src && catkin_make

Running the ROS Node

  • Set up the ROS environment with source /path/to/myworkspace/devel/setup.bash in a new terminal for each command below
  • For use with a running sensor:
    • To publish OS1 data as ROS topic roslaunch ouster_driver os1.launch lidar_address:=<os1_hostname> pc_address:=<udp_data_dest> where <os1_hostname> can be the hostname or IP address of the OS1 device, and <udp_data_dest> is the hostname or IP address to which the sensor should send data to (i.e., your computer’s IP address on the interface connected to the OS1)
    • To record raw sensor output, run rosbag record /os1_node/imu_packets /os1_node/lidar_packets in another terminal
    • Note: os1_node/lidar_packets and os1_node/imu_packets are the “raw data” topics, while os1_node/points is the ROS compatible XYZ topic and os1_node/imu is the ROS compatible IMU topic
    • To visualize output, run rviz -d /path/to/ouster_driver/rviz/viz.rviz in another terminal
  • For use with recorded sensor data:
    • To replay raw sensor output, run roslaunch ouster_driver os1.launch replay:=true
    • In a second terminal, run rosbag play --clock <bagfile>
    • To visualize output, run rviz -d /path/to/ouster_driver/rviz/viz.rviz in another terminal
  • Sample raw sensor output is available here

OS1 address configuration

  • By default, the OS1 uses DHCP to obtain its IP address (the <os1_hostname> parameter above). The “OS-1-64/16 High Resolution Imaging LIDAR: Software User Guide” by Ouster Inc. recommends using dnsmasq.
  • Setting IP address dynamically (default)
    • Install dnsmasq (when required), as sudo apt install dnsmasq dnsmasq-utils
    • Identify the interface name the OS1 is attached to. If this interface is not configured yet, setup its IP address and network mask. Use the NetworkManager and use “manual” in IPv4 settings, or use the ifconfig command (ex., ifconfig <INTERFACENAME> 192.168.2.1 netmask 255.255.255.0 up)
    • Modify the configuration file /etc/dnsmasq.conf, define/modify the interface= line with the interface name above. Also define the dhcp-range= value according to your interface (ex., dhcp-range=192.168.2.50,192.168.2.150,12h, in accordance to the ifconfig example above)
    • Start (stop) dnsmasq system service (sudo systemctl stop dnsmasq to stop, sudo systemctl start dnsmasq to start)
    • Identify the address assigned to the OS1 using journalctl -fu dnsmasq. Example:
   Oct 23 09:45:56 <HOSTNAME> dnsmasq-dhcp[30010]: DHCPREQUEST(<INTERFACENAME>) 192.168.2.*** bc:0f:**:**:**:**
   Oct 23 09:45:56 <HOSTNAME> dnsmasq-dhcp[30010]: DHCPACK(<INTERFACENAME>) 192.168.2.*** bc:0f:**:**:**:** os1-XXXXXXXXXXXX

where <HOSTNAME> is your computer’s assigned hostname, <INTERFACENAME> is the interface configured above, 192.168.2.*** is the IP address assigned to the sensor, bc:0f:**:**:**:** is the OS1 MAC address and os1-XXXXXXXXXXXX is the sensor’s hostname (XXXXXXXXXXXX is replaced by the sensor’s serial number). Note: instead of “*” an actual number will be shown.

  • You can set <os1_hostname> as either the assigned IP address (ex., 192.168.2.***) or the sensor’s hostname (ex., os1-XXXXXXXXXXXX).

OS1 mode configuration

  • Setting the LiDAR horizontal resolution and scan rate
    • Please identify the current sensor IP address or hostname using the steps above
    • The supported values for lidar_mode are: 512x10, 1024x10, 2048x10, 512x20, 1024x20. The first value is horizontal resolution and the second is scan rate.
    • Connect to the sensor and reconfigure the lidar_mode parameter, storing the modification internally so to use it at next boot. You can skip the write_config_txt command to use default value at next boot. os1-XXXXXXXXXXXX is the sensor’s hostname (XXXXXXXXXXXX is replaced by the sensor’s serial number).
  nc os1-XXXXXXXXXXXX 7501
  get_config_param active lidar_mode
  set_config_param lidar_mode 2048x10
  write_config_txt
  reinitialize

##Todo

  • Velodyne compatibility mode.
  • Configure active sensor parameters from driver code, in particular lidar_mode.
  • Fix replay option currently not working.
  • Verify the sensor operation information and attempt software reset on error condition, and current parameter values to avoid unnecessary rewrites/reinitialization.
CHANGELOG

Changelog for package ouster

0.1.7 (2019-03-28)

  • Sensor model and firmware version validation
  • Added sensor model and firmware version validation. The driver currently only works for OS-1-64 and on firmware version 1.10 some configuration parameters disappeared.
  • Parameter validation and new pointcloud types
  • Added parameter validation to avoid reinitializing the LiDAR. Added new pointcloud types XYZIRF and XYZIRFN. Changed pulse_mode parameter from integer to string for readability. Updated the readme file.
  • Contributors: Alexander Carballo, alexandrx

0.1.6 (2019-03-13)

  • Renamed ouster_ros to ouster_driver

0.1.5 (2019-03-13)

  • updated package.xml

0.1.4 (2019-03-13)

  • Updated project name to follow ros standards

0.1.3 (2019-03-06)

  • Updated LICENSE

0.1.2 (2019-03-06)

  • Changed operation mode from integer to string to ease reading.
  • New pointcloud mode format added
  • Improved parameter documentation
  • removed the old bool pointcloud_mode_xyzir parameter (to match Velodyne's mode) and replaced with a way to specify the desired pointcloud format, several options added including Ouster's native pointcloud format.
  • Added install commands
  • run CI on kinetic and melodic only
  • Fixed launch file to deal with hidden parameters, fixed readme.md to update the TODO, fixed os1_node.cpp to reduce by half the scan duration variable in case of 20Hz operation.
  • Updated the driver to support advanced parameter configuration (lidar-mode, pulse-mode and window-rejection-enable)
  • Eliminated the ouster-ros static library
  • Updated readme.md incorrect info for lidar address configuration.
  • Switched to industrial-ci
  • First commit for Autoware version branch. Modified the original Ouster ROS code to suit Autoware needs. Code structure is more simple, only ROS driver code is kept, and the readme.md file has more details on how to configure the sensor and use this driver. To further ease Autoware integration, Velodyne compatibility options were added and tested with nd-_matching, ray-ground-filter and euclidean-cluster nodes.
  • Improve positional argument parsing in viz
  • Use allocate-shared for Eigen compatibility
  • Support building visualizer with newer VTK
  • Readme tweaks and new example data
  • Update readme.md
  • updated the readme to include viz in the contents
  • Initial commit of the example visualizer
  • Uses VTK6 to display point clouds and range/intensity/noise images
  • No dependencies other than VTK6, Eigen3, and a C++11 compiler
  • Currently only supports linux; tested on multiple distributions and platforms
  • Use correct units in sensor-msgs::Imu
  • Deal with time going backwards in replays
  • Contributors: Alexander Carballo, Dima Garbuzov, Roy Rinberg, alexandrx, amc-nu, hooic, rafficm, rrinberg

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/os1.launch
    • -*- mode: XML -*-
      • lidar_address [default: 192.168.0.100] — hostname or IP address in dotted decimal form of the Ouster sensor
      • pc_address [default: 192.168.0.1] — hostname or IP address of the computer (PC) where the sensor will send data packets
      • lidar_port [default: 7502] — port to which the sensor should send lidar data
      • imu_port [default: 7503] — port to which the sensor should send imu data
      • replay [default: false] — when true, the node will listen on ~/lidar_packets and ~/imu_packets for data instead of attempting to connect to a sensor
      • scan_dur_ns [default: 100000000] — nanoseconds to batch lidar packets before publishing a cloud
      • pointcloud_mode [default: XYZIR] — Point cloud mode, supported modes: NATIVE, XYZ, XYZI, XYZIR, XYZIF, XYZIRF, XYZIFN, XYZIRFN (I=intensity, R=ring (in ascending order), F=reflectivity, N=ambient noise). NATIVE is XYZIRFt where t=point timestamp and ring follows Ouster's original descending order.
      • lidar_frame_name [default: velodyne] — Frame name for lidar output message
      • lidar_topic_name [default: /points_raw] — Topic name for lidar output message
      • imu_frame_name [default: imu] — Frame name for IMU output message
      • imu_topic_name [default: /imu_raw] — Topic name for IMU output message
      • operation_mode [default: 1024x10] — Supported operation modes: 512x10, 1024x10, 2048x10, 512x20, 1024x20 (horizontal resolution x scan rate)
      • pulse_mode [default: STANDARD] — Laser pulse width, available modes: STANDARD and NARROW
      • window_rejection [default: true] — Window (short range) rejection enable

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ouster_driver at Robotics Stack Exchange

ouster_driver package from ouster repo

ouster_driver

Package Summary

Tags No category tags.
Version 0.1.7
License Apache 2
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/CPFL/ouster.git
VCS Type git
VCS Version autoware_branch
Last Updated 2019-03-28
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

OS1 ROS client

Additional Links

No additional links.

Maintainers

  • Alexander Carballo
  • Abraham Monrroy

Authors

  • ouster developers

Build Status

OS1 ROS Node

Building the ROS Node

  • Supports Ubuntu 16.04 with ROS Kinetic (for ouster_driver)
  • ROS installation instructions can be found here
  • Additionally requires ros-kinetic-pcl-ros and, optionally, ros-kinetic-rviz for visualization
  • Be sure to source the ROS setup script before building. For example:source /opt/ros/kinetic/setup.bash
  • Both packages can be built by catkin by moving them into a catkin workspace
  • Build with mkdir myworkspace && cd myworkspace && ln -s /path/to/ouster_driver ./src && catkin_make

Running the ROS Node

  • Set up the ROS environment with source /path/to/myworkspace/devel/setup.bash in a new terminal for each command below
  • For use with a running sensor:
    • To publish OS1 data as ROS topic roslaunch ouster_driver os1.launch lidar_address:=<os1_hostname> pc_address:=<udp_data_dest> where <os1_hostname> can be the hostname or IP address of the OS1 device, and <udp_data_dest> is the hostname or IP address to which the sensor should send data to (i.e., your computer’s IP address on the interface connected to the OS1)
    • To record raw sensor output, run rosbag record /os1_node/imu_packets /os1_node/lidar_packets in another terminal
    • Note: os1_node/lidar_packets and os1_node/imu_packets are the “raw data” topics, while os1_node/points is the ROS compatible XYZ topic and os1_node/imu is the ROS compatible IMU topic
    • To visualize output, run rviz -d /path/to/ouster_driver/rviz/viz.rviz in another terminal
  • For use with recorded sensor data:
    • To replay raw sensor output, run roslaunch ouster_driver os1.launch replay:=true
    • In a second terminal, run rosbag play --clock <bagfile>
    • To visualize output, run rviz -d /path/to/ouster_driver/rviz/viz.rviz in another terminal
  • Sample raw sensor output is available here

OS1 address configuration

  • By default, the OS1 uses DHCP to obtain its IP address (the <os1_hostname> parameter above). The “OS-1-64/16 High Resolution Imaging LIDAR: Software User Guide” by Ouster Inc. recommends using dnsmasq.
  • Setting IP address dynamically (default)
    • Install dnsmasq (when required), as sudo apt install dnsmasq dnsmasq-utils
    • Identify the interface name the OS1 is attached to. If this interface is not configured yet, setup its IP address and network mask. Use the NetworkManager and use “manual” in IPv4 settings, or use the ifconfig command (ex., ifconfig <INTERFACENAME> 192.168.2.1 netmask 255.255.255.0 up)
    • Modify the configuration file /etc/dnsmasq.conf, define/modify the interface= line with the interface name above. Also define the dhcp-range= value according to your interface (ex., dhcp-range=192.168.2.50,192.168.2.150,12h, in accordance to the ifconfig example above)
    • Start (stop) dnsmasq system service (sudo systemctl stop dnsmasq to stop, sudo systemctl start dnsmasq to start)
    • Identify the address assigned to the OS1 using journalctl -fu dnsmasq. Example:
   Oct 23 09:45:56 <HOSTNAME> dnsmasq-dhcp[30010]: DHCPREQUEST(<INTERFACENAME>) 192.168.2.*** bc:0f:**:**:**:**
   Oct 23 09:45:56 <HOSTNAME> dnsmasq-dhcp[30010]: DHCPACK(<INTERFACENAME>) 192.168.2.*** bc:0f:**:**:**:** os1-XXXXXXXXXXXX

where <HOSTNAME> is your computer’s assigned hostname, <INTERFACENAME> is the interface configured above, 192.168.2.*** is the IP address assigned to the sensor, bc:0f:**:**:**:** is the OS1 MAC address and os1-XXXXXXXXXXXX is the sensor’s hostname (XXXXXXXXXXXX is replaced by the sensor’s serial number). Note: instead of “*” an actual number will be shown.

  • You can set <os1_hostname> as either the assigned IP address (ex., 192.168.2.***) or the sensor’s hostname (ex., os1-XXXXXXXXXXXX).

OS1 mode configuration

  • Setting the LiDAR horizontal resolution and scan rate
    • Please identify the current sensor IP address or hostname using the steps above
    • The supported values for lidar_mode are: 512x10, 1024x10, 2048x10, 512x20, 1024x20. The first value is horizontal resolution and the second is scan rate.
    • Connect to the sensor and reconfigure the lidar_mode parameter, storing the modification internally so to use it at next boot. You can skip the write_config_txt command to use default value at next boot. os1-XXXXXXXXXXXX is the sensor’s hostname (XXXXXXXXXXXX is replaced by the sensor’s serial number).
  nc os1-XXXXXXXXXXXX 7501
  get_config_param active lidar_mode
  set_config_param lidar_mode 2048x10
  write_config_txt
  reinitialize

##Todo

  • Velodyne compatibility mode.
  • Configure active sensor parameters from driver code, in particular lidar_mode.
  • Fix replay option currently not working.
  • Verify the sensor operation information and attempt software reset on error condition, and current parameter values to avoid unnecessary rewrites/reinitialization.
CHANGELOG

Changelog for package ouster

0.1.7 (2019-03-28)

  • Sensor model and firmware version validation
  • Added sensor model and firmware version validation. The driver currently only works for OS-1-64 and on firmware version 1.10 some configuration parameters disappeared.
  • Parameter validation and new pointcloud types
  • Added parameter validation to avoid reinitializing the LiDAR. Added new pointcloud types XYZIRF and XYZIRFN. Changed pulse_mode parameter from integer to string for readability. Updated the readme file.
  • Contributors: Alexander Carballo, alexandrx

0.1.6 (2019-03-13)

  • Renamed ouster_ros to ouster_driver

0.1.5 (2019-03-13)

  • updated package.xml

0.1.4 (2019-03-13)

  • Updated project name to follow ros standards

0.1.3 (2019-03-06)

  • Updated LICENSE

0.1.2 (2019-03-06)

  • Changed operation mode from integer to string to ease reading.
  • New pointcloud mode format added
  • Improved parameter documentation
  • removed the old bool pointcloud_mode_xyzir parameter (to match Velodyne's mode) and replaced with a way to specify the desired pointcloud format, several options added including Ouster's native pointcloud format.
  • Added install commands
  • run CI on kinetic and melodic only
  • Fixed launch file to deal with hidden parameters, fixed readme.md to update the TODO, fixed os1_node.cpp to reduce by half the scan duration variable in case of 20Hz operation.
  • Updated the driver to support advanced parameter configuration (lidar-mode, pulse-mode and window-rejection-enable)
  • Eliminated the ouster-ros static library
  • Updated readme.md incorrect info for lidar address configuration.
  • Switched to industrial-ci
  • First commit for Autoware version branch. Modified the original Ouster ROS code to suit Autoware needs. Code structure is more simple, only ROS driver code is kept, and the readme.md file has more details on how to configure the sensor and use this driver. To further ease Autoware integration, Velodyne compatibility options were added and tested with nd-_matching, ray-ground-filter and euclidean-cluster nodes.
  • Improve positional argument parsing in viz
  • Use allocate-shared for Eigen compatibility
  • Support building visualizer with newer VTK
  • Readme tweaks and new example data
  • Update readme.md
  • updated the readme to include viz in the contents
  • Initial commit of the example visualizer
  • Uses VTK6 to display point clouds and range/intensity/noise images
  • No dependencies other than VTK6, Eigen3, and a C++11 compiler
  • Currently only supports linux; tested on multiple distributions and platforms
  • Use correct units in sensor-msgs::Imu
  • Deal with time going backwards in replays
  • Contributors: Alexander Carballo, Dima Garbuzov, Roy Rinberg, alexandrx, amc-nu, hooic, rafficm, rrinberg

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

  • launch/os1.launch
    • -*- mode: XML -*-
      • lidar_address [default: 192.168.0.100] — hostname or IP address in dotted decimal form of the Ouster sensor
      • pc_address [default: 192.168.0.1] — hostname or IP address of the computer (PC) where the sensor will send data packets
      • lidar_port [default: 7502] — port to which the sensor should send lidar data
      • imu_port [default: 7503] — port to which the sensor should send imu data
      • replay [default: false] — when true, the node will listen on ~/lidar_packets and ~/imu_packets for data instead of attempting to connect to a sensor
      • scan_dur_ns [default: 100000000] — nanoseconds to batch lidar packets before publishing a cloud
      • pointcloud_mode [default: XYZIR] — Point cloud mode, supported modes: NATIVE, XYZ, XYZI, XYZIR, XYZIF, XYZIRF, XYZIFN, XYZIRFN (I=intensity, R=ring (in ascending order), F=reflectivity, N=ambient noise). NATIVE is XYZIRFt where t=point timestamp and ring follows Ouster's original descending order.
      • lidar_frame_name [default: velodyne] — Frame name for lidar output message
      • lidar_topic_name [default: /points_raw] — Topic name for lidar output message
      • imu_frame_name [default: imu] — Frame name for IMU output message
      • imu_topic_name [default: /imu_raw] — Topic name for IMU output message
      • operation_mode [default: 1024x10] — Supported operation modes: 512x10, 1024x10, 2048x10, 512x20, 1024x20 (horizontal resolution x scan rate)
      • pulse_mode [default: STANDARD] — Laser pulse width, available modes: STANDARD and NARROW
      • window_rejection [default: true] — Window (short range) rejection enable

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ouster_driver at Robotics Stack Exchange