Add IDL definitions for ROS2 MSG and SRV

This commit is contained in:
John Ring 2022-01-07 13:03:20 +01:00
parent 3ee4769c52
commit da5eb1ad07
277 changed files with 6815 additions and 1 deletions

View File

@ -95,6 +95,9 @@
Which means that the bound of a bounded string does not count the NUL byte. Which means that the bound of a bounded string does not count the NUL byte.
* Currently we use one rtps_builtin_endpoint per participant. Meaning that if we want to compile 2 seperate participants we have to actually compile 2 different systems (e.g. in seperate Libraries for testing). * Currently we use one rtps_builtin_endpoint per participant. Meaning that if we want to compile 2 seperate participants we have to actually compile 2 different systems (e.g. in seperate Libraries for testing).
It would make sense to remove this restriction, rename the rtps_builtin_endpoint to something more generic like "discovery_module", and allow a way to set participant boundaries. It would make sense to remove this restriction, rename the rtps_builtin_endpoint to something more generic like "discovery_module", and allow a way to set participant boundaries.
* Convert ROS MSG and SRV files to IDL files
ros2 run rosidl_adapter msg2idl.py *.msg
ros2 run rosidl_adapter srv2idl.py *.srv
* Fast-RTPS does not follow DDSI-RTPS Specification * Fast-RTPS does not follow DDSI-RTPS Specification
- Open Github Issue - Open Github Issue
@ -430,4 +433,4 @@ RTPS ENDPOINT
============= =============
* 8.2.6 * 8.2.6
topicKind Used to indicate whether the Endpoint supports instance lifecycle management operations (see 8.7.4). topicKind Used to indicate whether the Endpoint supports instance lifecycle management operations (see 8.7.4).

View File

@ -0,0 +1,2 @@
https://github.com/ros2/common_interfaces.git
@ f41462f5dd36f5c3ae28866f18f356423ffb84e4 4.0.0

View File

@ -0,0 +1,41 @@
// generated from rosidl_adapter/resource/srv.idl.em
// with input from diagnostic_msgs/srv/AddDiagnostics.srv
// generated code does not contain a copyright notice
module diagnostic_msgs {
module srv {
@verbatim (language="comment", text=
" This service is used as part of the process for loading analyzers at runtime," "\n"
" and should be used by a loader script or program, not as a standalone service." "\n"
" Information about dynamic addition of analyzers can be found at" "\n"
" http://wiki.ros.org/diagnostics/Tutorials/Adding%20Analyzers%20at%20Runtime")
struct AddDiagnostics_Request {
@verbatim (language="comment", text=
" The load_namespace parameter defines the namespace where parameters for the" "\n"
" initialization of analyzers in the diagnostic aggregator have been loaded. The" "\n"
" value should be a global name (i.e. /my/name/space), not a relative" "\n"
" (my/name/space) or private (~my/name/space) name. Analyzers will not be added" "\n"
" if a non-global name is used. The call will also fail if the namespace" "\n"
" contains parameters that follow a namespace structure that does not conform to" "\n"
" that expected by the analyzer definitions. See" "\n"
" http://wiki.ros.org/diagnostics/Tutorials/Configuring%20Diagnostic%20Aggregators" "\n"
" and http://wiki.ros.org/diagnostics/Tutorials/Using%20the%20GenericAnalyzer" "\n"
" for examples of the structure of yaml files which are expected to have been" "\n"
" loaded into the namespace.")
string load_namespace;
};
struct AddDiagnostics_Response {
@verbatim (language="comment", text=
" True if diagnostic aggregator was updated with new diagnostics, False" "\n"
" otherwise. A false return value means that either there is a bond in the" "\n"
" aggregator which already used the requested namespace, or the initialization" "\n"
" of analyzers failed.")
boolean success;
@verbatim (language="comment", text=
" Message with additional information about the success or failure")
string message;
};
};
};

View File

@ -0,0 +1,27 @@
# This service is used as part of the process for loading analyzers at runtime,
# and should be used by a loader script or program, not as a standalone service.
# Information about dynamic addition of analyzers can be found at
# http://wiki.ros.org/diagnostics/Tutorials/Adding%20Analyzers%20at%20Runtime
# The load_namespace parameter defines the namespace where parameters for the
# initialization of analyzers in the diagnostic aggregator have been loaded. The
# value should be a global name (i.e. /my/name/space), not a relative
# (my/name/space) or private (~my/name/space) name. Analyzers will not be added
# if a non-global name is used. The call will also fail if the namespace
# contains parameters that follow a namespace structure that does not conform to
# that expected by the analyzer definitions. See
# http://wiki.ros.org/diagnostics/Tutorials/Configuring%20Diagnostic%20Aggregators
# and http://wiki.ros.org/diagnostics/Tutorials/Using%20the%20GenericAnalyzer
# for examples of the structure of yaml files which are expected to have been
# loaded into the namespace.
string load_namespace
---
# True if diagnostic aggregator was updated with new diagnostics, False
# otherwise. A false return value means that either there is a bond in the
# aggregator which already used the requested namespace, or the initialization
# of analyzers failed.
bool success
# Message with additional information about the success or failure
string message

View File

@ -0,0 +1,22 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from diagnostic_msgs/msg/DiagnosticArray.msg
// generated code does not contain a copyright notice
#include "diagnostic_msgs/msg/DiagnosticStatus.idl"
#include "std_msgs/msg/Header.idl"
module diagnostic_msgs {
module msg {
@verbatim (language="comment", text=
" This message is used to send diagnostic information about the state of the robot.")
struct DiagnosticArray {
@verbatim (language="comment", text=
" for timestamp")
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" an array of components being reported on")
sequence<diagnostic_msgs::msg::DiagnosticStatus> status;
};
};
};

View File

@ -0,0 +1,3 @@
# This message is used to send diagnostic information about the state of the robot.
std_msgs/Header header # for timestamp
DiagnosticStatus[] status # an array of components being reported on

View File

@ -0,0 +1,39 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from diagnostic_msgs/msg/DiagnosticStatus.msg
// generated code does not contain a copyright notice
#include "diagnostic_msgs/msg/KeyValue.idl"
module diagnostic_msgs {
module msg {
module DiagnosticStatus_Constants {
const octet OK = 0;
const octet WARN = 1;
const octet ERROR = 2;
const octet STALE = 3;
};
@verbatim (language="comment", text=
" This message holds the status of an individual component of the robot.")
struct DiagnosticStatus {
@verbatim (language="comment", text=
" Level of operation enumerated above.")
octet level;
@verbatim (language="comment", text=
" A description of the test/component reporting.")
string name;
@verbatim (language="comment", text=
" A description of the status.")
string message;
@verbatim (language="comment", text=
" A hardware unique string.")
string hardware_id;
@verbatim (language="comment", text=
" An array of values associated with the status.")
sequence<diagnostic_msgs::msg::KeyValue> values;
};
};
};

View File

@ -0,0 +1,19 @@
# This message holds the status of an individual component of the robot.
# Possible levels of operations.
byte OK=0
byte WARN=1
byte ERROR=2
byte STALE=3
# Level of operation enumerated above.
byte level
# A description of the test/component reporting.
string name
# A description of the status.
string message
# A hardware unique string.
string hardware_id
# An array of values associated with the status.
KeyValue[] values

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from diagnostic_msgs/msg/KeyValue.msg
// generated code does not contain a copyright notice
module diagnostic_msgs {
module msg {
@verbatim (language="comment", text=
" What to label this value when viewing.")
struct KeyValue {
string key;
@verbatim (language="comment", text=
" A value to track over time.")
string value;
};
};
};

View File

@ -0,0 +1,4 @@
# What to label this value when viewing.
string key
# A value to track over time.
string value

View File

@ -0,0 +1,20 @@
// generated from rosidl_adapter/resource/srv.idl.em
// with input from diagnostic_msgs/srv/SelfTest.srv
// generated code does not contain a copyright notice
#include "diagnostic_msgs/msg/DiagnosticStatus.idl"
module diagnostic_msgs {
module srv {
struct SelfTest_Request {
uint8 structure_needs_at_least_one_member;
};
struct SelfTest_Response {
string id;
octet passed;
sequence<diagnostic_msgs::msg::DiagnosticStatus> status;
};
};
};

View File

@ -0,0 +1,4 @@
---
string id
byte passed
DiagnosticStatus[] status

View File

@ -0,0 +1,17 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Accel.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Vector3.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This expresses acceleration in free space broken into its linear and angular parts.")
struct Accel {
geometry_msgs::msg::Vector3 linear;
geometry_msgs::msg::Vector3 angular;
};
};
};

View File

@ -0,0 +1,3 @@
# This expresses acceleration in free space broken into its linear and angular parts.
Vector3 linear
Vector3 angular

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/AccelStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Accel.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" An accel with reference coordinate frame and timestamp")
struct AccelStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::Accel accel;
};
};
};

View File

@ -0,0 +1,3 @@
# An accel with reference coordinate frame and timestamp
std_msgs/Header header
Accel accel

View File

@ -0,0 +1,23 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/AccelWithCovariance.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Accel.idl"
module geometry_msgs {
module msg {
typedef double double__36[36];
@verbatim (language="comment", text=
" This expresses acceleration in free space with uncertainty.")
struct AccelWithCovariance {
geometry_msgs::msg::Accel accel;
@verbatim (language="comment", text=
" Row-major representation of the 6x6 covariance matrix" "\n"
" The orientation parameters use a fixed-axis representation." "\n"
" In order, the parameters are:" "\n"
" (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)")
double__36 covariance;
};
};
};

View File

@ -0,0 +1,9 @@
# This expresses acceleration in free space with uncertainty.
Accel accel
# Row-major representation of the 6x6 covariance matrix
# The orientation parameters use a fixed-axis representation.
# In order, the parameters are:
# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)
float64[36] covariance

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/AccelWithCovarianceStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/AccelWithCovariance.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents an estimated accel with reference coordinate frame and timestamp.")
struct AccelWithCovarianceStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::AccelWithCovariance accel;
};
};
};

View File

@ -0,0 +1,3 @@
# This represents an estimated accel with reference coordinate frame and timestamp.
std_msgs/Header header
AccelWithCovariance accel

View File

@ -0,0 +1,38 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Inertia.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Vector3.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" Mass")
struct Inertia {
double m;
@verbatim (language="comment", text=
" Center of mass")
@unit (value="m")
geometry_msgs::msg::Vector3 com;
@verbatim (language="comment", text=
" Inertia Tensor" "\n"
" | ixx ixy ixz |" "\n"
" I = | ixy iyy iyz |" "\n"
" | ixz iyz izz |")
@unit (value="kg-m^2")
double ixx;
double ixy;
double ixz;
double iyy;
double iyz;
double izz;
};
};
};

View File

@ -0,0 +1,16 @@
# Mass [kg]
float64 m
# Center of mass [m]
geometry_msgs/Vector3 com
# Inertia Tensor [kg-m^2]
# | ixx ixy ixz |
# I = | ixy iyy iyz |
# | ixz iyz izz |
float64 ixx
float64 ixy
float64 ixz
float64 iyy
float64 iyz
float64 izz

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/InertiaStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Inertia.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" An Inertia with a time stamp and reference frame.")
struct InertiaStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::Inertia inertia;
};
};
};

View File

@ -0,0 +1,4 @@
# An Inertia with a time stamp and reference frame.
std_msgs/Header header
Inertia inertia

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Point.msg
// generated code does not contain a copyright notice
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This contains the position of a point in free space")
struct Point {
double x;
double y;
double z;
};
};
};

View File

@ -0,0 +1,4 @@
# This contains the position of a point in free space
float64 x
float64 y
float64 z

View File

@ -0,0 +1,24 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Point32.msg
// generated code does not contain a copyright notice
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This contains the position of a point in free space(with 32 bits of precision)." "\n"
" It is recommended to use Point wherever possible instead of Point32." "\n"
"" "\n"
" This recommendation is to promote interoperability." "\n"
"" "\n"
" This message is designed to take up less space when sending" "\n"
" lots of points at once, as in the case of a PointCloud.")
struct Point32 {
float x;
float y;
float z;
};
};
};

View File

@ -0,0 +1,11 @@
# This contains the position of a point in free space(with 32 bits of precision).
# It is recommended to use Point wherever possible instead of Point32.
#
# This recommendation is to promote interoperability.
#
# This message is designed to take up less space when sending
# lots of points at once, as in the case of a PointCloud.
float32 x
float32 y
float32 z

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/PointStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Point.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents a Point with reference coordinate frame and timestamp")
struct PointStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::Point point;
};
};
};

View File

@ -0,0 +1,4 @@
# This represents a Point with reference coordinate frame and timestamp
std_msgs/Header header
Point point

View File

@ -0,0 +1,15 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Polygon.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Point32.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" A specification of a polygon where the first and last points are assumed to be connected")
struct Polygon {
sequence<geometry_msgs::msg::Point32> points;
};
};
};

View File

@ -0,0 +1,3 @@
# A specification of a polygon where the first and last points are assumed to be connected
Point32[] points

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/PolygonStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Polygon.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents a Polygon with reference coordinate frame and timestamp")
struct PolygonStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::Polygon polygon;
};
};
};

View File

@ -0,0 +1,4 @@
# This represents a Polygon with reference coordinate frame and timestamp
std_msgs/Header header
Polygon polygon

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Pose.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Point.idl"
#include "geometry_msgs/msg/Quaternion.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" A representation of pose in free space, composed of position and orientation.")
struct Pose {
geometry_msgs::msg::Point position;
geometry_msgs::msg::Quaternion orientation;
};
};
};

View File

@ -0,0 +1,4 @@
# A representation of pose in free space, composed of position and orientation.
Point position
Quaternion orientation

View File

@ -0,0 +1,22 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Pose2D.msg
// generated code does not contain a copyright notice
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" Deprecated as of Foxy and will potentially be removed in any following release." "\n"
" Please use the full 3D pose.")
struct Pose2D {
@verbatim (language="comment", text=
" In general our recommendation is to use a full 3D representation of everything and for 2D specific applications make the appropriate projections into the plane for their calculations but optimally will preserve the 3D information during processing." "\n"
" If we have parallel copies of 2D datatypes every UI and other pipeline will end up needing to have dual interfaces to plot everything. And you will end up with not being able to use 3D tools for 2D use cases even if they're completely valid, as you'd have to reimplement it with different inputs and outputs. It's not particularly hard to plot the 2D pose or compute the yaw error for the Pose message and there are already tools and libraries that can do this for you.# This expresses a position and orientation on a 2D manifold.")
double x;
double y;
double theta;
};
};
};

View File

@ -0,0 +1,10 @@
# Deprecated as of Foxy and will potentially be removed in any following release.
# Please use the full 3D pose.
# In general our recommendation is to use a full 3D representation of everything and for 2D specific applications make the appropriate projections into the plane for their calculations but optimally will preserve the 3D information during processing.
# If we have parallel copies of 2D datatypes every UI and other pipeline will end up needing to have dual interfaces to plot everything. And you will end up with not being able to use 3D tools for 2D use cases even if they're completely valid, as you'd have to reimplement it with different inputs and outputs. It's not particularly hard to plot the 2D pose or compute the yaw error for the Pose message and there are already tools and libraries that can do this for you.# This expresses a position and orientation on a 2D manifold.
float64 x
float64 y
float64 theta

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/PoseArray.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Pose.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" An array of poses with a header for global reference.")
struct PoseArray {
std_msgs::msg::Header header;
sequence<geometry_msgs::msg::Pose> poses;
};
};
};

View File

@ -0,0 +1,5 @@
# An array of poses with a header for global reference.
std_msgs/Header header
Pose[] poses

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/PoseStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Pose.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" A Pose with reference coordinate frame and timestamp")
struct PoseStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::Pose pose;
};
};
};

View File

@ -0,0 +1,4 @@
# A Pose with reference coordinate frame and timestamp
std_msgs/Header header
Pose pose

View File

@ -0,0 +1,23 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/PoseWithCovariance.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Pose.idl"
module geometry_msgs {
module msg {
typedef double double__36[36];
@verbatim (language="comment", text=
" This represents a pose in free space with uncertainty.")
struct PoseWithCovariance {
geometry_msgs::msg::Pose pose;
@verbatim (language="comment", text=
" Row-major representation of the 6x6 covariance matrix" "\n"
" The orientation parameters use a fixed-axis representation." "\n"
" In order, the parameters are:" "\n"
" (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)")
double__36 covariance;
};
};
};

View File

@ -0,0 +1,9 @@
# This represents a pose in free space with uncertainty.
Pose pose
# Row-major representation of the 6x6 covariance matrix
# The orientation parameters use a fixed-axis representation.
# In order, the parameters are:
# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)
float64[36] covariance

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/PoseWithCovarianceStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/PoseWithCovariance.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This expresses an estimated pose with a reference coordinate frame and timestamp")
struct PoseWithCovarianceStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::PoseWithCovariance pose;
};
};
};

View File

@ -0,0 +1,4 @@
# This expresses an estimated pose with a reference coordinate frame and timestamp
std_msgs/Header header
PoseWithCovariance pose

View File

@ -0,0 +1,24 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Quaternion.msg
// generated code does not contain a copyright notice
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents an orientation in free space in quaternion form.")
struct Quaternion {
@default (value=0.0)
double x;
@default (value=0.0)
double y;
@default (value=0.0)
double z;
@default (value=1.0)
double w;
};
};
};

View File

@ -0,0 +1,6 @@
# This represents an orientation in free space in quaternion form.
float64 x 0
float64 y 0
float64 z 0
float64 w 1

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/QuaternionStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Quaternion.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents an orientation with reference coordinate frame and timestamp.")
struct QuaternionStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::Quaternion quaternion;
};
};
};

View File

@ -0,0 +1,4 @@
# This represents an orientation with reference coordinate frame and timestamp.
std_msgs/Header header
Quaternion quaternion

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Transform.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Quaternion.idl"
#include "geometry_msgs/msg/Vector3.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents the transform between two coordinate frames in free space.")
struct Transform {
geometry_msgs::msg::Vector3 translation;
geometry_msgs::msg::Quaternion rotation;
};
};
};

View File

@ -0,0 +1,4 @@
# This represents the transform between two coordinate frames in free space.
Vector3 translation
Quaternion rotation

View File

@ -0,0 +1,35 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/TransformStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Transform.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This expresses a transform from coordinate frame header.frame_id" "\n"
" to the coordinate frame child_frame_id at the time of header.stamp" "\n"
"" "\n"
" This message is mostly used by the" "\n"
" <a href=\"https://index.ros.org/p/tf2/\">tf2</a> package." "\n"
" See its documentation for more information." "\n"
"" "\n"
" The child_frame_id is necessary in addition to the frame_id" "\n"
" in the Header to communicate the full reference for the transform" "\n"
" in a self contained message.")
struct TransformStamped {
@verbatim (language="comment", text=
" The frame id in the header is used as the reference frame of this transform.")
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" The frame id of the child frame to which this transform points.")
string child_frame_id;
@verbatim (language="comment", text=
" Translation and rotation in 3-dimensions of child_frame_id from header.frame_id.")
geometry_msgs::msg::Transform transform;
};
};
};

View File

@ -0,0 +1,19 @@
# This expresses a transform from coordinate frame header.frame_id
# to the coordinate frame child_frame_id at the time of header.stamp
#
# This message is mostly used by the
# <a href="https://index.ros.org/p/tf2/">tf2</a> package.
# See its documentation for more information.
#
# The child_frame_id is necessary in addition to the frame_id
# in the Header to communicate the full reference for the transform
# in a self contained message.
# The frame id in the header is used as the reference frame of this transform.
std_msgs/Header header
# The frame id of the child frame to which this transform points.
string child_frame_id
# Translation and rotation in 3-dimensions of child_frame_id from header.frame_id.
Transform transform

View File

@ -0,0 +1,17 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Twist.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Vector3.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This expresses velocity in free space broken into its linear and angular parts.")
struct Twist {
geometry_msgs::msg::Vector3 linear;
geometry_msgs::msg::Vector3 angular;
};
};
};

View File

@ -0,0 +1,4 @@
# This expresses velocity in free space broken into its linear and angular parts.
Vector3 linear
Vector3 angular

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/TwistStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Twist.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" A twist with reference coordinate frame and timestamp")
struct TwistStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::Twist twist;
};
};
};

View File

@ -0,0 +1,4 @@
# A twist with reference coordinate frame and timestamp
std_msgs/Header header
Twist twist

View File

@ -0,0 +1,23 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/TwistWithCovariance.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Twist.idl"
module geometry_msgs {
module msg {
typedef double double__36[36];
@verbatim (language="comment", text=
" This expresses velocity in free space with uncertainty.")
struct TwistWithCovariance {
geometry_msgs::msg::Twist twist;
@verbatim (language="comment", text=
" Row-major representation of the 6x6 covariance matrix" "\n"
" The orientation parameters use a fixed-axis representation." "\n"
" In order, the parameters are:" "\n"
" (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)")
double__36 covariance;
};
};
};

View File

@ -0,0 +1,9 @@
# This expresses velocity in free space with uncertainty.
Twist twist
# Row-major representation of the 6x6 covariance matrix
# The orientation parameters use a fixed-axis representation.
# In order, the parameters are:
# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)
float64[36] covariance

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/TwistWithCovarianceStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/TwistWithCovariance.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents an estimated twist with reference coordinate frame and timestamp.")
struct TwistWithCovarianceStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::TwistWithCovariance twist;
};
};
};

View File

@ -0,0 +1,4 @@
# This represents an estimated twist with reference coordinate frame and timestamp.
std_msgs/Header header
TwistWithCovariance twist

View File

@ -0,0 +1,22 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Vector3.msg
// generated code does not contain a copyright notice
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents a vector in free space.")
struct Vector3 {
@verbatim (language="comment", text=
" This is semantically different than a point." "\n"
" A vector is always anchored at the origin." "\n"
" When a transform is applied to a vector, only the rotational component is applied.")
double x;
double y;
double z;
};
};
};

View File

@ -0,0 +1,9 @@
# This represents a vector in free space.
# This is semantically different than a point.
# A vector is always anchored at the origin.
# When a transform is applied to a vector, only the rotational component is applied.
float64 x
float64 y
float64 z

View File

@ -0,0 +1,21 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Vector3Stamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Vector3.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents a Vector3 with reference coordinate frame and timestamp")
struct Vector3Stamped {
@verbatim (language="comment", text=
" Note that this follows vector semantics with it always anchored at the origin," "\n"
" so the rotational elements of a transform are the only parts applied when transforming.")
std_msgs::msg::Header header;
geometry_msgs::msg::Vector3 vector;
};
};
};

View File

@ -0,0 +1,7 @@
# This represents a Vector3 with reference coordinate frame and timestamp
# Note that this follows vector semantics with it always anchored at the origin,
# so the rotational elements of a transform are the only parts applied when transforming.
std_msgs/Header header
Vector3 vector

View File

@ -0,0 +1,17 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/Wrench.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Vector3.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" This represents force in free space, separated into its linear and angular parts.")
struct Wrench {
geometry_msgs::msg::Vector3 force;
geometry_msgs::msg::Vector3 torque;
};
};
};

View File

@ -0,0 +1,4 @@
# This represents force in free space, separated into its linear and angular parts.
Vector3 force
Vector3 torque

View File

@ -0,0 +1,18 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from geometry_msgs/msg/WrenchStamped.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Wrench.idl"
#include "std_msgs/msg/Header.idl"
module geometry_msgs {
module msg {
@verbatim (language="comment", text=
" A wrench with reference coordinate frame and timestamp")
struct WrenchStamped {
std_msgs::msg::Header header;
geometry_msgs::msg::Wrench wrench;
};
};
};

View File

@ -0,0 +1,4 @@
# A wrench with reference coordinate frame and timestamp
std_msgs/Header header
Wrench wrench

View File

@ -0,0 +1,20 @@
// generated from rosidl_adapter/resource/srv.idl.em
// with input from nav_msgs/srv/GetMap.srv
// generated code does not contain a copyright notice
#include "nav_msgs/msg/OccupancyGrid.idl"
module nav_msgs {
module srv {
@verbatim (language="comment", text=
" Get the map as a nav_msgs/OccupancyGrid")
struct GetMap_Request {
uint8 structure_needs_at_least_one_member;
};
@verbatim (language="comment", text=
" The current map hosted by this map service.")
struct GetMap_Response {
nav_msgs::msg::OccupancyGrid map;
};
};
};

View File

@ -0,0 +1,4 @@
# Get the map as a nav_msgs/OccupancyGrid
---
# The current map hosted by this map service.
OccupancyGrid map

View File

@ -0,0 +1,32 @@
// generated from rosidl_adapter/resource/srv.idl.em
// with input from nav_msgs/srv/GetPlan.srv
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/PoseStamped.idl"
#include "nav_msgs/msg/Path.idl"
module nav_msgs {
module srv {
@verbatim (language="comment", text=
" Get a plan from the current position to the goal Pose")
struct GetPlan_Request {
@verbatim (language="comment", text=
" The start pose for the plan")
geometry_msgs::msg::PoseStamped start;
@verbatim (language="comment", text=
" The final pose of the goal position")
geometry_msgs::msg::PoseStamped goal;
@verbatim (language="comment", text=
" If the goal is obstructed, how many meters the planner can" "\n"
" relax the constraint in x and y before failing.")
float tolerance;
};
@verbatim (language="comment", text=
" Array of poses from start to goal if one was successfully found.")
struct GetPlan_Response {
nav_msgs::msg::Path plan;
};
};
};

View File

@ -0,0 +1,14 @@
# Get a plan from the current position to the goal Pose
# The start pose for the plan
geometry_msgs/PoseStamped start
# The final pose of the goal position
geometry_msgs/PoseStamped goal
# If the goal is obstructed, how many meters the planner can
# relax the constraint in x and y before failing.
float32 tolerance
---
# Array of poses from start to goal if one was successfully found.
Path plan

View File

@ -0,0 +1,28 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from nav_msgs/msg/GridCells.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/Point.idl"
#include "std_msgs/msg/Header.idl"
module nav_msgs {
module msg {
@verbatim (language="comment", text=
" An array of cells in a 2D grid")
struct GridCells {
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" Width of each cell")
float cell_width;
@verbatim (language="comment", text=
" Height of each cell")
float cell_height;
@verbatim (language="comment", text=
" Each cell is represented by the Point at the center of the cell")
sequence<geometry_msgs::msg::Point> cells;
};
};
};

View File

@ -0,0 +1,12 @@
# An array of cells in a 2D grid
std_msgs/Header header
# Width of each cell
float32 cell_width
# Height of each cell
float32 cell_height
# Each cell is represented by the Point at the center of the cell
geometry_msgs/Point[] cells

View File

@ -0,0 +1,33 @@
// generated from rosidl_adapter/resource/srv.idl.em
// with input from nav_msgs/srv/LoadMap.srv
// generated code does not contain a copyright notice
#include "nav_msgs/msg/OccupancyGrid.idl"
module nav_msgs {
module srv {
@verbatim (language="comment", text=
" URL of map resource" "\n"
" Can be an absolute path to a file: file:///path/to/maps/floor1.yaml" "\n"
" Or, relative to a ROS package: package://my_ros_package/maps/floor2.yaml")
struct LoadMap_Request {
string map_url;
};
module LoadMap_Response_Constants {
const uint8 RESULT_SUCCESS = 0;
const uint8 RESULT_MAP_DOES_NOT_EXIST = 1;
const uint8 RESULT_INVALID_MAP_DATA = 2;
const uint8 RESULT_INVALID_MAP_METADATA = 3;
const uint8 RESULT_UNDEFINED_FAILURE = 255;
};
@verbatim (language="comment", text=
" Result code defintions")
struct LoadMap_Response {
@verbatim (language="comment", text=
" Returned map is only valid if result equals RESULT_SUCCESS")
nav_msgs::msg::OccupancyGrid map;
uint8 result;
};
};
};

View File

@ -0,0 +1,15 @@
# URL of map resource
# Can be an absolute path to a file: file:///path/to/maps/floor1.yaml
# Or, relative to a ROS package: package://my_ros_package/maps/floor2.yaml
string map_url
---
# Result code defintions
uint8 RESULT_SUCCESS=0
uint8 RESULT_MAP_DOES_NOT_EXIST=1
uint8 RESULT_INVALID_MAP_DATA=2
uint8 RESULT_INVALID_MAP_METADATA=3
uint8 RESULT_UNDEFINED_FAILURE=255
# Returned map is only valid if result equals RESULT_SUCCESS
nav_msgs/OccupancyGrid map
uint8 result

View File

@ -0,0 +1,38 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from nav_msgs/msg/MapMetaData.msg
// generated code does not contain a copyright notice
#include "builtin_interfaces/msg/Time.idl"
#include "geometry_msgs/msg/Pose.idl"
module nav_msgs {
module msg {
@verbatim (language="comment", text=
" This hold basic information about the characteristics of the OccupancyGrid")
struct MapMetaData {
@verbatim (language="comment", text=
" The time at which the map was loaded")
builtin_interfaces::msg::Time map_load_time;
@verbatim (language="comment", text=
" The map resolution")
@unit (value="m/cell")
float resolution;
@verbatim (language="comment", text=
" Map width")
@unit (value="cells")
uint32 width;
@verbatim (language="comment", text=
" Map height")
@unit (value="cells")
uint32 height;
@verbatim (language="comment", text=
" The origin of the map [m, m, rad]. This is the real-world pose of the" "\n"
" bottom left corner of cell (0,0) in the map.")
geometry_msgs::msg::Pose origin;
};
};
};

View File

@ -0,0 +1,17 @@
# This hold basic information about the characteristics of the OccupancyGrid
# The time at which the map was loaded
builtin_interfaces/Time map_load_time
# The map resolution [m/cell]
float32 resolution
# Map width [cells]
uint32 width
# Map height [cells]
uint32 height
# The origin of the map [m, m, rad]. This is the real-world pose of the
# bottom left corner of cell (0,0) in the map.
geometry_msgs/Pose origin

View File

@ -0,0 +1,29 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from nav_msgs/msg/OccupancyGrid.msg
// generated code does not contain a copyright notice
#include "nav_msgs/msg/MapMetaData.idl"
#include "std_msgs/msg/Header.idl"
module nav_msgs {
module msg {
@verbatim (language="comment", text=
" This represents a 2-D grid map")
struct OccupancyGrid {
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" MetaData for the map")
nav_msgs::msg::MapMetaData info;
@verbatim (language="comment", text=
" The map data, in row-major order, starting with (0,0)." "\n"
" Cell (1, 0) will be listed second, representing the next cell in the x direction." "\n"
" Cell (0, 1) will be at the index equal to info.width, followed by (1, 1)." "\n"
" The values inside are application dependent, but frequently," "\n"
" 0 represents unoccupied, 1 represents definitely occupied, and" "\n"
" -1 represents unknown.")
sequence<int8> data;
};
};
};

View File

@ -0,0 +1,13 @@
# This represents a 2-D grid map
std_msgs/Header header
# MetaData for the map
MapMetaData info
# The map data, in row-major order, starting with (0,0).
# Cell (1, 0) will be listed second, representing the next cell in the x direction.
# Cell (0, 1) will be at the index equal to info.width, followed by (1, 1).
# The values inside are application dependent, but frequently,
# 0 represents unoccupied, 1 represents definitely occupied, and
# -1 represents unknown.
int8[] data

View File

@ -0,0 +1,33 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from nav_msgs/msg/Odometry.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/PoseWithCovariance.idl"
#include "geometry_msgs/msg/TwistWithCovariance.idl"
#include "std_msgs/msg/Header.idl"
module nav_msgs {
module msg {
@verbatim (language="comment", text=
" This represents an estimate of a position and velocity in free space." "\n"
" The pose in this message should be specified in the coordinate frame given by header.frame_id" "\n"
" The twist in this message should be specified in the coordinate frame given by the child_frame_id")
struct Odometry {
@verbatim (language="comment", text=
" Includes the frame id of the pose parent.")
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" Frame id the pose points to. The twist is in this coordinate frame.")
string child_frame_id;
@verbatim (language="comment", text=
" Estimated pose that is typically relative to a fixed world frame.")
geometry_msgs::msg::PoseWithCovariance pose;
@verbatim (language="comment", text=
" Estimated linear and angular velocity relative to child_frame_id.")
geometry_msgs::msg::TwistWithCovariance twist;
};
};
};

View File

@ -0,0 +1,15 @@
# This represents an estimate of a position and velocity in free space.
# The pose in this message should be specified in the coordinate frame given by header.frame_id
# The twist in this message should be specified in the coordinate frame given by the child_frame_id
# Includes the frame id of the pose parent.
std_msgs/Header header
# Frame id the pose points to. The twist is in this coordinate frame.
string child_frame_id
# Estimated pose that is typically relative to a fixed world frame.
geometry_msgs/PoseWithCovariance pose
# Estimated linear and angular velocity relative to child_frame_id.
geometry_msgs/TwistWithCovariance twist

View File

@ -0,0 +1,22 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from nav_msgs/msg/Path.msg
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/PoseStamped.idl"
#include "std_msgs/msg/Header.idl"
module nav_msgs {
module msg {
@verbatim (language="comment", text=
" An array of poses that represents a Path for a robot to follow.")
struct Path {
@verbatim (language="comment", text=
" Indicates the frame_id of the path.")
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" Array of poses to follow.")
sequence<geometry_msgs::msg::PoseStamped> poses;
};
};
};

View File

@ -0,0 +1,7 @@
# An array of poses that represents a Path for a robot to follow.
# Indicates the frame_id of the path.
std_msgs/Header header
# Array of poses to follow.
geometry_msgs/PoseStamped[] poses

View File

@ -0,0 +1,27 @@
// generated from rosidl_adapter/resource/srv.idl.em
// with input from nav_msgs/srv/SetMap.srv
// generated code does not contain a copyright notice
#include "geometry_msgs/msg/PoseWithCovarianceStamped.idl"
#include "nav_msgs/msg/OccupancyGrid.idl"
module nav_msgs {
module srv {
@verbatim (language="comment", text=
" Set a new map together with an initial pose")
struct SetMap_Request {
@verbatim (language="comment", text=
" Requested 2D map to be set.")
nav_msgs::msg::OccupancyGrid map;
@verbatim (language="comment", text=
" Estimated initial pose when setting new map.")
geometry_msgs::msg::PoseWithCovarianceStamped initial_pose;
};
struct SetMap_Response {
@verbatim (language="comment", text=
" True if the map was successfully set, false otherwise.")
boolean success;
};
};
};

View File

@ -0,0 +1,11 @@
# Set a new map together with an initial pose
# Requested 2D map to be set.
nav_msgs/OccupancyGrid map
# Estimated initial pose when setting new map.
geometry_msgs/PoseWithCovarianceStamped initial_pose
---
# True if the map was successfully set, false otherwise.
bool success

View File

@ -0,0 +1,98 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from sensor_msgs/msg/BatteryState.msg
// generated code does not contain a copyright notice
#include "std_msgs/msg/Header.idl"
module sensor_msgs {
module msg {
module BatteryState_Constants {
const uint8 POWER_SUPPLY_STATUS_UNKNOWN = 0;
const uint8 POWER_SUPPLY_STATUS_CHARGING = 1;
const uint8 POWER_SUPPLY_STATUS_DISCHARGING = 2;
const uint8 POWER_SUPPLY_STATUS_NOT_CHARGING = 3;
const uint8 POWER_SUPPLY_STATUS_FULL = 4;
const uint8 POWER_SUPPLY_HEALTH_UNKNOWN = 0;
const uint8 POWER_SUPPLY_HEALTH_GOOD = 1;
const uint8 POWER_SUPPLY_HEALTH_OVERHEAT = 2;
const uint8 POWER_SUPPLY_HEALTH_DEAD = 3;
const uint8 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4;
const uint8 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5;
const uint8 POWER_SUPPLY_HEALTH_COLD = 6;
const uint8 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7;
const uint8 POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8;
const uint8 POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0;
const uint8 POWER_SUPPLY_TECHNOLOGY_NIMH = 1;
const uint8 POWER_SUPPLY_TECHNOLOGY_LION = 2;
const uint8 POWER_SUPPLY_TECHNOLOGY_LIPO = 3;
const uint8 POWER_SUPPLY_TECHNOLOGY_LIFE = 4;
const uint8 POWER_SUPPLY_TECHNOLOGY_NICD = 5;
const uint8 POWER_SUPPLY_TECHNOLOGY_LIMN = 6;
};
struct BatteryState {
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" Voltage in Volts (Mandatory)")
float voltage;
@verbatim (language="comment", text=
" Temperature in Degrees Celsius (If unmeasured NaN)")
float temperature;
@verbatim (language="comment", text=
" Negative when discharging (A) (If unmeasured NaN)")
float current;
@verbatim (language="comment", text=
" Current charge in Ah (If unmeasured NaN)")
float charge;
@verbatim (language="comment", text=
" Capacity in Ah (last full capacity) (If unmeasured NaN)")
float capacity;
@verbatim (language="comment", text=
" Capacity in Ah (design capacity) (If unmeasured NaN)")
float design_capacity;
@verbatim (language="comment", text=
" Charge percentage on 0 to 1 range (If unmeasured NaN)")
float percentage;
@verbatim (language="comment", text=
" The charging status as reported. Values defined above")
uint8 power_supply_status;
@verbatim (language="comment", text=
" The battery health metric. Values defined above")
uint8 power_supply_health;
@verbatim (language="comment", text=
" The battery chemistry. Values defined above")
uint8 power_supply_technology;
@verbatim (language="comment", text=
" True if the battery is present")
boolean present;
@verbatim (language="comment", text=
" An array of individual cell voltages for each cell in the pack" "\n"
" If individual voltages unknown but number of cells known set each to NaN")
sequence<float> cell_voltage;
@verbatim (language="comment", text=
" An array of individual cell temperatures for each cell in the pack" "\n"
" If individual temperatures unknown but number of cells known set each to NaN")
sequence<float> cell_temperature;
@verbatim (language="comment", text=
" The location into which the battery is inserted. (slot number or plug)")
string location;
@verbatim (language="comment", text=
" The best approximation of the battery serial number")
string serial_number;
};
};
};

View File

@ -0,0 +1,52 @@
# Constants are chosen to match the enums in the linux kernel
# defined in include/linux/power_supply.h as of version 3.7
# The one difference is for style reasons the constants are
# all uppercase not mixed case.
# Power supply status constants
uint8 POWER_SUPPLY_STATUS_UNKNOWN = 0
uint8 POWER_SUPPLY_STATUS_CHARGING = 1
uint8 POWER_SUPPLY_STATUS_DISCHARGING = 2
uint8 POWER_SUPPLY_STATUS_NOT_CHARGING = 3
uint8 POWER_SUPPLY_STATUS_FULL = 4
# Power supply health constants
uint8 POWER_SUPPLY_HEALTH_UNKNOWN = 0
uint8 POWER_SUPPLY_HEALTH_GOOD = 1
uint8 POWER_SUPPLY_HEALTH_OVERHEAT = 2
uint8 POWER_SUPPLY_HEALTH_DEAD = 3
uint8 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4
uint8 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5
uint8 POWER_SUPPLY_HEALTH_COLD = 6
uint8 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7
uint8 POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8
# Power supply technology (chemistry) constants
uint8 POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0
uint8 POWER_SUPPLY_TECHNOLOGY_NIMH = 1
uint8 POWER_SUPPLY_TECHNOLOGY_LION = 2
uint8 POWER_SUPPLY_TECHNOLOGY_LIPO = 3
uint8 POWER_SUPPLY_TECHNOLOGY_LIFE = 4
uint8 POWER_SUPPLY_TECHNOLOGY_NICD = 5
uint8 POWER_SUPPLY_TECHNOLOGY_LIMN = 6
std_msgs/Header header
float32 voltage # Voltage in Volts (Mandatory)
float32 temperature # Temperature in Degrees Celsius (If unmeasured NaN)
float32 current # Negative when discharging (A) (If unmeasured NaN)
float32 charge # Current charge in Ah (If unmeasured NaN)
float32 capacity # Capacity in Ah (last full capacity) (If unmeasured NaN)
float32 design_capacity # Capacity in Ah (design capacity) (If unmeasured NaN)
float32 percentage # Charge percentage on 0 to 1 range (If unmeasured NaN)
uint8 power_supply_status # The charging status as reported. Values defined above
uint8 power_supply_health # The battery health metric. Values defined above
uint8 power_supply_technology # The battery chemistry. Values defined above
bool present # True if the battery is present
float32[] cell_voltage # An array of individual cell voltages for each cell in the pack
# If individual voltages unknown but number of cells known set each to NaN
float32[] cell_temperature # An array of individual cell temperatures for each cell in the pack
# If individual temperatures unknown but number of cells known set each to NaN
string location # The location into which the battery is inserted. (slot number or plug)
string serial_number # The best approximation of the battery serial number

View File

@ -0,0 +1,156 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from sensor_msgs/msg/CameraInfo.msg
// generated code does not contain a copyright notice
#include "sensor_msgs/msg/RegionOfInterest.idl"
#include "std_msgs/msg/Header.idl"
module sensor_msgs {
module msg {
typedef double double__9[9];
typedef double double__12[12];
@verbatim (language="comment", text=
" This message defines meta information for a camera. It should be in a" "\n"
" camera namespace on topic \"camera_info\" and accompanied by up to five" "\n"
" image topics named:" "\n"
"" "\n"
" image_raw - raw data from the camera driver, possibly Bayer encoded" "\n"
" image - monochrome, distorted" "\n"
" image_color - color, distorted" "\n"
" image_rect - monochrome, rectified" "\n"
" image_rect_color - color, rectified" "\n"
"" "\n"
" The image_pipeline contains packages (image_proc, stereo_image_proc)" "\n"
" for producing the four processed image topics from image_raw and" "\n"
" camera_info. The meaning of the camera parameters are described in" "\n"
" detail at http://www.ros.org/wiki/image_pipeline/CameraInfo." "\n"
"" "\n"
" The image_geometry package provides a user-friendly interface to" "\n"
" common operations using this meta information. If you want to, e.g.," "\n"
" project a 3d point into image coordinates, we strongly recommend" "\n"
" using image_geometry." "\n"
"" "\n"
" If the camera is uncalibrated, the matrices D, K, R, P should be left" "\n"
" zeroed out. In particular, clients may assume that K == 0.0" "\n"
" indicates an uncalibrated camera.")
struct CameraInfo {
@verbatim (language="comment", text=
"######################################################################" "\n"
" Image acquisition info #" "\n"
"######################################################################" "\n"
" Time of image acquisition, camera coordinate frame ID" "\n"
" Header timestamp should be acquisition time of image" "\n"
" Header frame_id should be optical frame of camera" "\n"
" origin of frame should be optical center of camera" "\n"
" +x should point to the right in the image" "\n"
" +y should point down in the image" "\n"
" +z should point into the plane of the image")
std_msgs::msg::Header header;
@verbatim (language="comment", text=
"######################################################################" "\n"
" Calibration Parameters #" "\n"
"######################################################################" "\n"
" These are fixed during camera calibration. Their values will be the #" "\n"
" same in all messages until the camera is recalibrated. Note that #" "\n"
" self-calibrating systems may \"recalibrate\" frequently. #" "\n"
" #" "\n"
" The internal parameters can be used to warp a raw (distorted) image #" "\n"
" to: #" "\n"
" 1. An undistorted image (requires D and K) #" "\n"
" 2. A rectified image (requires D, K, R) #" "\n"
" The projection matrix P projects 3D points into the rectified image.#" "\n"
"######################################################################" "\n"
" The image dimensions with which the camera was calibrated." "\n"
" Normally this will be the full camera resolution in pixels.")
uint32 height;
uint32 width;
@verbatim (language="comment", text=
" The distortion model used. Supported models are listed in" "\n"
" sensor_msgs/distortion_models.hpp. For most cameras, \"plumb_bob\" - a" "\n"
" simple model of radial and tangential distortion - is sufficent.")
string distortion_model;
@verbatim (language="comment", text=
" The distortion parameters, size depending on the distortion model." "\n"
" For \"plumb_bob\", the 5 parameters are: (k1, k2, t1, t2, k3).")
sequence<double> d;
@verbatim (language="comment", text=
" Intrinsic camera matrix for the raw (distorted) images." "\n"
" [fx 0 cx]" "\n"
" K = [ 0 fy cy]" "\n"
" [ 0 0 1]" "\n"
" Projects 3D points in the camera coordinate frame to 2D pixel" "\n"
" coordinates using the focal lengths (fx, fy) and principal point" "\n"
" (cx, cy)." "\n"
" 3x3 row-major matrix")
double__9 k;
@verbatim (language="comment", text=
" Rectification matrix (stereo cameras only)" "\n"
" A rotation matrix aligning the camera coordinate system to the ideal" "\n"
" stereo image plane so that epipolar lines in both stereo images are" "\n"
" parallel." "\n"
" 3x3 row-major matrix")
double__9 r;
@verbatim (language="comment", text=
" Projection/camera matrix" "\n"
" [fx' 0 cx' Tx]" "\n"
" P = [ 0 fy' cy' Ty]" "\n"
" [ 0 0 1 0]" "\n"
" By convention, this matrix specifies the intrinsic (camera) matrix" "\n"
" of the processed (rectified) image. That is, the left 3x3 portion" "\n"
" is the normal camera intrinsic matrix for the rectified image." "\n"
" It projects 3D points in the camera coordinate frame to 2D pixel" "\n"
" coordinates using the focal lengths (fx', fy') and principal point" "\n"
" (cx', cy') - these may differ from the values in K." "\n"
" For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will" "\n"
" also have R = the identity and P[1:3,1:3] = K." "\n"
" For a stereo pair, the fourth column [Tx Ty 0]' is related to the" "\n"
" position of the optical center of the second camera in the first" "\n"
" camera's frame. We assume Tz = 0 so both cameras are in the same" "\n"
" stereo image plane. The first camera always has Tx = Ty = 0. For" "\n"
" the right (second) camera of a horizontal stereo pair, Ty = 0 and" "\n"
" Tx = -fx' * B, where B is the baseline between the cameras." "\n"
" Given a 3D point [X Y Z]', the projection (x, y) of the point onto" "\n"
" the rectified image is given by:" "\n"
" [u v w]' = P * [X Y Z 1]'" "\n"
" x = u / w" "\n"
" y = v / w" "\n"
" This holds for both images of a stereo pair." "\n"
" 3x4 row-major matrix")
double__12 p;
@verbatim (language="comment", text=
"######################################################################" "\n"
" Operational Parameters #" "\n"
"######################################################################" "\n"
" These define the image region actually captured by the camera #" "\n"
" driver. Although they affect the geometry of the output image, they #" "\n"
" may be changed freely without recalibrating the camera. #" "\n"
"######################################################################" "\n"
" Binning refers here to any camera setting which combines rectangular" "\n"
" neighborhoods of pixels into larger \"super-pixels.\" It reduces the" "\n"
" resolution of the output image to" "\n"
" (width / binning_x) x (height / binning_y)." "\n"
" The default values binning_x = binning_y = 0 is considered the same" "\n"
" as binning_x = binning_y = 1 (no subsampling).")
uint32 binning_x;
uint32 binning_y;
@verbatim (language="comment", text=
" Region of interest (subwindow of full camera resolution), given in" "\n"
" full resolution (unbinned) image coordinates. A particular ROI" "\n"
" always denotes the same window of pixels on the camera sensor," "\n"
" regardless of binning settings." "\n"
" The default setting of roi (all values 0) is considered the same as" "\n"
" full resolution (roi.width = width, roi.height = height).")
sensor_msgs::msg::RegionOfInterest roi;
};
};
};

View File

@ -0,0 +1,131 @@
# This message defines meta information for a camera. It should be in a
# camera namespace on topic "camera_info" and accompanied by up to five
# image topics named:
#
# image_raw - raw data from the camera driver, possibly Bayer encoded
# image - monochrome, distorted
# image_color - color, distorted
# image_rect - monochrome, rectified
# image_rect_color - color, rectified
#
# The image_pipeline contains packages (image_proc, stereo_image_proc)
# for producing the four processed image topics from image_raw and
# camera_info. The meaning of the camera parameters are described in
# detail at http://www.ros.org/wiki/image_pipeline/CameraInfo.
#
# The image_geometry package provides a user-friendly interface to
# common operations using this meta information. If you want to, e.g.,
# project a 3d point into image coordinates, we strongly recommend
# using image_geometry.
#
# If the camera is uncalibrated, the matrices D, K, R, P should be left
# zeroed out. In particular, clients may assume that K[0] == 0.0
# indicates an uncalibrated camera.
#######################################################################
# Image acquisition info #
#######################################################################
# Time of image acquisition, camera coordinate frame ID
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of camera
# +x should point to the right in the image
# +y should point down in the image
# +z should point into the plane of the image
#######################################################################
# Calibration Parameters #
#######################################################################
# These are fixed during camera calibration. Their values will be the #
# same in all messages until the camera is recalibrated. Note that #
# self-calibrating systems may "recalibrate" frequently. #
# #
# The internal parameters can be used to warp a raw (distorted) image #
# to: #
# 1. An undistorted image (requires D and K) #
# 2. A rectified image (requires D, K, R) #
# The projection matrix P projects 3D points into the rectified image.#
#######################################################################
# The image dimensions with which the camera was calibrated.
# Normally this will be the full camera resolution in pixels.
uint32 height
uint32 width
# The distortion model used. Supported models are listed in
# sensor_msgs/distortion_models.hpp. For most cameras, "plumb_bob" - a
# simple model of radial and tangential distortion - is sufficent.
string distortion_model
# The distortion parameters, size depending on the distortion model.
# For "plumb_bob", the 5 parameters are: (k1, k2, t1, t2, k3).
float64[] d
# Intrinsic camera matrix for the raw (distorted) images.
# [fx 0 cx]
# K = [ 0 fy cy]
# [ 0 0 1]
# Projects 3D points in the camera coordinate frame to 2D pixel
# coordinates using the focal lengths (fx, fy) and principal point
# (cx, cy).
float64[9] k # 3x3 row-major matrix
# Rectification matrix (stereo cameras only)
# A rotation matrix aligning the camera coordinate system to the ideal
# stereo image plane so that epipolar lines in both stereo images are
# parallel.
float64[9] r # 3x3 row-major matrix
# Projection/camera matrix
# [fx' 0 cx' Tx]
# P = [ 0 fy' cy' Ty]
# [ 0 0 1 0]
# By convention, this matrix specifies the intrinsic (camera) matrix
# of the processed (rectified) image. That is, the left 3x3 portion
# is the normal camera intrinsic matrix for the rectified image.
# It projects 3D points in the camera coordinate frame to 2D pixel
# coordinates using the focal lengths (fx', fy') and principal point
# (cx', cy') - these may differ from the values in K.
# For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will
# also have R = the identity and P[1:3,1:3] = K.
# For a stereo pair, the fourth column [Tx Ty 0]' is related to the
# position of the optical center of the second camera in the first
# camera's frame. We assume Tz = 0 so both cameras are in the same
# stereo image plane. The first camera always has Tx = Ty = 0. For
# the right (second) camera of a horizontal stereo pair, Ty = 0 and
# Tx = -fx' * B, where B is the baseline between the cameras.
# Given a 3D point [X Y Z]', the projection (x, y) of the point onto
# the rectified image is given by:
# [u v w]' = P * [X Y Z 1]'
# x = u / w
# y = v / w
# This holds for both images of a stereo pair.
float64[12] p # 3x4 row-major matrix
#######################################################################
# Operational Parameters #
#######################################################################
# These define the image region actually captured by the camera #
# driver. Although they affect the geometry of the output image, they #
# may be changed freely without recalibrating the camera. #
#######################################################################
# Binning refers here to any camera setting which combines rectangular
# neighborhoods of pixels into larger "super-pixels." It reduces the
# resolution of the output image to
# (width / binning_x) x (height / binning_y).
# The default values binning_x = binning_y = 0 is considered the same
# as binning_x = binning_y = 1 (no subsampling).
uint32 binning_x
uint32 binning_y
# Region of interest (subwindow of full camera resolution), given in
# full resolution (unbinned) image coordinates. A particular ROI
# always denotes the same window of pixels on the camera sensor,
# regardless of binning settings.
# The default setting of roi (all values 0) is considered the same as
# full resolution (roi.width = width, roi.height = height).
RegionOfInterest roi

View File

@ -0,0 +1,37 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from sensor_msgs/msg/ChannelFloat32.msg
// generated code does not contain a copyright notice
module sensor_msgs {
module msg {
@verbatim (language="comment", text=
" This message is used by the PointCloud message to hold optional data" "\n"
" associated with each point in the cloud. The length of the values" "\n"
" array should be the same as the length of the points array in the" "\n"
" PointCloud, and each value should be associated with the corresponding" "\n"
" point." "\n"
"" "\n"
" Channel names in existing practice include:" "\n"
" \"u\", \"v\" - row and column (respectively) in the left stereo image." "\n"
" This is opposite to usual conventions but remains for" "\n"
" historical reasons. The newer PointCloud2 message has no" "\n"
" such problem." "\n"
" \"rgb\" - For point clouds produced by color stereo cameras. uint8" "\n"
" (R,G,B) values packed into the least significant 24 bits," "\n"
" in order." "\n"
" \"intensity\" - laser or pixel intensity." "\n"
" \"distance\"")
struct ChannelFloat32 {
@verbatim (language="comment", text=
" The channel name should give semantics of the channel (e.g." "\n"
" \"intensity\" instead of \"value\").")
string name;
@verbatim (language="comment", text=
" The values array should be 1-1 with the elements of the associated" "\n"
" PointCloud.")
sequence<float> values;
};
};
};

View File

@ -0,0 +1,24 @@
# This message is used by the PointCloud message to hold optional data
# associated with each point in the cloud. The length of the values
# array should be the same as the length of the points array in the
# PointCloud, and each value should be associated with the corresponding
# point.
#
# Channel names in existing practice include:
# "u", "v" - row and column (respectively) in the left stereo image.
# This is opposite to usual conventions but remains for
# historical reasons. The newer PointCloud2 message has no
# such problem.
# "rgb" - For point clouds produced by color stereo cameras. uint8
# (R,G,B) values packed into the least significant 24 bits,
# in order.
# "intensity" - laser or pixel intensity.
# "distance"
# The channel name should give semantics of the channel (e.g.
# "intensity" instead of "value").
string name
# The values array should be 1-1 with the elements of the associated
# PointCloud.
float32[] values

View File

@ -0,0 +1,32 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from sensor_msgs/msg/CompressedImage.msg
// generated code does not contain a copyright notice
#include "std_msgs/msg/Header.idl"
module sensor_msgs {
module msg {
@verbatim (language="comment", text=
" This message contains a compressed image.")
struct CompressedImage {
@verbatim (language="comment", text=
" Header timestamp should be acquisition time of image" "\n"
" Header frame_id should be optical frame of camera" "\n"
" origin of frame should be optical center of cameara" "\n"
" +x should point to the right in the image" "\n"
" +y should point down in the image" "\n"
" +z should point into to plane of the image")
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" Specifies the format of the data" "\n"
" Acceptable values:" "\n"
" jpeg, png, tiff")
string format;
@verbatim (language="comment", text=
" Compressed image buffer")
sequence<uint8> data;
};
};
};

View File

@ -0,0 +1,14 @@
# This message contains a compressed image.
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
string format # Specifies the format of the data
# Acceptable values:
# jpeg, png, tiff
uint8[] data # Compressed image buffer

View File

@ -0,0 +1,30 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from sensor_msgs/msg/FluidPressure.msg
// generated code does not contain a copyright notice
#include "std_msgs/msg/Header.idl"
module sensor_msgs {
module msg {
@verbatim (language="comment", text=
" Single pressure reading. This message is appropriate for measuring the" "\n"
" pressure inside of a fluid (air, water, etc). This also includes" "\n"
" atmospheric or barometric pressure." "\n"
"" "\n"
" This message is not appropriate for force/pressure contact sensors.")
struct FluidPressure {
@verbatim (language="comment", text=
" timestamp of the measurement" "\n"
" frame_id is the location of the pressure sensor")
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" Absolute pressure reading in Pascals.")
double fluid_pressure;
@verbatim (language="comment", text=
" 0 is interpreted as variance unknown")
double variance;
};
};
};

View File

@ -0,0 +1,12 @@
# Single pressure reading. This message is appropriate for measuring the
# pressure inside of a fluid (air, water, etc). This also includes
# atmospheric or barometric pressure.
#
# This message is not appropriate for force/pressure contact sensors.
std_msgs/Header header # timestamp of the measurement
# frame_id is the location of the pressure sensor
float64 fluid_pressure # Absolute pressure reading in Pascals.
float64 variance # 0 is interpreted as variance unknown

View File

@ -0,0 +1,38 @@
// generated from rosidl_adapter/resource/msg.idl.em
// with input from sensor_msgs/msg/Illuminance.msg
// generated code does not contain a copyright notice
#include "std_msgs/msg/Header.idl"
module sensor_msgs {
module msg {
@verbatim (language="comment", text=
" Single photometric illuminance measurement. Light should be assumed to be" "\n"
" measured along the sensor's x-axis (the area of detection is the y-z plane)." "\n"
" The illuminance should have a 0 or positive value and be received with" "\n"
" the sensor's +X axis pointing toward the light source." "\n"
"" "\n"
" Photometric illuminance is the measure of the human eye's sensitivity of the" "\n"
" intensity of light encountering or passing through a surface." "\n"
"" "\n"
" All other Photometric and Radiometric measurements should not use this message." "\n"
" This message cannot represent:" "\n"
" - Luminous intensity (candela/light source output)" "\n"
" - Luminance (nits/light output per area)" "\n"
" - Irradiance (watt/area), etc.")
struct Illuminance {
@verbatim (language="comment", text=
" timestamp is the time the illuminance was measured" "\n"
" frame_id is the location and direction of the reading")
std_msgs::msg::Header header;
@verbatim (language="comment", text=
" Measurement of the Photometric Illuminance in Lux.")
double illuminance;
@verbatim (language="comment", text=
" 0 is interpreted as variance unknown")
double variance;
};
};
};

View File

@ -0,0 +1,20 @@
# Single photometric illuminance measurement. Light should be assumed to be
# measured along the sensor's x-axis (the area of detection is the y-z plane).
# The illuminance should have a 0 or positive value and be received with
# the sensor's +X axis pointing toward the light source.
#
# Photometric illuminance is the measure of the human eye's sensitivity of the
# intensity of light encountering or passing through a surface.
#
# All other Photometric and Radiometric measurements should not use this message.
# This message cannot represent:
# - Luminous intensity (candela/light source output)
# - Luminance (nits/light output per area)
# - Irradiance (watt/area), etc.
std_msgs/Header header # timestamp is the time the illuminance was measured
# frame_id is the location and direction of the reading
float64 illuminance # Measurement of the Photometric Illuminance in Lux.
float64 variance # 0 is interpreted as variance unknown

Some files were not shown because too many files have changed in this diff Show More