Skip to content

Getting Started in ROS

Sammy Omari edited this page Jan 17, 2015 · 5 revisions

You can either create a standalone executable for accessing the VI-Sensor or you can stream the VI-Sensor output to ROS (Robotic Operating System) using the corresponding ROS-frontend. For the standalone interface, refer to this section.

You can download the low-level driver from this Github repo into your catkin workspace (for information on how to set up your catkin workspace, please refer to this tutorial). Equivantly, download the ROS front end from here:

#making sure you have all the necessary dependencies
sudo apt-get install libeigen3-dev libboost-dev libopencv-dev
#change directory into catkin folder
cd ~/<CATKIN_WS>/src
#checkout low-level driver
git clone https://github.com/ethz-asl/libvisensor.git
#checkout ROS frontend
git clone https://github.com/ethz-asl/visensor_node.git
# build visensor low-level driver and ROS frontend
cd ..
catkin_make

Start a roscore in a separate terminal:

roscore

Assuming that the sensor is powered and connected, you can run the driver as

rosrun visensor_node visensor_node

If there is an error (most likely failed autodiscovery), please refer to the FAQ.

If the ROS frontend started properly, you can check the image stream using

rosrun image_view image_view image:=/cam0/image_raw
rosrun image_view image_view image:=/cam1/image_raw

The IMU stream is at the topic /imu0

rostopic echo /imu0

We also provide a launch file for the standard ROS stereo pipeline. You can launch the ROS block-matcher using

roslaunch visensor_node dense.launch

If the disparity output is very noisy, please refer to the FAQ.

The VI-sensor comes preconfigured with standard settings, such as automatic gain and exposure control for example. If you want to change these parameters, you can do this using rqt_configure. This tool allows the fine-grained control of the imaging sensors (e.g. gain-, exposure settings etc.) and the IMU.

There is a time-synchronization scheme that estimates the clock offset and skew of the VI-Sensor time to the host PC time. The message timestamps are based on the VI-Sensor time which are transformed into host PC time using the corresponding clock offset and skew. As a consequence, communication delay between the host PC and the VI-Sensor does not affect the message timestamps.

Clone this wiki locally