Classes | Functions | Variables
grepros.ros2 Namespace Reference

Classes

class  ROS2Bag
 

Functions

def _get_message_definition (typename)
 
def _get_message_type_hash (typename)
 
def canonical (typename, unbounded=False)
 
def create_publisher (topic, cls_or_typename, queue_size)
 
def create_subscriber (topic, cls_or_typename, handler, queue_size)
 
def deserialize_message (raw, cls_or_typename)
 
def format_message_value (msg, name, value)
 
def get_message_class (typename)
 
def get_message_definition (msg_or_type)
 
def get_message_definition_idl (typename)
 
def get_message_fields (val)
 
def get_message_type (msg_or_cls)
 
def get_message_type_hash (msg_or_type)
 
def get_message_value (msg, name, typename)
 
def get_rostime (fallback=False)
 
def get_topic_types ()
 
def init_node (name)
 
def is_ros_message (val, ignore_time=False)
 
def is_ros_time (val)
 
def make_duration (secs=0, nsecs=0)
 
def make_full_typename (typename)
 
def make_subscriber_qos (topic, typename, queue_size=10)
 
def make_time (secs=0, nsecs=0)
 
def qos_to_dict (qos)
 
def scalar (typename)
 
def serialize_message (msg)
 
def set_message_value (obj, name, value)
 
def shutdown_node ()
 
def time_message (val, to_message=True, clock_type=None)
 
def to_duration (val)
 
def to_nsec (val)
 
def to_sec (val)
 
def to_sec_nsec (val)
 
def to_time (val)
 
def validate (live=False)
 

Variables

list __all__
 
 Bag = ROS2Bag
 
tuple BAG_EXTENSIONS = (".db3", )
 Bagfile extensions to seek. More...
 
 context = None
 rclpy.context.Context instance More...
 
dictionary DDS_TYPES
 Data Distribution Service types to ROS builtins. More...
 
 executor = None
 rclpy.executors.Executor instance More...
 
 node = None
 rclpy.node.Node instance More...
 
 numpy
 
dictionary ROS_ALIAS_TYPES = {"byte": "uint8", "char": "int8"}
 Mapping between type aliases and real types, like {"byte": "uint8"}. More...
 
dictionary ROS_TIME_CLASSES
 ROS2 time/duration types and message types mapped to type names. More...
 
dictionary ROS_TIME_MESSAGES
 ROS2 time/duration types mapped to message types. More...
 
list ROS_TIME_TYPES = ["builtin_interfaces/Time", "builtin_interfaces/Duration"]
 ROS2 time/duration message types. More...
 
tuple SKIP_EXTENSIONS = ()
 Bagfile extensions to skip. More...
 

Function Documentation

◆ _get_message_definition()

def grepros.ros2._get_message_definition (   typename)
private
Returns ROS2 message type definition full text, or None on error (internal caching method).

Definition at line 691 of file ros2.py.

◆ _get_message_type_hash()

def grepros.ros2._get_message_type_hash (   typename)
private
Returns ROS2 message type MD5 hash (internal caching method).

Definition at line 802 of file ros2.py.

◆ canonical()

def grepros.ros2.canonical (   typename,
  unbounded = False 
)
Returns "pkg/Type" for "pkg/msg/Type", standardizes various ROS2 formats.

Converts DDS types like "octet" to "byte", and "sequence<uint8, 100>" to "uint8[100]".

@param  unbounded  drop constraints like array and string bounds,
                   e.g. returning "uint8[]" for "uint8[10]" and "string" for "string<=8"

Definition at line 570 of file ros2.py.

◆ create_publisher()

def grepros.ros2.create_publisher (   topic,
  cls_or_typename,
  queue_size 
)
Returns an rclpy.Publisher instance, with .get_num_connections() and .unregister().

Definition at line 611 of file ros2.py.

◆ create_subscriber()

def grepros.ros2.create_subscriber (   topic,
  cls_or_typename,
  handler,
  queue_size 
)
Returns an rclpy.Subscription.

Supplemented with .get_message_class(), .get_message_definition(),
.get_message_type_hash(), .get_qoses(), and.unregister().

Definition at line 622 of file ros2.py.

◆ deserialize_message()

def grepros.ros2.deserialize_message (   raw,
  cls_or_typename 
)
Returns ROS2 message or service request/response instantiated from serialized binary.

Definition at line 941 of file ros2.py.

◆ format_message_value()

def grepros.ros2.format_message_value (   msg,
  name,
  value 
)
Returns a message attribute value as string.

Result is at least 10 chars wide if message is a ROS2 time/duration
(aligning seconds and nanoseconds).

Definition at line 651 of file ros2.py.

◆ get_message_class()

def grepros.ros2.get_message_class (   typename)
Returns ROS2 message class, or None if unknown type.

Definition at line 668 of file ros2.py.

◆ get_message_definition()

def grepros.ros2.get_message_definition (   msg_or_type)
Returns ROS2 message type definition full text, including subtype definitions.

Returns None if unknown type.

Definition at line 674 of file ros2.py.

◆ get_message_definition_idl()

def grepros.ros2.get_message_definition_idl (   typename)
Returns ROS2 message type definition parsed from IDL file.

@since   version 0.4.2

Definition at line 721 of file ros2.py.

◆ get_message_fields()

def grepros.ros2.get_message_fields (   val)
Returns OrderedDict({field name: field type name}) if ROS2 message, else {}.

Definition at line 808 of file ros2.py.

◆ get_message_type()

def grepros.ros2.get_message_type (   msg_or_cls)
Returns ROS2 message type name, like "std_msgs/Header".

Definition at line 815 of file ros2.py.

◆ get_message_type_hash()

def grepros.ros2.get_message_type_hash (   msg_or_type)
Returns ROS2 message type MD5 hash, or "" if unknown type.

Definition at line 684 of file ros2.py.

◆ get_message_value()

def grepros.ros2.get_message_value (   msg,
  name,
  typename 
)
Returns object attribute value, with numeric arrays converted to lists.

Definition at line 821 of file ros2.py.

◆ get_rostime()

def grepros.ros2.get_rostime (   fallback = False)
Returns current ROS2 time, as rclpy.time.Time.

@param   fallback  use wall time if node not initialized

Definition at line 835 of file ros2.py.

◆ get_topic_types()

def grepros.ros2.get_topic_types ( )
Returns currently available ROS2 topics, as [(topicname, typename)].

Omits topics that the current ROS2 node itself has published.

Definition at line 847 of file ros2.py.

◆ init_node()

def grepros.ros2.init_node (   name)
Initializes a ROS2 node if not already initialized.

Definition at line 520 of file ros2.py.

◆ is_ros_message()

def grepros.ros2.is_ros_message (   val,
  ignore_time = False 
)
Returns whether value is a ROS2 message or special like ROS2 time/duration class or instance.

@param  ignore_time  whether to ignore ROS2 time/duration types

Definition at line 867 of file ros2.py.

◆ is_ros_time()

def grepros.ros2.is_ros_time (   val)
Returns whether value is a ROS2 time/duration class or instance.

Definition at line 878 of file ros2.py.

◆ make_duration()

def grepros.ros2.make_duration (   secs = 0,
  nsecs = 0 
)
Returns an rclpy.duration.Duration.

Definition at line 884 of file ros2.py.

◆ make_full_typename()

def grepros.ros2.make_full_typename (   typename)
Returns "pkg/msg/Type" for "pkg/Type".

Definition at line 894 of file ros2.py.

◆ make_subscriber_qos()

def grepros.ros2.make_subscriber_qos (   topic,
  typename,
  queue_size = 10 
)
Returns rclpy.qos.QoSProfile that matches the most permissive publisher.

@param   queue_size  QoSProfile.depth

Definition at line 901 of file ros2.py.

◆ make_time()

def grepros.ros2.make_time (   secs = 0,
  nsecs = 0 
)
Returns a ROS2 time, as rclpy.time.Time.

Definition at line 889 of file ros2.py.

◆ qos_to_dict()

def grepros.ros2.qos_to_dict (   qos)
Returns rclpy.qos.QoSProfile as dictionary.

Definition at line 917 of file ros2.py.

◆ scalar()

def grepros.ros2.scalar (   typename)
Returns unbounded scalar type from ROS2 message data type

Like "uint8" from "uint8[]", or "string" from "string<=10[<=5]".
Returns type unchanged if not a collection or bounded type.

Definition at line 949 of file ros2.py.

◆ serialize_message()

def grepros.ros2.serialize_message (   msg)
Returns ROS2 message as a serialized binary.

Definition at line 934 of file ros2.py.

◆ set_message_value()

def grepros.ros2.set_message_value (   obj,
  name,
  value 
)
Sets message or object attribute value.

Definition at line 961 of file ros2.py.

◆ shutdown_node()

def grepros.ros2.shutdown_node ( )
Shuts down live ROS2 node.

Definition at line 543 of file ros2.py.

◆ time_message()

def grepros.ros2.time_message (   val,
  to_message = True,
  clock_type = None 
)
Converts ROS2 time/duration between `rclpy` and `builtin_interfaces` objects.

@param   val         ROS2 time/duration object from `rclpy` or `builtin_interfaces`
@param   to_message  whether to convert from `rclpy` to `builtin_interfaces` or vice versa
@param   clock_type  ClockType for converting to `rclpy.Time`, defaults to `ROS_TIME`
@return              value converted to appropriate type, or original value if not convertible

Definition at line 971 of file ros2.py.

◆ to_duration()

def grepros.ros2.to_duration (   val)
Returns value as ROS2 duration if convertible (int/float/time/datetime/decimal), else value.

Convertible types: int/float/time/datetime/decimal/builtin_interfaces.Time.

Definition at line 990 of file ros2.py.

◆ to_nsec()

def grepros.ros2.to_nsec (   val)
Returns value in nanoseconds if value is ROS2 time/duration, else value.

Definition at line 1010 of file ros2.py.

◆ to_sec()

def grepros.ros2.to_sec (   val)
Returns value in seconds if value is ROS2 time/duration, else value.

Definition at line 1019 of file ros2.py.

◆ to_sec_nsec()

def grepros.ros2.to_sec_nsec (   val)
Returns value as (seconds, nanoseconds) if value is ROS2 time/duration, else value.

Definition at line 1029 of file ros2.py.

◆ to_time()

def grepros.ros2.to_time (   val)
Returns value as ROS2 time if convertible, else value.

Convertible types: int/float/duration/datetime/decimal/builtin_interfaces.Time.

Definition at line 1040 of file ros2.py.

◆ validate()

def grepros.ros2.validate (   live = False)
Returns whether ROS2 environment is set, prints error if not.

@param   live  whether environment must support launching a ROS node

Definition at line 553 of file ros2.py.

Variable Documentation

◆ __all__

list grepros.ros2.__all__
private
Initial value:
1 = [
2  "BAG_EXTENSIONS", "DDS_TYPES", "ROS_ALIAS_TYPES", "ROS_TIME_CLASSES", "ROS_TIME_MESSAGES",
3  "ROS_TIME_TYPES", "SKIP_EXTENSIONS", "Bag", "ROS2Bag", "context", "executor", "node",
4  "canonical", "create_publisher", "create_subscriber", "deserialize_message",
5  "format_message_value", "get_message_class", "get_message_definition",
6  "get_message_definition_idl", "get_message_fields", "get_message_type",
7  "get_message_type_hash", "get_message_value", "get_rostime", "get_topic_types", "init_node",
8  "is_ros_message", "is_ros_time", "make_duration", "make_full_typename", "make_subscriber_qos",
9  "make_time", "qos_to_dict", "scalar", "serialize_message", "set_message_value", "shutdown_node",
10  "time_message", "to_duration", "to_nsec", "to_sec", "to_sec_nsec", "to_time", "validate",
11 ]

Definition at line 1060 of file ros2.py.

◆ Bag

grepros.ros2.Bag = ROS2Bag

Definition at line 516 of file ros2.py.

◆ BAG_EXTENSIONS

tuple grepros.ros2.BAG_EXTENSIONS = (".db3", )

Bagfile extensions to seek.

Definition at line 47 of file ros2.py.

◆ context

grepros.ros2.context = None

rclpy.context.Context instance

Definition at line 84 of file ros2.py.

◆ DDS_TYPES

dictionary grepros.ros2.DDS_TYPES
Initial value:
1 = {"boolean": "bool",
2  "float": "float32",
3  "double": "float64",
4  "octet": "byte",
5  "short": "int16",
6  "unsigned short": "uint16",
7  "long": "int32",
8  "unsigned long": "uint32",
9  "long long": "int64",
10  "unsigned long long": "uint64", }

Data Distribution Service types to ROS builtins.

Definition at line 69 of file ros2.py.

◆ executor

grepros.ros2.executor = None

rclpy.executors.Executor instance

Definition at line 87 of file ros2.py.

◆ node

grepros.ros2.node = None

rclpy.node.Node instance

Definition at line 81 of file ros2.py.

◆ numpy

grepros.ros2.numpy

Definition at line 30 of file ros2.py.

◆ ROS_ALIAS_TYPES

dictionary grepros.ros2.ROS_ALIAS_TYPES = {"byte": "uint8", "char": "int8"}

Mapping between type aliases and real types, like {"byte": "uint8"}.

Definition at line 66 of file ros2.py.

◆ ROS_TIME_CLASSES

dictionary grepros.ros2.ROS_TIME_CLASSES
Initial value:
1 = {rclpy.time.Time: "builtin_interfaces/Time",
2  builtin_interfaces.msg.Time: "builtin_interfaces/Time",
3  rclpy.duration.Duration: "builtin_interfaces/Duration",
4  builtin_interfaces.msg.Duration: "builtin_interfaces/Duration"}

ROS2 time/duration types and message types mapped to type names.

Definition at line 56 of file ros2.py.

◆ ROS_TIME_MESSAGES

dictionary grepros.ros2.ROS_TIME_MESSAGES
Initial value:
1 = {rclpy.time.Time: builtin_interfaces.msg.Time,
2  rclpy.duration.Duration: builtin_interfaces.msg.Duration}

ROS2 time/duration types mapped to message types.

Definition at line 62 of file ros2.py.

◆ ROS_TIME_TYPES

list grepros.ros2.ROS_TIME_TYPES = ["builtin_interfaces/Time", "builtin_interfaces/Duration"]

ROS2 time/duration message types.

Definition at line 53 of file ros2.py.

◆ SKIP_EXTENSIONS

tuple grepros.ros2.SKIP_EXTENSIONS = ()

Bagfile extensions to skip.

Definition at line 50 of file ros2.py.



grepros
Author(s): Erki Suurjaak
autogenerated on Sat Jan 6 2024 03:11:30