Localization Service Interfaces
Introduction
Localization Service Interfaces:
Provides robot localization operations within a loaded map, including triggering relocalization and querying current localization state.
| Purpose | Python |
|---|---|
| Set Localization / Relocalize | ✔ |
| Get Localization State | ✔ |
Localization Operations
Python Interface
set_localization(auto_relocation=True, location_name='', pose=None, timeout=200)
Function Description
Trigger robot localization or relocalization. Supports automatic relocalization (scanning the environment to match the map) and manual pose specification.
Parameter Description
| Parameter Name | Type | Required/Default | Description |
|---|---|---|---|
auto_relocation | bool | True | If True, use automatic relocalization; if False, use manual pose for localization. |
location_name | str | '' | Trigger relocalization using a saved location as the initial pose. Empty string starts from the origin or current estimated position. |
pose | Pose | Zero pose | Used as the localization initial pose when auto_relocation=False. |
timeout | int | 200 | Timeout in seconds for localization to complete. |
Return Value
| Type | Description |
|---|---|
SetLocationResponse | state.code == 0 indicates localization succeeded. |
Example
python
from daystar_api.lowlevel_skills import set_localization
# Automatic relocalization (recommended)
result = set_localization()
if result.state.code == 0:
print("Relocalization succeeded")
# Use a known saved location as initial pose
result = set_localization(location_name="entrance", timeout=300)
# Manual pose localization
from daystar_api.lowlevel_skills import Pose
pose = Pose()
pose.position.x = 1.0
pose.position.y = 2.0
pose.orientation.w = 1.0
result = set_localization(auto_relocation=False, pose=pose)get_localization_state()
Function Description
Get the robot's current localization state with automatic data validation (waits up to 3 seconds, 5-second staleness threshold). Returns UNKNOWN_LOC when data is unavailable.
Parameter Description
No parameters.
Return Value
| Type | Description |
|---|---|
GetLocalizationStateResponse | state.code == 0 indicates query succeeded; loc_state is a LocalizationState enum: NORMAL(0) normal, LACKDATA(1) insufficient data, LOST(2) localization lost, UNKNOWN_LOC(99) unknown. |
Example
python
from daystar_api.lowlevel_skills import get_localization_state, LocalizationState
response = get_localization_state()
if response.state.code == 0:
if response.loc_state == LocalizationState.NORMAL:
print("Localization is normal, ready to navigate")
elif response.loc_state == LocalizationState.LOST:
print("Localization lost, relocalization required")