ouster_driver package from ouster repoouster_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
Additional Links
Maintainers
- Alexander Carballo
- Abraham Monrroy
Authors
- ouster developers
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
andos1_node/imu_packets
are the “raw data” topics, whileos1_node/points
is the ROS compatible XYZ topic andos1_node/imu
is the ROS compatible IMU topic - To visualize output, run
rviz -d /path/to/ouster_driver/rviz/viz.rviz
in another terminal
- To publish OS1 data as ROS topic
- 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
- To replay raw sensor output, run
- 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 usingdnsmasq
. - Setting IP address dynamically (default)
- Install
dnsmasq
(when required), assudo 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 theinterface=
line with the interface name above. Also define thedhcp-range=
value according to your interface (ex.,dhcp-range=192.168.2.50,192.168.2.150,12h
, in accordance to theifconfig
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:
- Install
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 thewrite_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 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
Package Dependencies
Deps | Name |
---|---|
roscpp | |
message_generation | |
std_msgs | |
sensor_msgs | |
pcl_ros | |
pcl_conversions | |
catkin | |
message_runtime |
System Dependencies
Dependant Packages
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
Messages
Services
Plugins
Recent questions tagged ouster_driver at Robotics Stack Exchange
ouster_driver package from ouster repoouster_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
Additional Links
Maintainers
- Alexander Carballo
- Abraham Monrroy
Authors
- ouster developers
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
andos1_node/imu_packets
are the “raw data” topics, whileos1_node/points
is the ROS compatible XYZ topic andos1_node/imu
is the ROS compatible IMU topic - To visualize output, run
rviz -d /path/to/ouster_driver/rviz/viz.rviz
in another terminal
- To publish OS1 data as ROS topic
- 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
- To replay raw sensor output, run
- 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 usingdnsmasq
. - Setting IP address dynamically (default)
- Install
dnsmasq
(when required), assudo 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 theinterface=
line with the interface name above. Also define thedhcp-range=
value according to your interface (ex.,dhcp-range=192.168.2.50,192.168.2.150,12h
, in accordance to theifconfig
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:
- Install
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 thewrite_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 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
Package Dependencies
Deps | Name |
---|---|
roscpp | |
message_generation | |
std_msgs | |
sensor_msgs | |
pcl_ros | |
pcl_conversions | |
catkin | |
message_runtime |
System Dependencies
Dependant Packages
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