/nmea-depth

ROS node to translate NMEA depth sentences into ROS topics

Primary LanguagePython

NMEA depth to ROS (nmea_depth package)

ROS package to parse NMEA GPS and Depth sentences, obtained from a Lowrance SL2 side-scanner, into ROS topics. The package currently contains one node, which receives the NMEA sentences via UDP. As there are no standard messages for NMEA depth sentences, two new message types are defined:

Partly based on code from this ROS node.

Dependencies

Installation

  • Install or resolve dependencies (see above)
  • Clone this repository to your catkin workspace src directory (e.g., $HOME/catkin_ws/src)
  • From your catkin workspace root directory (e.g., $HOME/catkin_ws), run the catkin_ws command

Usage

You can run the UDP node by running a roscore, and then using the rosrun command:

roscore &
rosrun nmea_depth nmea_depth_udp.py

Alternatively, a ROS launch file is provided, where the default parameters (see below) are set as:

  • Frame ID: lowrance
  • IP Address: None (UDP multicast)
  • UDP Port: 12021

Published Topics

All topics are published relative the device's namespace, referred here by the frame_id parameter. For example, if running the lowrance launch file, the frame_id will be lowrance, and thus the NMEA sentence topic will be /lowrance/nmea_sentence.

Parameters

  • ~udp/address (string, default: None)

UDP address for source of NMEA sentences. Default is none, as the UDP socket should accept messages from all IP addresses (multicast).

  • ~udp/port (int, default: 12021)

UDP port for source of NMEA sentences. Default is a random palindrome number, you must change this parameter to reflect the inbound UDP connection with your device. You can do this either by modifying the ROS launch file or by specifying this parameter when using rosrun:

rosrun nmea_depth nmea_depth_udp.py _port:=<your_UDP_port>
  • ~frame_id (string, default: None)

Name or ID of device which produces the NMEA sentences (e.g., lowrance).

Contributors