mil_poi
- POI Handling¶
The MIL POI system is used to keep track of relevant points of interest across a landscape. This can be used to give a robotic system a headstart in determining the final target of a mission; for example, a robotic system could be instructed to head to a specific POI before looking around more closely to find the actual object it needs to interact with.
- /poi_server/add
mil_poi.srv.AddPOIRequest
→mil_poi.srv.AddPOIResponse
Add a POI object into the POI server listing.
- /poi_server/delete
mil_poi.srv.DeletePOIRequest
→mil_poi.srv.DeletePOIResponse
Deletes a POI with the given name, and returns whether the deletion was successful.
- /poi_server/move
mil_poi.srv.MovePOIRequest
→mil_poi.srv.MovePOIResponse
Moves a POI with the given name to the given position, and returns whether the move was successful.
- /points_of_interest/update
visualization_msgs.msg.InteractiveMarkerUpdate
Sends updates about changes to interactive markers. When attempting to view interactive markers in Rviz, the
update_topic
parameter of the Interactive Markers panel needs to be set to this topic.
Using with Rviz¶
To view and interactive with interactive marker POIs in Rviz, you will need to enable
the “Interactive Markers” panel in Rviz. You will then need to set the update topic
to be equal to the update topic published by the interactive marker server published
by the POI server. This topic name will likely end in /update
.
All POIs are represented as spheres in the interactive marker server; you can move these spheres around to change their location. Note that points are currently fixed to the x and y axes, meaning that you can not have floating or submerged points.
Configuration Files¶
When the POI server is launched, it is provided with several ROS parameters to describe how the server should function. This includes POIs that are spawned by default upon server initialization.
The default format of the POI configuration file is the following format:
---
global_frame: enu # Name of the frame to derive POI locations from
initial_pois: # List of POIs that are spawned by default
start_gate: [0, 0, 0] # Name (key) and location (value) of specific POIs
POIServer¶
- defadd_poi_cb
- defdelete_poi_cb
- defmove_poi_cb
- defprocess_feedback
- deftransform_position
- defupdate
- class mil_poi.POIServer[source]¶
Node to act as a server to hold a list of points of interest which can be modified by services or interactive markers.
- add_poi_cb(req: AddPOIRequest) AddPOIResponse [source]¶
Callback for the AddPOI service.
- Parameters
req (AddPOIRequest) – The service request. The name and position are used from the request.
- Returns
Whether the operation was successful, along with a message indicating why.
- Return type
- delete_poi_cb(req: DeletePOIRequest) DeletePOIResponse [source]¶
Callback for DeletePOI service. Equivalent to calling
remove_poi()
.- Parameters
req (DeletePOIRequest) – The service request. The name is used to determine which POI to remove.
- Returns
Whether the operation was successful, along with a message indicating why.
- Return type
- move_poi_cb(req: MovePOIRequest) MovePOIResponse [source]¶
Callback for MovePOI service.
- Parameters
req (MovePOIRequest) – The service request.
- Returns
The response from the service.
- Return type
- process_feedback(feedback: InteractiveMarkerFeedback) None [source]¶
Process interactive marker feedback, moving markers internally in response to markers moved in Rviz.
- Parameters
feedback (InteractiveMarkerFeedback) – The feedback message.
- transform_position(ps: PointStamped) Optional[Point] [source]¶
Attempt to transform a PointStamped message into the global frame, returning the position of the transformed point or None if transform failed.
- Parameters
ps (PointStamped) – The PointStamped message to be transformed into the global frame.
- Returns
The point in the global frame, or
None
if the transform experienced an exception.- Return type
Optional[Point]
AsyncPOIClient¶
- class mil_poi.AsyncPOIClient(nh: NodeHandle)[source]¶
Client for getting the positions of POIs in a POI server.
- Parameters
nh (axros.NodeHandle) – The node handle to use.