world_canvas_msgs

Summary

world_canvas_msgs
Version:

0.1.0

Description:

World canvas framework messages package

Maintainers:
  • Jorge Santos <jsantossimon AT gmail DOT com>
Licenses:
  • BSD
Urls:
Authors:
  • Jorge Santos <jsantossimon AT gmail DOT com>
BuildDepends:
BuildtoolDepends:
 
BuildExportDepends:
 
ExecDepends:

Types

Message types

world_canvas_msgs/AnnotationData
Field:

Data for an element in a semantic map stored as a byte array generated by ros::serialization These objects are unique, although they can be referenced by one or more annotations

  • id : Object unique id; data_id field on Annotation messages point to this uuid
  • type : Object type; duplicated from annotation for convenience on deserialization
  • data : Serialized data
# Data for an element in a semantic map stored as a byte array generated by ros::serialization
# These objects are unique, although they can be referenced by one or more annotations
#  - id   : Object unique id; data_id field on Annotation messages point to this uuid
#  - type : Object type; duplicated from annotation for convenience on deserialization
#  - data : Serialized data
uuid_msgs/UniqueID id
string type
uint8[] data
world_canvas_msgs/Annotation
Field:

Annotation: a generic descriptor for an element (object) in a semantic map An annotation can be used to introspect, visualize or key into database filters/searches without having to touch the described object directly

  • timestamp : Creation/last update time

  • world : World the object belongs to

  • id : Annotation unique id

  • data_id : Referenced object unique id (an object can be reference by 1 or more annotations)

  • name : Referenced object name

  • type : Referenced object type (a message type, as world canvas objects are ROS messages)

  • shape : One of 1 (CUBE), 2 (SPHERE), 3 (CYLINDER), 9 (TEXT)

  • color : R, G, B, A (optional)

  • size : X, Y, Z (optional)

  • keywords : Generic properties of this object: allows basic filtering without introspecting

    the object itself

  • relationships : List of associated annotations, used for retrieving operational sets of objects

General properties

# Annotation: a generic descriptor for an element (object) in a semantic map
# An annotation can be used to introspect, visualize or key into database filters/searches without
# having to touch the described object directly
#  - timestamp : Creation/last update time
#  - world     : World the object belongs to
#  - id        : Annotation unique id
#  - data_id   : Referenced object unique id (an object can be reference by 1 or more annotations)
#  - name      : Referenced object name
#  - type      : Referenced object type (a message type, as world canvas objects are ROS messages)
#  - shape     : One of 1 (CUBE), 2 (SPHERE), 3 (CYLINDER), 9 (TEXT)
#  - color     : R, G, B, A (optional)
#  - size      : X, Y, Z (optional)
#  - keywords  : Generic properties of this object: allows basic filtering without introspecting
#                the object itself
#  - relationships : List of associated annotations, used for retrieving operational sets of objects

# General properties
time timestamp
uuid_msgs/UniqueID id
uuid_msgs/UniqueID data_id
string world
string name
string type

# Physical properties
int32  shape
std_msgs/ColorRGBA color
geometry_msgs/Vector3 size
geometry_msgs/PoseWithCovarianceStamped pose

# Querying properties
string[] keywords
uuid_msgs/UniqueID[] relationships
world_canvas_msgs/WorldCanvas
Field:
  • timestamp (time) –
  • name (string) –
  • description (string) –
  • geometry (string) –

World canvas: a generic descriptor for a world, typically containing one or more geometric maps plus semantic information in the form of annotations.

  • timestamp : Creation/last update time
  • name : World name; it must be unique
  • description : Informal description
  • geometry : 2D, 3D (just informative by now)
# World canvas: a generic descriptor for a world, typically containing one or more geometric maps
# plus semantic information in the form of annotations.
#  - timestamp   : Creation/last update time
#  - name        : World name; it must be unique
#  - description : Informal description
#  - geometry    : 2D, 3D (just informative by now)

time timestamp
string name
string description
string geometry
world_canvas_msgs/MapListEntry
Field:
  • name (string) –
  • session_id (string) –
  • date (int64) –
  • map_id (string) –

One entry in a list of maps.

Naming a map is optional.

# One entry in a list of maps.

# Naming a map is optional.
string name

# Maps made by the make-a-map app are given a session ID, which is the
# time when the map-making session was started, expressed as seconds
# since the epoch and converted to a string.
string session_id

# Creation time of this map, in seconds since the epoch.
int64 date

# Unique ID of this map.
string map_id
world_canvas_msgs/Annotations
Field:
Semantic map:
  • geometric map id
  • a list of annotations
# Semantic map:
#  - geometric map id
#  - a list of annotations

string map_id
Annotation[] annotations

Service types

world_canvas_msgs/SetKeyword
Constant (Request):
 
  • ADD (uint8):1
  • DEL (uint8):2
Field (Request):
 
Field (Response):
 
  • result (bool) –
  • message (string) –

Add/remove a specific keyword to the specified annotation

# Add/remove a specific keyword to the specified annotation
uint8 ADD = 1
uint8 DEL = 2

uuid_msgs/UniqueID id
string keyword
uint8 action
---
# What went wrong, if anything
bool result
string message
world_canvas_msgs/ListWorlds
Field (Response):
 
  • names[] (string) –

Get a list of all the worlds in database. TODO: following this issue (https://github.com/corot/world_canvas/issues/20) we may enhance this service returning a list of WorldCanvas objects or something similar

# Get a list of all the worlds in database.
# TODO: following this issue (https://github.com/corot/world_canvas/issues/20) we may
# enhance this service returning a list of WorldCanvas objects or something similar
---
string[] names
world_canvas_msgs/DeleteMap
Field (Request):
 
  • map_id (string) –

Service used to delete a given map

# Service used to delete a given map

string map_id
---
world_canvas_msgs/GetAnnotationsData
Field (Request):
 
Field (Response):
 

Request annotations’ data for a list of annotation identifiers

# Request annotations' data for a list of annotation identifiers

uuid_msgs/UniqueID[] annotation_ids

---
# What went wrong, if anything
bool result
string message

AnnotationData[] data 
world_canvas_msgs/YAMLExport
Field (Request):
 
  • filename (string) –
Field (Response):
 
  • result (bool) –
  • message (string) –
string filename
---
# What went wrong, if anything
bool result
string message
world_canvas_msgs/RenameMap
Field (Request):
 
  • map_id (string) –
  • new_name (string) –

Service used to rename a given map.

# Service used to rename a given map.

string map_id
string new_name
---
world_canvas_msgs/SetRelationship
Constant (Request):
 
  • ADD (uint8):1
  • DEL (uint8):2
Field (Request):
 
Field (Response):
 
  • result (bool) –
  • message (string) –

Add/remove a specific relationship to the specified annotation

# Add/remove a specific relationship to the specified annotation
uint8 ADD = 1
uint8 DEL = 2

uuid_msgs/UniqueID id
uuid_msgs/UniqueID relationship
uint8 action
---
# What went wrong, if anything
bool result
string message
world_canvas_msgs/EditAnnotationsData
Constant (Request):
 
  • NEW (uint8):0
  • EDIT (uint8):1
Field (Request):
 
Constant (Response):
 
  • UPDATE (uint8):10
  • DELETE (uint8):12
  • CANCEL (uint8):13
Field (Response):
 

Request an auxiliary editor to add/modify/delete the data for the given annotation. The annotation itself is passed just for information, to show extra information to the user or assist data edition, but will not be changed.

  • On request, action involves whether the editor must show the given data or create it from scratch
  • On response, action provides the user choice concerning what to do with old and new annotation data
# Request an auxiliary editor to add/modify/delete the data for the given annotation. The annotation
# itself is passed just for information, to show extra information to the user or assist data edition,
# but will not be changed.
#  - On request, action involves whether the editor must show the given data or create it from scratch
#  - On response, action provides the user choice concerning what to do with old and new annotation data

uint8 NEW=0
uint8 EDIT=1

uint8 action

Annotation annotation
AnnotationData data
---
uint8 UPDATE=10
uint8 DELETE=12
uint8 CANCEL=13

uint8 action

AnnotationData data 
world_canvas_msgs/DeleteAnnotations
Field (Request):
 
Field (Response):
 
  • result (bool) –
  • message (string) –

Request server to delete the given annotations

# Request server to delete the given annotations

Annotation[] annotations

---
# What went wrong, if anything
bool result
string message
world_canvas_msgs/GetAnnotations
Field (Request):
 
Field (Response):
 

Various combinations of these filter criteria trigger various results The only one mandatory is world_name; empty arrays are ignored

# Various combinations of these filter criteria trigger various results
# The only one mandatory is world_name; empty arrays are ignored
string world
uuid_msgs/UniqueID[] ids  # Retrieved annotation uuid is within this list
string[] names            # Retrieved annotation name is within this list
string[] types            # Retrieved annotation type is within this list
string[] keywords         # Retrieved annotation has at least one of these keywords
uuid_msgs/UniqueID[] relationships # Retrieve annotations related to those on this list

----

# What went wrong, if anything
bool result
string message

Annotation[] annotations
world_canvas_msgs/PublishMap
Field (Request):
 
  • map_id (string) –

Service used to publish a given map from the database to the /map topic.

# Service used to publish a given map from the database to the /map topic.

string map_id
---
world_canvas_msgs/PubAnnotationsData
Field (Request):
 
  • annotation_ids[] (uuid_msgs/UniqueID) –
  • topic_name (string) –
  • topic_type (string) –
  • pub_as_list (bool) –
Field (Response):
 
  • result (bool) –
  • message (string) –

Request server to publish annotations’ data for a list of annotation identifiers If pub_as_list is true, annotations will be packed in a list before publishing, so topic_type must be an array of the requested annotations. However, if is false, topic_type is just ignored and the published topic type is obtained from one of the annotations in the list NOTE: in both cases, all annotations must be of the same type

# Request server to publish annotations' data for a list of annotation identifiers
# If pub_as_list is true, annotations will be packed in a list before publishing,
# so topic_type must be an array of the requested annotations. However, if is false,
# topic_type is just ignored and the published topic type is obtained from one of
# the annotations in the list
# NOTE: in both cases, all annotations must be of the same type

uuid_msgs/UniqueID[] annotation_ids
string topic_name
string topic_type
bool pub_as_list

---
# What went wrong, if anything
bool result
string message
world_canvas_msgs/SaveMap
Field (Request):
 
  • map_name (string) –

Service used to name the most recent saved map.

# Service used to name the most recent saved map.

string map_name
---
world_canvas_msgs/ResetDatabase
Field (Response):
 
  • result (bool) –
  • message (string) –
---
# What went wrong, if anything
bool result
string message
world_canvas_msgs/YAMLImport
Field (Request):
 
  • filename (string) –
Field (Response):
 
  • result (bool) –
  • message (string) –
string filename
---
# What went wrong, if anything
bool result
string message
world_canvas_msgs/ListMaps
Field (Response):
 

Service used to list the most recent map from every map-making session.

No arguments at this time.

# Service used to list the most recent map from every map-making session.

# No arguments at this time.
---
MapListEntry[] map_list
world_canvas_msgs/SaveAnnotationsData
Field (Request):
 
Field (Response):
 
  • result (bool) –
  • message (string) –
Utility service kept to make debug and testing easier:
saves together annotations and its data assuming a 1-1 relationship.
# Utility service kept to make debug and testing easier:
#   saves together annotations and its data assuming a 1-1 relationship.

Annotation[] annotations
AnnotationData[] data 
---
# What went wrong, if anything
bool result
string message