Communication settings mosaic-H and rover.yaml
fjahncke opened this issue · 9 comments
I'm trying to integrate a mosaic-H GNSS board into ROS.
I'm currently connected to the Micro-USB port on the board and can ping the board via 192.168.3.1.
I therefore tried setting an IP server with TCP to this adress but the only mode working is UDP.
I set the NMEA Output accordingly to UDP server on port 1.
This is my rover.yaml:
Configuration Settings for the Rover Rx
GNSS/INS Parameters
device: tcp://192.168.3.1:1
serial:
baudrate: 921600
rx_serial_port: /dev/ttyAMC0
hw_flow_control: off
login:
user: ""
password: ""
frame_id: gnss
imu_frame_id: imu
poi_frame_id: base_link
vsm_frame_id: vsm
aux1_frame_id: aux1
vehicle_frame_id: base_link
local_frame_id: odom
insert_local_frame: false
get_spatial_config_from_tf: false
lock_utm_zone: true
use_ros_axis_orientation: true
receiver_type: gnss
multi_antenna: true
datum: Default
poi_to_arp:
delta_e: 0.0
delta_n: 0.0
delta_u: 0.0
att_offset:
heading: 0.0
pitch: 0.0
ant_type: "Unknown"
ant_serial_nr: "Unknown"
ant_aux1_type: "Unknown"
ant_aux1_serial_nr: "Unknown"
leap_seconds: 18
polling_period:
pvt: 500
rest: 500
use_gnss_time: true
publish:
For both GNSS and INS Rxs
navsatfix: true
gpsfix: true
gpgga: true
gprmc: true
gpst: true
measepoch: true
pvtcartesian: true
pvtgeodetic: true
basevectorcart: true
basevectorgeod: true
poscovcartesian: true
poscovgeodetic: true
velcovgeodetic: true
atteuler: true
attcoveuler: true
pose: true
twist: true
diagnostics: true
For GNSS Rx only
gpgsa: true
gpgsv: true
For INS Rx only
insnavcart: false
insnavgeod: false
extsensormeas: false
imusetup: false
velsensorsetup: false
exteventinsnavcart: false
exteventinsnavgeod: false
imu: false
localization: false
tf: false
activate_debug_log: false
These are my last lines when is launch the driver:
setting /run_id to 1d03b03a-9b6a-11ed-a616-1d15bd112421
process[rosout-1]: started with pid [25574]
started core service [/rosout]
process[tf_imu-2]: started with pid [25582]
process[tf_gnss-3]: started with pid [25583]
process[tf_vsm-4]: started with pid [25584]
process[tf_aux1-5]: started with pid [25585]
process[septentrio_gnss-6]: started with pid [25587]
[ INFO] [1674511557.834914788]: /septentrio_gnss: Connecting to tcp://192.168.3.1:1...
[ INFO] [1674511557.836492184]: /septentrio_gnss: Connected to 192.168.3.1:1.
[ INFO] [1674511557.911378294]: /septentrio_gnss: The connection descriptor for the TCP connection is IPS5
Then nothing happens and rostopic list just gives me a published /tf and /tf_static topic. What did I do wrong?
Thank you for the help
Hi @fjahncke,
have you tried with the factory default port 28784
in ROSaic? The driver is supposed to work with the dynamic TCP ports IP11...17. This works out-of-the-box without the need to set up any ports.
It should also work with an IP server if it is configured as TCP2way
like you did. If you want to go that route I would try with another port because 1
is assigned. I just tested it successfully setting the IP server port to 28785
in my setup, although this was in a development branch.
Or maybe the problem is that you assigned two IP Servers to TCP port 1
and one of them is send only?
Thank you for the help. I noticed that a colleague had changed the Port to 30000 and I was not able to connect with it therefore. Running the driver I can connect to the board now. Sadly the code is throwing some error messages:
[ INFO] [1674771645.096235558]: /septentrio_gnss: Connecting to tcp://192.168.3.1:30000... [ INFO] [1674771645.098019422]: /septentrio_gnss: Connected to 192.168.3.1:30000. [ INFO] [1674771645.111745003]: /septentrio_gnss: The connection descriptor for the TCP connection is IP10 [ERROR] [1674771645.688451825]: /septentrio_gnss: gnss [ERROR] [1674771645.688719402]: /septentrio_gnss: gnss [ERROR] [1674771645.751352459]: /septentrio_gnss: gnss [ERROR] [1674771645.751539107]: /septentrio_gnss: gnss
Also I updated the firmware to the latest 4.12.1
I assume the ERROR is this line. It is a leftover and should not be an error, on the contrary it means the firmware is on par with the driver's features :-). Thus, it can be ignored, sorry for the confusion. It is already fixed in the development branch.
If the ERROR log is from this line, it also means the driver should be getting data from the receiver. Do you get data in ROS now?
No sadly when I print rostopic list it doesn’t publish Any topics except for /tf
The connection descriptor IP10
indicates that one of the dynamic TCP/IP ports is used. Have you still configured any IP Server on the same port?
I set up everything from the start again, checked that no ports where set and changed to the gnss.yaml file and now everything works. Thank you for your help!
I am glad it is working now. Thank you for your feedback.