Adding Geo Tracking in ROS 2

The overall outdoor performance of the Positional Tracking module can be improved by using Georeferential information from a GNSS sensor.

The ZED ROS 2 Wrapper is compatible with each type of GNSS sensor provided with a ROS 2 driver that publishes Latitude and Longitude datum with a message of type sensor_msgs::msg::NavSatFix on the topic defined by the parameter gnss_fusion.gnss_fix_topic (by default /gps/fix).

Enable GNSS Fusion #

GNSS Fusion can be started automatically when the ZED Wrapper node starts by setting the parameter gnss_fusion.gnss_fusion_enabled to true in the file common.yaml.

When the Geo Tracking module is active, the ZED ROS 2 Wrapper nodes wait for the first valid GNSS Datum on the subscribed topic before starting the processing:

[INFO] [1681308875.997297634] [zed2i.zed_node]: *** Positional Tracking with GNSS fusion ***
[INFO] [1681308875.997340244] [zed2i.zed_node]:  * Waiting for the first valid GNSS fix...

GNSS Fusion results #

When the Geo Tracking module is enabled the GNSS datum is automatically fused with the Positional Tracking information to provide a precise camera pose in map frame on the topics ~/pose. The messages on the topic ~/pose/filtered contain the GNSS fused odometry information to be used with external Kalman Filters.

The ZED ROS 2 Wrapper publishes also the pose of the robot in Earth coordinates on the topic ~/geo_pose/ of type geographic_msgs::msg::GeoPoseStamped.