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