boatd / boatd

Robotic sailing boat daemon
http://boatd.readthedocs.io
GNU Lesser General Public License v3.0
26 stars 17 forks source link

Send NMEA for OpenCPN instead of Mavlink #147

Open colinsauze opened 5 years ago

colinsauze commented 5 years ago

APMPlanner2 is of limited use for boat control, it can't show wind or rudder/sail states graphically and doesn't have nautical charts. Write a plugin for sending NMEA to OpenCPN over a serial/xbee link instead. The existing boatd-opencpn script does all of this apart from serial output, but should it be merged into the main project as a plugin?

kragniz commented 5 years ago

yeah, I think this would be a good idea. The main question is whether to send raw NMEA strings over the xbee, or doing some form of compression + error checking

naturesyouth commented 5 years ago

NMEA + CRC should be fine, its not particularly high data-rate. Only things to check are seeing if we can also send waypoints or direct commands over NMEA, i can dig out my copy of the spec and have a look for that sort of message.

kragniz commented 5 years ago

There's WPL, but opencpn doesn't support that as an input

Used to send routes and waypoints up to a GPS receiver. OpenCPN does not process these sentences as input.

OSD looks like a good sentence to send

Own Ship Data Heading, degrees true Status, A = Data Valid Vessel Course, degrees True Course Reference Vessel Speed Speed Reference Vessel Set, degrees True Vessel drift (speed) Speed Units

https://www.opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:opencpn_user_manual:advanced_features:nmea_sentences

naturesyouth commented 5 years ago

can we get OpenCPN to send wpl? and osd looks very good

kragniz commented 5 years ago

opencpn has features for sending waypoints to autopilots over nmea, which can probably be used for planning waypoints at least https://opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:opencpn_user_manual:options_setting:connections#sending_an_active_route_to_an_autopilot

kragniz commented 5 years ago

related https://github.com/boatd/boatd-opencpn/issues/2

colinsauze commented 5 years ago

I've had boatd-opencpn sending WPL strings to opencpn ok, think I still need to pull request that code. There is support in opencpn to send a waypoint to a GPS but it looks a bit buggy and doesn't work through the standard opencpn connections. Maybe we could look at trying to fix opencpn a bit too.