This project aims to create a link between OpenCPN and ROS throughout a serial port and NMEA standard.
From OpenCPN point-of-view, ROS is are two gps ports:
/dev/ttyVUSB0
- where OpenCPN should publish the waypoints to ROS;/dev/ttyVUSB3
- where OpenCPN receive receive ROS pose and orientation.
Install all deps:
sudo apt-get install ros-kinetic-nmea-navsat-driver ros-kinetic-nav-msgs socat python-pyproj python-numpy
sudo ./script/create_ports.bash
- Configure the ports at OpenCPN:
- Launch the ROS interface:
roslaunch opencpn2ros opencpn_interface.launch
Read the waypoints sent by OpenCPN and publish to ROS as a nav_msgs/Path.
nmea_msgs/Sentence
- nmea_sentence: NMEA Message to be analysed.
nav_msgs/Path
- new_waypoints_mission: Path to be followed by the robot.
Reads the robot pose and publish into OpenCPN.
geometry_msgs/PoseStamped
- pose: Robot's current pose.
nmea_msgs/Sentence
- nmea_sentence: NMEA Message to be sent to OpenCPN.
Reads the robot heading and publish into OpenCPN.
std_msgs/Float64
- pose: Robot's current heading.
nmea_msgs/Sentence
- nmea_sentence: NMEA Message to be sent to OpenCPN.
Reads the robot distance from the seabed and publish into OpenCPN.
std_msgs/Float64
- pose: Robot's current distance from the seabed.
nmea_msgs/Sentence
- nmea_sentence: NMEA Message to be sent to OpenCPN.
Reads serial port /dev/ttyVUSB0
for incoming messages.
nmea_msgs/Sentence
- nmea_sentence: NMEA Message to be analysed.
Writes into serial port /dev/ttyVUSB3
all outgoing messages.
nmea_msgs/Sentence
- nmea_sentence: NMEA Message to be sent to OpenCPN.