LiDAR-LOC can be configured using a JSON REST API. This API is available using ROS services (on ROS-1 and ROS-2) or commandline tool gen_service_call
(on all target systems). See the operation manual for details on the commands supported by the JSON REST API.
The tool gen_service_call
sends requests to the localization server via http REST API and returns its response. It supports Linux and Windows, native and ROS.
Usage:
gen_service_call <command> <method> <jsondata> [options]
with the following commandline options:
<command>: name of command (service request), f.e. LocIsSystemReady or LocStart
<method>: GET or POST
<jsondata>: parameter as json string, f.e. {}
--hostname=<ip-address>: ip address of the localization server, default: 192.168.0.1
--verbose=0: silent mode, default: 1 (print response)
--output=<outputfile>: write response to <outputfile>, default: no outputfile
--append=<outputfile>: append response to <outputfile>, default: no outputfile
--help: print usage and options
The following table lists supported commands using gen_service_call
(supported on Linux and Windows, native and ROS):
command | example | description |
---|---|---|
LocGetErrorLevel | gen_service_call LocGetErrorLevel POST "{}" |
Returns the error level of the software |
LocIsSystemReady | gen_service_call LocIsSystemReady POST "{}" |
Checks if the localization controller is booted and ready to process commands |
LocAutoStartSavePose | gen_service_call LocAutoStartSavePose POST "{}" |
Saves the current pose on-request for the automatic start of the application software |
LocClearMapCache | gen_service_call LocClearMapCache POST "{}" |
Removes the cached maps from the RAM of the device |
LocGetMap | gen_service_call LocGetMap POST "{}" |
Returns the current map path relative to maps folder or absolute if it is not in maps folder |
LocGetSystemState | gen_service_call LocGetSystemState POST "{}" |
Get the current system state |
LocInitializeAtPose | gen_service_call LocInitializeAtPose POST "{\"data\": {\"x\":1000, \"y\":1000, \"yaw\":1000, \"searchRadius\":1000}}" |
Initializes the localization automatically at the given pose by matching against the mapped contours |
LocLoadMapToCache | gen_service_call LocLoadMapToCache POST "{\"data\": {\"mapPath\": \"test.vmap\"}}" |
Loads a map to RAM of the device if not already loaded |
LocRequestTimestamp | gen_service_call LocRequestTimestamp POST "{}" |
Request the current system time of the localization controller and generate a hardware pulse |
LocResumeAtPose | gen_service_call LocResumeAtPose POST "{\"data\": {\"x\":1000, \"y\":1000, \"yaw\":1000}}" |
Resets the pose estimate to the given pose |
LocSaveRingBufferRecording | gen_service_call LocSaveRingBufferRecording POST "{\"data\": {\"reason\": \"pose quality low\"}}" |
Saves the most recent data from the continuous ring buffer recording |
LocSetKinematicVehicle ModelActive | gen_service_call LocSetKinematicVehicle ModelActive POST "{\"data\": {\"active\":true}}" |
Activates or deactivates usage of the kinematic model to improve localization |
LocSetLinesForSupportActive | gen_service_call LocSetLinesForSupportActive POST "{\"data\": {\"active\":true}}" |
Actives / deactivates the use of the magnetic / optical line sensor for localization |
LocSetMap | gen_service_call LocSetMap POST "{\"data\": {\"mappath\":\"test.vmap\"}}" |
Load a map |
LocSetMappingActive | gen_service_call LocSetMappingActive POST "{\"data\": {\"active\":true}}" |
Activates / deactivates mapping while localizing |
LocSetOdometryActive | gen_service_call LocSetOdometryActive POST "{\"data\": {\"active\":true}}" |
Enable or disable the support of odometry to enhance the robustness of the contour localization algorithm |
LocSetRecordingActive | gen_service_call LocSetRecordingActive POST "{\"data\": {\"active\":true}}" |
Starts or stops the recording of sensor data |
LocSetRingBufferRecordingActive | gen_service_call LocSetRingBufferRecordingActive POST "{\"data\": {\"active\":true}}" |
Enable or disable the continuous recording of data for improved support in critical situations |
LocStart | gen_service_call LocStart POST "{}" |
Start the localization |
LocStop | gen_service_call LocStop POST "{}" |
Stop the localization or the demo mapping and return to IDLE state |
LocSwitchMap | gen_service_call LocSwitchMap POST "{\"data\": {\"subMapName\": \"test.vmap\"}}" |
Transits to the given sub map if close enough to a transition point between the current and the given sub map |
LocGetLocalizationStatus | gen_service_call LocGetLocalizationStatus POST "{}" |
Returns the localization status |
LocGetSoftwareVersion | gen_service_call LocGetSoftwareVersion POST "{}" |
Returns the software version |
LocLoadPersistentConfig | gen_service_call LocLoadPersistentConfig POST "{}" |
Reloads the persistent lidarloc configuration file |
Note: The table above lists the commands in their recommended long format, with "POST" in second and a json string in the third command line argument.
- Argument "POST" is optional. If not specified, the method is determined from the service name.
- Json argument "{}" is optional. If no json data given, "{}" is assumed.
- The json string can be shorten to ROS-format without quotation or keyword "data". F.e.
./gen_service_call LocInitializeAtPose "{x: 1000, y: 1000, yaw: 1000, searchRadius: 1000}"
The following table lists supported commands in their shortest form:
command | example | description |
---|---|---|
LocGetErrorLevel | gen_service_call LocGetErrorLevel |
Returns the error level of the software |
LocIsSystemReady | gen_service_call LocIsSystemReady |
Checks if the localization controller is booted and ready to process commands |
LocAutoStartSavePose | gen_service_call LocAutoStartSavePose |
Saves the current pose on-request for the automatic start of the application software |
LocClearMapCache | gen_service_call LocClearMapCache |
Removes the cached maps from the RAM of the device |
LocGetMap | gen_service_call LocGetMap |
Returns the current map path relative to maps folder or absolute if it is not in maps folder |
LocGetSystemState | gen_service_call LocGetSystemState |
Get the current system state |
LocInitializeAtPose | gen_service_call LocInitializeAtPose "{x: 1000, y: 1000, yaw: 1000, searchRadius: 1000}" |
Initializes the localization automatically at the given pose by matching against the mapped contours |
LocLoadMapToCache | gen_service_call LocLoadMapToCache "{mapPath: \"test.vmap\"}" |
Loads a map to RAM of the device if not already loaded |
LocRequestTimestamp | gen_service_call LocRequestTimestamp |
Request the current system time of the localization controller and generate a hardware pulse |
LocResumeAtPose | gen_service_call LocResumeAtPose "{x: 1000, y: 1000, yaw: 1000}" |
Resets the pose estimate to the given pose |
LocSaveRingBufferRecording | gen_service_call LocSaveRingBufferRecording "{reason: \"pose quality low\"}}" |
Saves the most recent data from the continuous ring buffer recording |
LocSetKinematicVehicleModelActive | gen_service_call LocSetKinematicVehicleModelActive "{active: true}" |
Activates or deactivates usage of the kinematic model to improve localization |
LocSetLinesForSupportActive | gen_service_call LocSetLinesForSupportActive "{active: true}" |
Actives / deactivates the use of the magnetic / optical line sensor for localization |
LocSetMap | gen_service_call LocSetMap "{mappath: \"test.vmap\"}}" |
Load a map |
LocSetMappingActive | gen_service_call LocSetMappingActive "{active: true}" |
Activates / deactivates mapping while localizing |
LocSetOdometryActive | gen_service_call LocSetOdometryActive "{active: true}" |
Enable or disable the support of odometry to enhance the robustness of the contour localization algorithm |
LocSetRecordingActive | gen_service_call LocSetRecordingActive "{active: true}" |
Starts or stops the recording of sensor data |
LocSetRingBufferRecordingActive | gen_service_call LocSetRingBufferRecordingActive "{active: true}" |
Enable or disable the continuous recording of data for improved support in critical situations |
LocStart | gen_service_call LocStart |
Start the localization |
LocStop | gen_service_call LocStop |
Stop the localization or the demo mapping and return to IDLE state |
LocSwitchMap | gen_service_call LocSwitchMap "{subMapName: \"test.vmap\"}}" |
Transits to the given sub map if close enough to a transition point between the current and the given sub map |
LocGetLocalizationStatus | gen_service_call LocGetLocalizationStatus |
Returns the localization status |
LocGetSoftwareVersion | gen_service_call LocGetSoftwareVersion |
Returns the software version |
LocLoadPersistentConfig | gen_service_call LocLoadPersistentConfig |
Reloads the persistent lidarloc configuration file |
Note: For clarity reasons, the long form with explicit "POST" and json arguments is recommended.
gen_service_call examples:
# long format (recommend)
./build/gen_service_call LocIsSystemReady POST "{}" -d=2
./build/gen_service_call LocGetMap POST "{}" -d=2
./build/gen_service_call LocGetSystemState POST "{}" -d=2
./build/gen_service_call LocSetMappingActive POST "{\"data\":{\"active\": true}}" -d=2
./build/gen_service_call LocSetOdometryActive POST "{\"data\":{\"active\": true}}" -d=2
./build/gen_service_call LocStop POST "{}" -d=2
./build/gen_service_call LocStart POST "{}" -d=2
# short form
./build/gen_service_call LocIsSystemReady
./build/gen_service_call LocGetMap
./build/gen_service_call LocGetSystemState
./build/gen_service_call LocSetMappingActive "{active: true}"
./build/gen_service_call LocSetOdometryActive "{active: true}"
./build/gen_service_call LocStop
./build/gen_service_call LocStart
Output examples (test against SIM1000FX):
./build/gen_service_call LocIsSystemReady POST "{}" -d=2
gen_service_call LocIsSystemReady POST {} --hostname=192.168.0.1 --verbose=1
INFO : curl send http POST request "IsSystemReady", response: "{"header":{"status":0,"message":"Ok"},"data":{"success":true}}"
gen_service_call request: IsSystemReady, response: {"header":{"status":0,"message":"Ok"},"data":{"success":true}}
curl command:
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/IsSystemReady
./build/gen_service_call LocGetMap POST "{}" -d=2
gen_service_call LocGetMap POST {} --hostname=192.168.0.1 --verbose=1
INFO : curl send http POST request "LocGetMap", response: "{"header":{"status":0,"message":"Ok"},"data":{"mapPath":"2020-12-21_CNord_40m_v0.vmap"}}"
gen_service_call request: LocGetMap, response: {"header":{"status":0,"message":"Ok"},"data":{"mapPath":"2020-12-21_CNord_40m_v0.vmap"}}
curl command:
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/LocGetMap
./build/gen_service_call LocGetSystemState POST "{}" -d=2
gen_service_call LocGetSystemState POST {} --hostname=192.168.0.1 --verbose=1
INFO : curl send http POST request "LocGetSystemState", response: "{"header":{"status":0,"message":"Ok"},"data":{"systemState":"Localization"}}"
gen_service_call request: LocGetSystemState, response: {"header":{"status":0,"message":"Ok"},"data":{"systemState":"Localization"}}
curl command:
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/LocGetSystemState
./build/gen_service_call LocSetMappingActive POST "{\"data\":{\"active\":true}}" -d=2
gen_service_call LocSetMappingActive POST {"data":{"active":true}} --hostname=192.168.0.1 --verbose=1
INFO : curl send http POST request "LocSetMappingActive", response: "{"header":{"status":0,"message":"Ok"},"data":{"success":true}}"
gen_service_call request: LocSetMappingActive, response: {"header":{"status":0,"message":"Ok"},"data":{"success":true}}
curl command:
curl -i -H "Content-Type: application/json" -X POST -d "{\"data\":{\"active\":true}}" http://192.168.0.1/api/LocSetMappingActive
./build/gen_service_call LocSetOdometryActive POST "{\"data\":{\"active\":true}}" -d=2
gen_service_call LocSetOdometryActive POST {"data":{"active":true}} --hostname=192.168.0.1 --verbose=1
INFO : curl send http POST request "LocSetOdometryActive", response: "{"header":{"status":0,"message":"Ok"},"data":{"success":true}}"
gen_service_call request: LocSetOdometryActive, response: {"header":{"status":0,"message":"Ok"},"data":{"success":true}}
curl command:
curl -i -H "Content-Type: application/json" -X POST -d "{\"data\":{\"active\":true}}" http://192.168.0.1/api/LocSetOdometryActive
./build/gen_service_call LocStop POST "{}" -d=2
gen_service_call LocStop POST {} --hostname=192.168.0.1 --verbose=1
INFO : curl send http POST request "LocStop", response: "{"header":{"status":0,"message":"Ok"},"data":{"success":true}}"
gen_service_call request: LocStop, response: {"header":{"status":0,"message":"Ok"},"data":{"success":true}}
curl command:
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/LocStop
./build/gen_service_call LocStart POST "{}" -d=2
gen_service_call LocStart POST {} --hostname=192.168.0.1 --verbose=1
INFO : curl send http POST request "LocStart", response: "{"header":{"status":0,"message":"Ok"},"data":{"success":true}}"
gen_service_call request: LocStart, response: {"header":{"status":0,"message":"Ok"},"data":{"success":true}}
curl command:
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/LocStart
Note: A REST-API can be served with tool curl, too. gen_service_call
with option -d=2
prints the corresponding curl command, f.e.:
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/IsSystemReady
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/LocGetMap
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/LocGetSystemState
curl -i -H "Content-Type: application/json" -X POST -d "{\"data\":{\"active\":true}}" http://192.168.0.1/api/LocSetMappingActive
curl -i -H "Content-Type: application/json" -X POST -d "{\"data\":{\"active\":true}}" http://192.168.0.1/api/LocSetOdometryActive
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/LocStop
curl -i -H "Content-Type: application/json" -X POST -d "{}" http://192.168.0.1/api/LocStart
The following table lists the same commands using ROS1 services:
command | example |
---|---|
LocGetErrorLevel | rosservice call LocGetErrorLevel "{}" |
LocIsSystemReady | rosservice call LocIsSystemReady "{}" |
LocAutoStartSavePose | rosservice call LocAutoStartSavePose "{}" |
LocClearMapCache | rosservice call LocClearMapCache "{}" |
LocGetMap | rosservice call LocGetMap "{}" |
LocGetSystemState | rosservice call LocGetSystemState "{}" |
LocInitializeAtPose | rosservice call LocInitializeAtPose "{x: 1000, y: 1000, yaw: 1000, searchradius: 1000}" |
LocLoadMapToCache | rosservice call LocLoadMapToCache "{mappath: \"test.vmap\"}" |
LocRequestTimestamp | rosservice call LocRequestTimestamp "{}" |
LocResumeAtPose | rosservice call LocResumeAtPose "{x: 1000, y: 1000, yaw: 1000}" |
LocSaveRingBufferRecording | rosservice call LocSaveRingBufferRecording "{reason: \"pose quality low\"}" |
LocSetKinematicVehicle ModelActive | rosservice call LocSetKinematicVehicle ModelActive "{active: true}" |
LocSetLinesForSupportActive | rosservice call LocSetLinesForSupportActive "{active: true}" |
LocSetMap | rosservice call LocSetMap "{mappath: \"test.vmap\"}" |
LocSetMappingActive | rosservice call LocSetMappingActive "{active: true}" |
LocSetOdometryActive | rosservice call LocSetOdometryActive "{active: true}" |
LocSetRecordingActive | rosservice call LocSetRecordingActive "{active: true}" |
LocSetRingBufferRecordingActive | rosservice call LocSetRingBufferRecordingActive "{active: true}" |
LocStart | rosservice call LocStart "{}" |
LocStop | rosservice call LocStop "{}" |
LocSwitchMap | rosservice call LocSwitchMap "{submapname: \"test.vmap\"}" |
LocGetLocalizationStatus | rosservice call LocGetLocalizationStatus "{}" |
LocGetSoftwareVersion | rosservice call LocGetSoftwareVersion "{}" |
LocLoadPersistentConfig | rosservice call LocLoadPersistentConfig "{}" |
ROS-1 examples:
source ./install/setup.bash
roslaunch sick_lidar_localization sick_lidar_localization.launch &
rosservice call LocIsSystemReady "{}"
rosservice call LocGetMap "{}"
rosservice call LocGetSystemState "{}"
rosservice call LocSetMappingActive "{active: true}"
rosservice call LocSetOdometryActive "{active: true}"
rosservice call LocGetSystemState "{}"
rosservice call LocStop "{}"
rosservice call LocStart "{}"
Output examples (test examples against SIM1000FX):
source ./install/setup.bash
roslaunch sick_lidar_localization sick_lidar_localization.launch &
[ INFO] [1626875179.228541385]: sick_lidar_localization hostname:=192.168.0.1 serverpath:=api verbose:=0 started.
[ INFO] [1626875179.236288641]: SiclLocIsSystemReady: 1
[ INFO] [1626875293.929300215]: SickServices::serviceCb("LocIsSystemReady", "POST", "{}"): success=1
success: True
rosservice call LocGetMap "{}"
[ INFO] [1626875294.835960400]: SickServices::serviceCb("LocGetMap", "POST", "{}"): mapPath="2020-12-21_CNord_40m_v0.vmap"
mappath: "2020-12-21_CNord_40m_v0.vmap"
success: True
rosservice call LocGetSystemState "{}"
[ INFO] [1626875295.768499718]: SickServices::serviceCb("LocGetSystemState", "POST", "{}"): systemState="Localization"
systemstate: "Localization"
success: True
rosservice call LocSetMappingActive "{active: true}"
[ INFO] [1626875296.680080532]: SickServices::serviceCb("LocSetMappingActive", "POST", "{"data":{"active":true}}"): success=1
success: True
rosservice call LocSetOdometryActive "{active: true}"
[ INFO] [1626875297.605719365]: SickServices::serviceCb("LocSetOdometryActive", "POST", "{"data":{"active":true}}"): success=1
success: True
rosservice call LocGetSystemState "{}"
[ INFO] [1626875299.437070523]: SickServices::serviceCb("LocGetSystemState", "POST", "{}"): systemState="Localization"
systemstate: "Localization"
success: True
rosservice call LocStop "{}"
[ INFO] [1626875300.376469527]: SickServices::serviceCb("LocStop", "POST", "{}"): success=1
success: True
rosservice call LocStart "{}"
[ INFO] [1626875302.384810233]: SickServices::serviceCb("LocStart", "POST", "{}"): success=1
success: True
The following table lists the same commands using ROS2 services:
command | example |
---|---|
LocGetErrorLevel | ros2 service call LocGetErrorLevel sick_lidar_localization/srv/LocGetErrorLevelSrv "{}" |
LocIsSystemReady | ros2 service call LocIsSystemReady sick_lidar_localization/srv/LocIsSystemReadySrv "{}" |
LocAutoStartSavePose | ros2 service call LocAutoStartSavePose sick_lidar_localization/srv/LocAutoStartSavePoseSrv "{}" |
LocClearMapCache | ros2 service call LocClearMapCache sick_lidar_localization/srv/LocClearMapCacheSrv "{}" |
LocGetMap | ros2 service call LocGetMap sick_lidar_localization/srv/LocGetMapSrv "{}" |
LocGetSystemState | ros2 service call LocGetSystemState sick_lidar_localization/srv/LocGetSystemStateSrv "{}" |
LocInitializeAtPose | ros2 service call LocInitializeAtPose sick_lidar_localization/srv/LocInitializeAtPoseSrv "{x: 1000, y: 1000, yaw: 1000, searchradius: 1000}" |
LocLoadMapToCache | ros2 service call LocLoadMapToCache sick_lidar_localization/srv/LocLoadMapToCacheSrv "{mappath: \"test.vmap\"}" |
LocRequestTimestamp | ros2 service call LocRequestTimestamp sick_lidar_localization/srv/LocRequestTimestampSrv "{}" |
LocResumeAtPose | ros2 service call LocResumeAtPose sick_lidar_localization/srv/LocResumeAtPoseSrv "{x: 1000, y: 1000, yaw: 1000}" |
LocSaveRingBufferRecording | ros2 service call LocSaveRingBufferRecording sick_lidar_localization/srv/LocSaveRingBufferRecordingSrv "{reason: \"pose quality low\"}" |
LocSetKinematicVehicle ModelActive | ros2 service call LocSetKinematicVehicle ModelActive sick_lidar_localization/srv/LocSetKinematicVehicleModelActiveSrv "{active: true}" |
LocSetLinesForSupportActive | ros2 service call LocSetLinesForSupportActive sick_lidar_localization/srv/LocSetLinesForSupportActiveSrv "{active: true}" |
LocSetMap | ros2 service call LocSetMap sick_lidar_localization/srv/LocSetMapSrv "{mappath: \"test.vmap\"}" |
LocSetMappingActive | ros2 service call LocSetMappingActive sick_lidar_localization/srv/LocSetMappingActiveSrv "{active: true}" |
LocSetOdometryActive | ros2 service call LocSetOdometryActive sick_lidar_localization/srv/LocSetOdometryActiveSrv "{active: true}" |
LocSetRecordingActive | ros2 service call LocSetRecordingActive sick_lidar_localization/srv/LocSetRecordingActiveSrv "{active: true}" |
LocSetRingBufferRecordingActive | ros2 service call LocSetRingBufferRecordingActive sick_lidar_localization/srv/LocSetRingBufferRecordingActiveSrv "{active: true}" |
LocStart | ros2 service call LocStart sick_lidar_localization/srv/LocStartSrv "{}" |
LocStop | ros2 service call LocStop sick_lidar_localization/srv/LocStopSrv "{}" |
LocSwitchMap | ros2 service call LocSwitchMap sick_lidar_localization/srv/LocSwitchMapSrv "{submapname: \"test.vmap\"}" |
LocGetLocalizationStatus | ros2 service call LocGetLocalizationStatus sick_lidar_localization/srv/LocGetLocalizationStatusSrv "{}" |
LocGetSoftwareVersion | ros2 service call LocGetSoftwareVersion sick_lidar_localization/srv/LocGetSoftwareVersionSrv "{}" |
LocLoadPersistentConfig | ros2 service call LocLoadPersistentConfig sick_lidar_localization/srv/LocLoadPersistentConfigSrv "{}" |
ROS-2 examples:
source ./install/setup.bash
ros2 run sick_lidar_localization sick_lidar_localization ./src/sick_lidar_localization/launch/sick_lidar_localization.launch &
ros2 service call LocIsSystemReady sick_lidar_localization/srv/LocIsSystemReadySrv "{}"
ros2 service call LocGetMap sick_lidar_localization/srv/LocGetMapSrv "{}"
ros2 service call LocGetSystemState sick_lidar_localization/srv/LocGetSystemStateSrv "{}"
ros2 service call LocSetMappingActive sick_lidar_localization/srv/LocSetMappingActiveSrv "{active: true}"
ros2 service call LocSetOdometryActive sick_lidar_localization/srv/LocSetOdometryActiveSrv "{active: true}"
ros2 service call LocStop sick_lidar_localization/srv/LocStopSrv "{}"
ros2 service call LocStart sick_lidar_localization/srv/LocStartSrv "{}"
Output examples (test examples against SIM1000FX):
source ./install/setup.bash
ros2 run sick_lidar_localization sick_lidar_localization ./src/sick_lidar_localization/launch/sick_lidar_localization.launch &
[INFO] [1626874790.998263796] [sick_lidar_localization]: sick_lidar_localization hostname:=192.168.0.1 serverpath:=api verbose:=0 started.
[INFO] [1626874791.008931314] [sick_lidar_localization]: LocIsSystemReady: 1
ros2 service call LocIsSystemReady sick_lidar_localization/srv/LocIsSystemReadySrv "{}"
[INFO] [1626874807.690028213] [sick_lidar_localization]: SickServices::serviceCb("IsSystemReady", "POST", "{}"): success=1
response: sick_lidar_localization.srv.LocIsSystemReadySrv_Response(success=True)
ros2 service call LocGetMap sick_lidar_localization/srv/LocGetMapSrv "{}"
[INFO] [1626874808.446064372] [sick_lidar_localization]: SickServices::serviceCb("LocGetMap", "POST", "{}"): mapPath="2020-12-21_CNord_40m_v0.vmap"
response: sick_lidar_localization.srv.LocGetMapSrv_Response(mappath='2020-12-21_CNord_40m_v0.vmap', success=True)
ros2 service call LocGetSystemState sick_lidar_localization/srv/LocGetSystemStateSrv "{}"
[INFO] [1626874809.237483802] [sick_lidar_localization]: SickServices::serviceCb("LocGetSystemState", "POST", "{}"): systemState="Localization"
response: sick_lidar_localization.srv.LocGetSystemStateSrv_Response(systemstate='Localization', success=True)
ros2 service call LocSetMappingActive sick_lidar_localization/srv/LocSetMappingActiveSrv "{active: true}"
[INFO] [1626874809.783162484] [sick_lidar_localization]: SickServices::serviceCb("LocSetMappingActive", "POST", "{"data":{"active":true}}"): success=1
response: sick_lidar_localization.srv.LocSetMappingActiveSrv_Response(success=True)
ros2 service call LocSetOdometryActive sick_lidar_localization/srv/LocSetOdometryActiveSrv "{active: true}"
[INFO] [1626874810.621453095] [sick_lidar_localization]: SickServices::serviceCb("LocSetOdometryActive", "POST", "{"data":{"active":true}}"): success=1
response: sick_lidar_localization.srv.LocSetOdometryActiveSrv_Response(success=True)
ros2 service call LocStop sick_lidar_localization/srv/LocStopSrv "{}"
[INFO] [1626874812.001814744] [sick_lidar_localization]: SickServices::serviceCb("LocStop", "POST", "{}"): success=1
response: sick_lidar_localization.srv.LocStopSrv_Response(success=True)
ros2 service call LocStart sick_lidar_localization/srv/LocStartSrv "{}"
[INFO] [1626874813.582692773] [sick_lidar_localization]: SickServices::serviceCb("LocStart", "POST", "{}"): success=1
response: sick_lidar_localization.srv.LocStartSrv_Response(success=True)