ROS-Aseba: asebaros reference

The asebaros package contains a single executable node asebaros.

Executable asebaros

Parameters

You can list all parameter of asebaros with

rosparam list asebaros

and get all their values with

rosparam dump asebaros

No parameter is dynamic, i.e., no parameter should be modified at run-time.

targets

A list of valid Dashel targets.

Type:

[string]

Default:

[]


port

The local tcp port where to forward Aseba messages.

Type:

integer

Default:

33333


loop

A flag to not only forward, but also to send back Aseba messages to the sender.

Type:

bool

Default:

false


shutdown_on_unconnect

Whenever to shutdown the asebaros as soon as one Aseba node disconnect.

Type:

bool

Default:

false


reset_on_closing

Whenever to reset Aseba nodes before terminating asebaros node.

Type:

bool

Default:

false


set_id_variable

Whenever to force resetting the id variable of Aseba nodes. Only needed for Aseba nodes simulated with Aseba Playground, which have their internal id set to the same value.

Type:

bool

Default:

false


highest_acceptable_protocol_version

Force asebaros to accept node running an Aseba protocol version possibly higher than the protocol version used by asebaros. If set lower than the compile-time constant ASEBA_PROTOCOL_VERSION=5, then the parameter is reset to ASEBA_PROTOCOL_VERSION.

Type:

int

Default:

ASEBA_PROTOCOL_VERSION=5


nodes

A map [key -> config], with arbitrary keys and values that correspond to classes of Aseba nodes identified by id and name. Unspecified values for name or id are interpreted as a wildcards.

Type:

[string -> NodeConfig]

Default:

[]

NodeConfig is a map that contains the following parameters:

name

The Aseba name. Leave empty or omit to target all type of nodes.

Type:

string

Default:

""

id

The Aseba id. Set to -1 or omit to target all ids (for a given name).

Type:

integer

Default:

-1

accept

Whenever to connect an Aseba node to ROS.

Type:

bool

Default:

true

maximal_number

The maximal number of Aseba nodes to connect to ROS. A negative number is interpreted as unbounded.

Type:

int

Default:

-1

prefix

The prefix to be used to build the ROS namespace for an Aseba node as "{prefix}{id}" if namespace is not specified.

Type:

string

Default:

""

namespace

The ROS namespace to assign to an Aseba node. If left empty, `prefix` will be used to form the namespace instead.

Type:

string

Default:

""

id_variable

The name of the Aseba variable that stores the internal node id.

Type:

string

Default:

""

include_id_in_events

Whenever ROS events forwarded from ROS to Aseba have to include the targeted Aseba node id.

Type:

bool

Default:

false


script

A map that contains the following parameters:

reload_on_reconnect

Whenver to reload an Aseba script when a disconnect node connects again.

Type:

bool

Default:

false

path

The absolute path of a file storing an Aseba script.

Type:

string

Default:

""

constants

A dictionary [name -> value] with the integer values of named constants.

Type:

[string -> int]

Default:

[]

Publishers

You can list all subscribers and publishers of asebaros with

rosnode info /asebaros

Anonymous events

Aseba events for which asebaros cannot match a known node or event, see Events.

Topic:

aseba/anonymous_events

Type:

AnonymousEvent

Events

For each event associated to an Aseba node, the first time an Aseba event is received, a publisher is created, see Events.

Topic:

<node_namespace>/aseba/events/<event_name>

Type:

Event

Node list

The publisher sends a notification when a Aseba node connects, disconnects, or loads a script. ROS1 publishers are latched, ROS2 publishers have qos durability set to transient_local.

Topic:

aseba/nodes

Type:

NodeList

Node description

For each Aseba node, a publisher sends notification when the Aseba node description changes. ROS1 publishers are latched, ROS2 publishers have qos durability set to transient_local.

Topic:

<node_namespace>/aseba/description

Type:

NodeList

Subscribers

Anonymous events

Anonymous events get directly forwarded to Aseba, see Events.

Topic:

aseba/anonymous_events

Type:

AnonymousEvent

Events

For each event in a script, a subscriber is created once the script is loaded on an Aseba node. Events get forwarded to Aseba only if source==0. The id of the node corresponding to <node_namespace> is added to the payload if include_id_in_events is set, see Events.

Topic:

<node_namespace>/aseba/events/<event_name>

Type:

Event

Services

Get node description

Serves the node description as an alternative to subscribing to <node_namespace>/aseba/description

Service:

<node_namespace>/aseba/get_description

Type:

GetDescription

Load script

Load a script to a set of nodes.

Service:

aseba/load_script

Type:

LoadScript

Get node list

Serve the current node list, as an alternative to subscribing to `aseba/nodes

Service:

aseba/get_nodes

Type:

GetNodeList

Get variable

Get an Aseba node variable specified by name.

Service:

<node_namespace>/aseba/get_variable

Type:

GetVariable

Set variable

Set an Aseba node variable specified by name.

Service:

<node_namespace>/aseba/set_variable

Type:

SetVariable