ros-drivers / novatel_span_driver

Work in progress driver for NovAtel SPAN devices. See: http://wiki.ros.org/novatel_span_driver
41 stars 48 forks source link

OEM6 to OEM7 changes (covarinance is zero #39

Open littleprojects opened 5 years ago

littleprojects commented 5 years ago

The new Novatel software OEM7 dont support the command: INSCOVS

See changlog: https://docs.novatel.com/OEM7/Content/Integration_Guide_OEM6_OEM7/Logs_OEM6_to_OEM7.htm?TocPath=New%20for%20OEM7%7COEM6%20to%20OEM7%20Integration%7C_____2

The command: INSCOVS is replaced by INSSTDEVS

The novatel_span_driver reports a error with the new OEM7: Invaled Message... And no coraviation data will send to ROS... the covariance data stay at 0.0

Is it possible to send both command and add a parse for the INSSTDEVS data. So the novatel_span_driver support OEM6 and the new OEM7 firmware.

littleprojects commented 5 years ago

Info about the respsonse from the new command: https://docs.novatel.com/OEM7/Content/SPAN_Logs/INSSTDEVS.htm

There is no binary output for this command. Only ascii.

Here is a parser example:

input_sentence = b'%INSSTDEVSA,1907,233990.000;0.4372,0.3139,0.7547,0.0015,0.0015,0.0014,3.7503,3.7534,5.1857,26000005,0,0,01ffd1bf,0*2c967ced'

insstdevsa_sentence = input_sentence.decode('ascii', 'ignore')

(self.format, self.latitude_o, self.longitude_o, self.altitude_o, self.north_vel, self.east_vel, self.up_vel, self.roll_o, self.pitch_o, self.azimuth. self.ext_sol_stat, self.data_age, x, x, x, xxxx) = inscovs_sentance.split(",")
JWhitleyWork commented 5 years ago

@littleprojects - Would you mind submitting a Pull Request which contains the functionality to pass a "Receiver Model" parameter with valid values being OEM6 and OEM7 as well as parsing this message if OEM7 is chosen? There are other differences as well, especially on the command side.