Use this node to perform indoor positioning using the metraTec IPS+ tracking system. Prerequisites for using this node
is a running receiver-node that handles communication with the receiver and thus with the beacons in the vicinity.
Also, make sure that tf is broadcasting transformations between all the different coordinate frames used in the config
file and the coordinate frame of the receiver (which is specified via rosparam, see below).
Subscribed topics:
- ips/receiver/raw (indoor_positioning/StringStamped):
Raw messages received by the UWB receiver
Published topics:
- ips/receiver/send (std_msgs/String):
Message to be sent to the receiver, e.g. 'SRG <EID> \r' ranging request
- ips/receiver/position (geometry_msgs/PointStamped):
Estimated position of the receiver after UWB ranging and trilateration
Parameters:
- ~config_file (string, default='PKG_DIR/config/zones.yml'):
Path to the configuration file of zones and beacons relative to the package directory
- ~frame_id (string, default='map'):
Coordinate frame the receiver position should be estimated in
- ~rate (double, default=0.1):
The publishing rate in messages per second
- ~bcn_len (int, default=2*number_of_beacons):
Buffer length for BCN messages
- ~srg_len (int, default=number_of_beacons):
Buffer length for SRG messages
- ~min_beacons (int, default=3):
Minimum number of beacons to be used for UWB ranging. Should be 3 (two possible points) or 4
- ~max_beacons (int, default=6):
Maximum number of beacons to be used for UWB ranging. Higher values lead to higher computation time.
- ~rssi_thresh (int, default=-127):
Minimum RSSI value a beacon should have to be used for ranging. Default uses all beacons.
- ~max_z (double, default=None):
Maximum z-coordinate the receiver should have after ranging. Used as bounds for trilateration.
- ~dilation (double, default=0.0):
Only position estimates within a dilated convex hull around the beacons used for ranging are published to
minimize errors and improve accuracy. This is the dilation distance in m.