/rtt-rsb-transport

An RTT transport plugin for communication with RSB systems

Primary LanguageC++GNU Lesser General Public License v3.0LGPL-3.0

RTT RSB Transport

Contents

This library provides an RTT transport plugin for sending and receiving RST-RT types to/from and RSB bus.

The code is heavily based on the rtt_roscomm plugin in the rtt_ros_integration repository .

Supported Types

RSB Type RTT Type
rst.geometry.Translation rstrt::geometry::Translation
rst.geometry.Rotation rstrt::geometry::Rotation
rst.geometry.Pose rstrt::geometry::Pose
rst.kinematics.JointAngles rstrt::kinematics::JointAngles
rst.kinematics.JointVelocities rstrt::kinematics::JointVelocities
rst.kinematics.JointAccelerations rstrt::kinematics::JointAccelerations
rst.kinematics.JointJerks rstrt::kinematics::JointJerks
rst.kinematics.LinearVelocities rstrt::kinematics::LinearVelocities
rst.kinematics.AngularVelocities rstrt::geometry::AngularVelocity
rst.kinematics.Twist rstrt::kinematics::Twist
rst.dynamics.JointTorques rstrt::dynamics::JointTorques
rst.dynamics.JointImpedance rstrt::dynamics::JointImpedance
rst.robot.JointState rstrt::robot::JointState
rst.robot.Weights rstrt::robot::Weights
rst.robot.ForceApplication rstrt::robot::ForceApplication
bool bool
int64 int
uint64 uint
double double
float float
utf-8-string string

Plugins

RSB Scopes

This plugin provides a global RTT service for creating connection policies that establish RSB socket connections to specified scopes.

RSB Socket Transport

This plugin provides (not yet) real-time-safe socket connections between RSB scopes and Orocos RTT data ports.

Usage

Connecting an Orocos Port to an RSB Scope

# Imports
import("rst-rt_typekit")
import("rtt_rsbcomm")

# Streaming
stream("my_component.my_output", rsb.transport.socket.scope("/my/output"))
stream("my_component.my_input", rsb.transport.socket.scope("/my/input"))

You can also set up these connections in C++ code:

#include <rtt_rsbcomm/scope/ScopeService.hpp>

// ...

  // Add the port and stream it to an RSB scope
  this->ports()->addPort("my_port", my_port_);
  my_port_.createStream(rtt_rsbcomm::scope::scope("/my/scope"));

// ...