Software and ROS


After connecting with the Vision Navigator through Wi-Fi or Ethernet cable, you can simply open your browser and enter the IP address of the Vision Navigator unit. There you will see a graphical user interface which allows you to configure the device and to visualize/log its data. See Sensor Configuration for more details.

 

ROS

Alternatively, the Vision Navigator is fully compatible with the ROS1/2 driver and C++ libraries available here. These drivers and libraries are maintained by our development partner Fixposition, supporting both the Vision Navigator and the VRTK2. 

 

From FW version 2.63, both ROS1 and ROS2 are supported. The ROS driver version should be compatible with its corresponding software release version.

 

The ROS driver operates as a ROS node that can listen to any TCP or UART port to get outputs from the XVN to publish them in the ROS network. All available topics correspond to messages that are listed in Output messages configuration. The user needs to enable each desired message on the same port on which the ROS driver is running.

 

The user can directly stream the wheelspeed information into the XVN using TCP/UART/CANSTR as described in Measurement sensor configuration. It is also possible to fill in the XYZ velocity information into a ROS message and then publish it inside the ROS network so that the ROS driver can subscribe to this information and convert it to FP_B-MEASUREMENTS (binary data). This binary information will be streamed into the Fusion engine to improve localization performance.
Alternatively, an extra node called Fixposition Odometry Converter is provided to help integrate the wheelspeed on your vehicle. This node is intended to be used as middleware if you already have a topic with the wheelspeed values running on your system. Currently, messages of the type Twist, TwistWithCov, and Odometry are accepted. Another use of the ROS driver is to stream RTCM correction data.

 

Supported versions

 

ROS driver tag 7.0.1 and above is only compatible with FW2.85.3 onward. For previous releases (e.g., FW2.77.2), please use tag 6.2.1.

 

Installation and usage

See this page from Fixposition for the most recent instructions on installing and using the ROS driver.

 

Installation and usage (deprecated)

This section applies to tags 7.0.7 and prior, as the ROS driver underwent significant changes since tag 8.0.0. For newer versions, please refer to Installation and usage.

Repository structure

This driver operates as a ROS node, connecting to either a TCP or serial stream of the Vision Navigator output data, see Input/Ouput Messages and the Integration Manual.

 

To install the node, extract / clone the code to your catkin workspace's src folder:

 

# The folder structure should look like this
fp_public_ws
├── src
│   ├── fixposition_driver
│   │   ├── fixposition_driver_lib
│   │   ├── fixposition_driver_ros1
│   │   ├── fixposition_odometry_converter_ros1
│   │   ├── fixposition_driver_ros2             # will be ignore by catkin
│   │   ├── fixposition_odometry_converter_ros2 # will be ignore by catkin

 

Dependencies

 

Installing dependencies on Ubuntu system

sudo apt update
sudo apt install -y build-essential cmake
sudo apt install -y libeigen3-dev
sudo apt install -y libboost-date-time-dev


# For ROS1
sudo apt install -y ros-{ROS_DISTRO}-tf ros-{ROS_DISTRO}-eigen-conversions

 

ROS1 driver

Installation

Add a file named 'CATKIN_IGNORE' to the fixposition_driver_ros2 and fixposition_odometry_converter_ros2 folders.

Source the setup.bash from the ROS1 distro repository

(/opt/ros/{ROS_DISTRO}/setup.bash). For example:

source /opt/ros/melodic/setup.bash

 

Then, build the ROS1 driver node and all its dependencies with:

catkin build fixposition_driver_ros1

 

Lastly, source the development environment:

source devel/setup.bash

 

Launch the Driver

roslaunch fixposition_driver_ros1 serial.launch
roslaunch fixposition_driver_ros1 tcp.launch

 

To change the settings of TCP (IP, Port) or Serial (Baudrate, Port) connections, check the launch/tcp.yaml and launch/serial.yaml files.

 

ROS2 driver

Installation

Add a file named 'CATKIN_IGNORE' to the fixposition_driver_ros1 and fixposition_odometry_converter_ros1 folders.

Source the setup.bash from the ROS2 distro repository (/opt/ros/{ROS_DISTRO}/setup.bash). For example:

source /opt/ros/foxy/setup.bash

 

Then, build the ROS1 driver node and all its dependencies with:

colcon build --packages-up-to fixposition_driver_ros2

 

Lastly, source the development environment:

source install/setup.bash

 

ROS2, unlike ROS1, by default uses a install directory in the workspace. So when you do ros2 launch *, the configuration and launch files are taken from the install directory instead of src.

If you want to modify the parameters in the YAML files. You can:

 

Launch the Driver

ros2 launch fixposition_driver_ros2 serial.launch
ros2 launch fixposition_driver_ros2 tcp.launch

 

To change the settings of TCP (IP, Port) or Serial (Baudrate, Port) connections, check the launch/tcp.yaml and launch/serial.yaml files.

Create your own Knowledge Base