gps component
- Ports
- Services
- get_param (attribute)
- get_last_fix (attribute)
- rtk_stats (attribute)
- set_noise (attribute)
- set_timestamp_mode (attribute)
- set_local_utc (attribute)
- set_frame (attribute)
- connect (activity)
- disconnect (activity)
- set_rtk_port (activity)
- connect_rtk (activity)
- set_reference (function)
- get_reference (attribute)
- set_rate (activity)
- set_ecutoff (activity)
- unfix (activity)
- fix (activity)
- fix_here (activity)
- send_rtcm (activity)
- cancel_rtcm (activity)
- enable_rtcm (function)
- ntp_stop (activity)
- ntp_peer (activity)
- ntp_info (activity)
- monitor_fix (activity)
- reset_rtk_stats (function)
- log (function)
- log_stop (function)
- log_info (function)
- Tasks
Ports
state (out)
Data structure
|
info (out)
Data structure
|
Services
get_param (attribute)
Outputs
|
get_last_fix (attribute)
Outputs
|
rtk_stats (attribute)
Outputs
|
Log RTK configuration and statistics.
The statistics can be reset with reset_rtk_stats (function).
set_noise (attribute)
Inputs
|
Set minimum noise on position and velocity
set_timestamp_mode (attribute)
Inputs
|
Throws
|
Configure how solution is timestamped.
The following modes are available:
clock_utc
-
This is the most accurate mode. The solution is published with the GPS UTC timestamp as computed by the device. Note that this requires that the local clock is perfectly synchronized with UTC time in order to compare this timestamp with timestamps from other components that use the local clock.
clock_utc_offset
-
This is the same as
clock_utc
except that a fixed offset is substracted from the UTC timestamp. The offset can be set with set_local_utc (attribute). clock_local_ntp
-
This is slightly less accurate than
clock_utc
. The solution is published with a timestamp relative to the local clock by estimating the current clock offset from UTC via NTP. This requires configuring a NTP server with ntp_peer (activity). Provided a good NTP server is set, offset will typically be less than a few milliseconds (this can be checked with ntp_info (activity)). This mode is useful when timestamps from other components must be compared with GPS timestamps. clock_local_coarse
-
This is not accurate and should be used only if the other modes cannot be used. The published timestamp is the reception time of the solution, according to the local clock. This will typically be offset by several tens of milliseconds as neither the solution computation time nor the transmission time are accounted for.
set_local_utc (attribute)
Inputs
|
Throws
|
Configure local clock offset with respect to UTC time.
This is used only in timestamp mode clock_utc_offset
(see
set_timestamp_mode (attribute)).
offset
is such that local clock
+ offset
= UTC time
.
set_frame (attribute)
Inputs
|
Throws
|
Configure the cartesian frame for the published solution.
This setting influences the mapping of the X
, Y
and Z
of the
local cartesian frame. The default is frame_nwu
.
frame_enu
-
East, North, Up
mapped toX, Y, Z
. frame_nwu
-
North, West, Up
mapped toX, Y, Z
. frame_ned
-
North, East, Down
mapped toX, Y, Z
.
connect (activity)
Inputs
|
Throws
|
Context
|
Connect to the hardware.
Check set_timestamp_mode (attribute) for configuring the solution timestamping mode. |
disconnect (activity)
Throws
|
Context
|
Disconnect from the hardware
set_rtk_port (activity)
Inputs
|
Throws
|
Context
|
Configure the UDP port for RTK correction streaming.
RTK data (see send_rtcm (activity)) is streamed from this source UDP port
.
Requests for RTK data from remote components (see connect_rtk (activity))
should thus be made to this port number.
connect_rtk (activity)
Inputs
|
Throws
|
Context
|
Receive RTK data from a remote gps-genom3
component.
In mobile station mode, the component can be configured to accept
RTK data from a remote gps-genom3
component configured in base
station mode.
This service asks the remote host
identified by its
name or IP number (in number-and-dots notation) and the port
number (see set_rtk_port (activity)) to start streaming any available RTK
data to this component.
If RTK data is received from an unknown host that was not explicitly connected with this service, the component will print a diagnostic message on stderr and ignore the data. |
set_reference (function)
Inputs
|
Throws
|
Set the ENU reference position.
The position published in the state (out) port is computed as ENU (east,
north, up) coordinates relative to the given global reference
in LLH coordinates (latitude, longitude, height above ellipsoid).
get_reference (attribute)
Outputs
|
Get the ENU reference position.
set_rate (activity)
Inputs
|
Throws
|
Context
|
Set solution computation rate.
Configure the hardware to compute solutions at the hz
frequency
(in Hz). get_param (attribute) returns the actual frequency.
set_ecutoff (activity)
Inputs
|
Throws
|
Context
|
Set satellites minimum elelevation.
Configure the hardware to use only satellites above this horizon (in deg). get_param (attribute) returns the current setting.
unfix (activity)
Throws
|
Context
|
Unset FIX mode.
This service makes the component stop acting as a fixed base station and puts it back in mobile receiver mode. See fix (activity) and fix_here (activity).
fix (activity)
Inputs
|
Throws
|
Context
|
Set FIX mode at given position.
After invoking this service, the component is configured in fixed base station mode. In particular, it will start providing RTCM corrections to clients requesting it (see send_rtcm (activity)).
Depending on the underlying hardware, the given llh
position must
be accurate enough so that the receiver can actually switch to base
station mode. The required accurarcy must typically be better than
10 meters. The precision given in sigma
should reflect the
estimated precision of the llh
position, although this precision
is not used by the hardware.
The fix
member of the info (out) port will switch to fix_fixed
mode
when the connected hardware will actually have successfully switched
to the base station mode.
fix_here (activity)
Inputs
|
Outputs
|
Throws
|
Context
|
Average current position and set FIX mode.
This service is similar to fix (activity), but uses the current receiver
position as the desired fixed position. The current position is
first averaged for at most avg_time
number of seconds or until the
averaged position precision becomes better than the requested
precision
. Then, the fix (activity) service is invoked with the averaged
result. The receiver should not be moved during the averaging
period.
When successful, the service returns the averaged position in llh
and enu
and the obtained precision in sigma
. This can be later
reused as a parameter of the fix (activity) service to save the averaging
time and quickly switch to the base sation mode when the receiver
position is already known.
The averaging time should be long enough so that a sufficient
precision is obtained on the position. If the desired precision
cannot be achieved after the requested avg_time
, the service will
stop and raise an error. Depending on the setup quality, the required
time can be as much as several dozens of minutes.
send_rtcm (activity)
Inputs
|
Throws
|
Context
|
Send new RTCM corrections.
The RTCM message identified by rtcmid
is streamed on the UDP port
set in set_rtk_port (activity) (by default 8083) at the frequency
corresponding to period
.
The messages are sent at UTC timestamps multiple of period
,
plus an offset
. For instance, to stream data at 1 second afer
every minute, set the period
to 60 and offset
to 1.
Not all periods and messages are supported by all devices. In case
of an unsupported setting, the e_sys
/EINVAL
exception will be
raised.
RTCM messages will only be streamed when the device is configured in base station mode. This requires fixed position to be set with fix (activity) or fix_here (activity). |
cancel_rtcm (activity)
Inputs
|
Throws
|
Context
|
Stop sending and ignore certain RTCM messages.
In base station mode, the RTCM message identified by rtcmid
are
not streamed anymore. See send_rtcm (activity).
In mobile station mode, any incoming RTCM message with this rtcmid
will be silently ignored. This is useful to precisely configure
what the hardware device will see, especially to filter out messages
supported by the hardware but that are not wanted in a specific
configuration. It is also useful to suppress diagnostic messages
about incoming messages that are not supported by the hardware.
enable_rtcm (function)
Inputs
|
Throws
|
Accept certain RTCM messages.
In mobile station mode, accept incoming RTCM message with this
rtcmid
. This is ony useful if a message has been previously
cancelled. See cancel_rtcm (activity).
ntp_stop (activity)
Context
|
Stop NTP service.
This resets all NTP communication and disables automatic UTC offset
computation. If in clock_local_ntp
timestamp mode (see
set_timestamp_mode (attribute)), published positions will have a 0
timestamp.
ntp_peer (activity)
Inputs
|
Throws
|
Context
|
Start NTP service.
This adds one NTP peer and starts automatic UTC offset
computation. This is required for clock_local_ntp
timestamp mode
(see set_timestamp_mode (attribute)) to work.
Additional NTP peers can be added by invoking this service multiple time.
ntp_info (activity)
Outputs
|
Throws
|
Context
|
Retrieve NTP synchornization information.
The returned offset
is the current estimation of the local clock
offset with respect to UTC time. It is such that
local clock
+ offset
= UTC time
jitter
is an estimate of the precision and stats
is a messge
showing the status of all NTP peers.
monitor_fix (activity)
Inputs
|
Throws
|
Context
|
Monitor fix quality changes.
This service waits until the fix quality is at least target
(for
trigger
equal to monitor_above
) or worse than target
(for
trigger
equal to monitor_below
).
Tasks
io
Context
|
Throws
|