Skip to content

fgrigis/ouster_LMS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OS1 Example Client and ROS Node

Fork for the Landscape Mapping Sensor project. Initial commit will be a 'quick fix' of the order in which the point cloud messages are filled, such that it matches the order of 'x' 'y' 'z' 'intensity' that google cartographer uses to work with. Furthermore the timpe stamp of the header messages is done with ros::Time::now(). This is is done to fix a timstamping issue and will later on be changed to time stamping with PTP_1588 --> merge with this repo here: https://github.com/ethz-asl/ouster_lidar.git

Contents

  • ouster_client/ contains a simple C++ client for the OS1 sensor
  • ouster_ros/ contains an example ROS node for publishing point cloud messages
  • ouster_viz/ contains a visualizer for an OS1 sensor

Building the Sample Client

  • The sample client requires a compiler supporting C++11 or newer and CMake
  • Build with cd /path/to/ouster_example/ouster_client && mkdir build && cd build && cmake .. && make

Running the Sample Client

  • The sample client includes a small driver program that just prints some data to the terminal
  • Make sure the OS1 is connected to the network and has obtained a dhcp lease. See accompanying documentation for more details
  • You should see a binary called ouster_client_example in your build directory on success
  • Run ouster_client_example <os1_hostname> <udp_data_dest> where <os1_hostname> is the hostname or IP address of the OS1 sensor, and <udp_data_dest> is the IP to which the sensor should send lidar data

Building the visualizer

  • The visualizer is not built using ROS
  • Build with cd /path/to/ouster_example/ouster_viz && mkdir build && cd build && cmake .. && make

Running the visualizer (does not require ROS)

  • The example visualiser can be used to display point clouds and range/intensity/noise images for the OS1 sensor
  • You should see a binary called "viz" in your build directory on success
  • Run ./viz <os1_hostname> <udp_data_dest>, passing the same arguments as for ouster_client_example

Building the Sample ROS Node

  • Supports Ubuntu 16.04 with ROS Kinetic (for ouster_ros)
  • 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_example ./src && catkin_make

Running the Sample 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_ros os1.launch os1_hostname:=<os1_hostname> os1_udp_dest:=<udp_data_dest> where <os1_hostname> can be the hostname or IP of the OS1 device and <udp_data_dest> is the IP to which the sensor should send data
    • 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_ros/viz.rviz in another terminal
  • For use with recorded sensor data:
    • To replay raw sensor output, run roslaunch ouster_ros os1.launch replay:=true
    • In a second terminal, run rosbag play --clock <bagfile>
    • To visualize output, run rviz -d /path/to/ouster_ros/viz.rviz in another terminal
  • Sample raw sensor output is available here

About

Ouster sample code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Objective-C 52.7%
  • C++ 45.5%
  • CMake 1.8%