1.std _ msgs
该类型是 ROS 内置的标准消息类型,是最基础的消息类型
ROS Message Types |
-
- Bool
-
- Byte
-
- ByteMultiArray
-
- Char
-
- ColorRGBA
-
- Duration
-
- Empty
-
- Float32
-
- Float32MultiArray
-
- Float64
-
- Float64MultiArray
-
- Header
#高级戳记数据类型的标准元数据。
#这通常用于通信时间戳数据
#在特定的坐标系中。
uint32 seq序列号
time stamp时间戳
string frame_id参考坐标系
-
- Int16
-
- Int16MultiArray
-
- Int32
-
- Int32MultiArray
-
- Int64
-
- Int64MultiArray
-
- Int8
-
- Int8MultiArray
-
- MultiArrayDimension
-
- MultiArrayLayout
-
- String
-
- Time
-
- UInt16
-
- UInt16MultiArray
-
- UInt32
-
- UInt32MultiArray
-
- UInt64
-
- UInt64MultiArray
-
- UInt8
-
- UInt8MultiArray
2.geometry_msgs
主要包含一些与机器人运动控制和定位姿态相关的消息类型
ROS Message Types |
-
- Accel
-
- AccelStamped
-
- AccelWithCovariance
-
- AccelWithCovarianceStamped
-
- Inertia
-
- InertiaStamped
-
- Point
#这包含了一个点在自由空间中的位置
float64 x
float64 y
float64 z
//一般情况下推荐使用point类型,也就是64位的定义方式,可以促进互操作性(可能ros中大多数函数的接口是用64位定义的)
-
- Point32
#这包含了一个点在自由空间中的位置(32位精度)。
#建议尽可能使用Point,而不是Point32。
#这个建议是为了促进互操作性。
#此消息的设计目的是在发送时占用更少的空间
#譬如在有许多点(大规模点云)情况下使用Point32
float32 x
float32 y
float32 z
-
- PointStamped
#这表示一个有参考坐标帧和时间戳的点
std_msgs/Header header
geometry_msgs/Point point
-
- Polygon
-
- PolygonStamped
-
- Pose
#自由空间中的姿态表示,由位置和方向组成。
geometry_msgs/Point position
geometry_msgs/Quaternion orientation
-
- Pose2D
#这表示了一个2D流形上的位置和方向。
#弃用,请使用完整的3D姿势
#一般来说,我们的建议是使用所有内容的完整3D表示,对于2D特定应用程序,在平面上进行适当的投影以进行计算,但最好在处理过程中保留3D信息。(主要原因在于当使用两种接口去实现内容的时候,3D可以转2D,但2D无法转3D)
float64 x
float64 y
float64 theta
-
- PoseArray
#一个带有全局引用头的姿势数组。
std_msgs/Header header
geometry_msgs/Pose[] poses
-
- PoseStamped
#一个带有参考坐标帧和时间戳的位姿
std_msgs/Header header
geometry_msgs/Pose pose
-
- PoseWithCovariance
#这代表了一个不确定的自由空间中的位姿。
# 6x6协方差矩阵的行主序表示
#方向参数使用固定轴表示。
#参数依次为:
# (x, y, z,绕x轴旋转,绕y轴旋转,绕z轴旋转)
geometry_msgs/Pose pose
float64[36] covariance
-
- PoseWithCovarianceStamped
#这表示一个带有参考坐标帧和时间戳的估计的位姿
std_msgs/Header header
geometry_msgs/PoseWithCovariance pose
-
- Quaternion
#这表示一个四元数形式的自由空间方向。
float64 x
float64 y
float64 z
float64 w
-
- QuaternionStamped
#这表示一个带有参考坐标帧和时间戳的方向。
std_msgs/Header header
geometry_msgs/Quaternion quaternion
-
- Transform
#这表示了自由空间中两个坐标系之间的变换。
geometry_msgs/Vector3 translation
geometry_msgs/Quaternion rotation
-
- TransformStamped
#这代表了父级坐标系id到子级坐标系id之间的变换。
#此消息主要被用于tf包。
std_msgs/Header header
string child_frame_id
geometry_msgs/Transform transform
-
- Twist
#这表示自由空间中的速度,分解成线性部分和角部分。
geometry_msgs/Vector3 linear
geometry_msgs/Vector3 angular
-
- TwistStamped
#带有参考坐标帧和时间戳的速度
std_msgs/Header header
geometry_msgs/Twist twist
-
- TwistWithCovariance
#这表示在不确定的自由空间中的速度
#6x6协方差矩阵的行主序表示
#方向参数使用固定轴表示。
#参数依次为:
# (x, y, z,绕x轴旋转,绕y轴旋转,绕z轴旋转)
geometry_msgs/Twist twist
float64[36] covariance
-
- TwistWithCovarianceStamped
#这表示一个带有参考坐标帧和时间戳估计的速度。
std_msgs/Header header
geometry_msgs/TwistWithCovariance twist
-
- Vector3
#表示自由空间中的向量。
#它只是代表一个方向。因此,它没有有意义的应用一个转换到它(例如,当应用一个通用刚性转换到Vector3, tf2将只应用旋转)。如果希望数据也是可转换的,请使用 geometry_msgs/Point消息代替。
float64 x
float64 y
float64 z
-
- Vector3Stamped
#这表示了一个参考坐标帧和时间戳的Vector3
std_msgs/Header header
geometry_msgs/Vector3 vecto
-
- Wrench
-
- WrenchStamped
3.nav_msg
主要包含一些与导航相关的消息类型
ROS Message Types |
-
- GridCells
# 2D网格中的单元格数组
std_msgs/Header header
float32 cell_width
float32 cell_height
geometry_msgs/Point[] cells
-
- MapMetaData
#这包含了关于占据网格特征的基本信息
#加载地图的时间
#地图分辨率[m/cell]
#地图的宽度
#地图的高度
#地图的起始[m, m, rad]。这是在地图中 cell (0,0)真实世界的位姿
time map_load_time
float32 resolution
uint32 width
uint32 height
geometry_msgs/Pose origin
-
- OccupancyGrid
#这表示一个2D网格地图,其中每个单元格代表占据的概率
#头信息
#地图元数据
#地图数据,以行主序优先,从(0,0)开始。占据概率在[0,100]范围内。未知是-1。
std_msgs/Header header
nav_msgs/MapMetaData info
int8[] data
-
- Odometry
#这表示在自由空间中的位置和速度的估计。
#这条消息中的Pose应该在header.frame_id给出的坐标帧中指定。
#该消息中的twist应该在child_frame_id给出的坐标帧中指定
std_msgs/Header header
string child_frame_id
geometry_msgs/PoseWithCovariance pose
geometry_msgs/TwistWithCovariance twist
-
- Path
#一个位姿数组,表示机器人要遵循的路径
std_msgs/Header header
geometry_msgs/PoseStamped[] poses
ROS Service Types文章来源:https://www.toymoban.com/news/detail-433009.html |
-
- GetMap
-
- GetPlan
-
- LoadMap
-
- SetMap
ROS Action Types |
-
- GetMap
4.sensor_msgs
主要包含一些与传感器信息读取相关的消息类
ROS Message Types |
-
- BatteryState
-
- CameraInfo
-
- ChannelFloat32
#这个消息被PointCloud消息用来保存可选数据,与云中的每个点相关联。数组values的长度应该与点云中点的数组的长度相同,values中每个值与点云中一个点相对应。
目前常见的通道名称包括
"u", "v":图像的行列
"rgb":uint8(R, G, B),共24bits;
"intensity":激光或者像素密度
"distance":距离
通道名称应该给出通道具体的语义,如 "intensity密度" 而不是 "value值".
string name
float32[] values
-
- CompressedImage
-
- FluidPressure
-
- Illuminance
-
- Image
-
- Imu
#这是一个从IMU(惯性测量单元)保存数据的消息
#加速度应该是m/s^2(不是g’s),旋转速度应该是rad/sec
#如果测量的协方差是已知的,它应该被填写(如果你所知道的只是每次测量的方差,例如从数据表中,只需将它们沿对角线放置)
#一个全为0的协方差矩阵将被解释为“协方差未知”,并要使用这个协方差数据,那么必须假设或从其他来源获得。
#如果你没有对其中一个数据元素的估计(例如,你的IMU没有产生一个方向估计),请将相关协方差矩阵的元素0设置为-1
#如果您正在解释此消息,请检查每个协方差矩阵的第一个元素的值是否为-1,并忽略相关的估计。
std_msgs/Header header
geometry_msgs/Quaternion orientation
float64[9] orientation_covariance
geometry_msgs/Vector3 angular_velocity
float64[9] angular_velocity_covariance
geometry_msgs/Vector3 linear_acceleration
float64[9] linear_acceleration_covariance
-
- JointState
-
- Joy
-
- JoyFeedback
-
- JoyFeedbackArray
-
- LaserEcho
-
- LaserScan
#平面激光测距仪单次扫描
#如果你有另一个具有不同行为的测距设备(例如声纳# array),请找到或创建一个不同的消息,因为应用程序将对这些数据做出相当精确的假设
std_msgs/Header header#头部的时间戳是扫描中第一条射线的获取时间。
float32 angle_min#扫描起始角度[rad]
float32 angle_max#扫描结束角度[rad]
float32 angle_increment#测量之间的角度步长[rad]
float32 time_increment#测量间隔时间步长[秒]-如果您的扫描仪正在移动,这将用于3d点的插值位置
float32 scan_time#扫描间隔时间[秒]
float32 range_min#最小范围[m]
float32 range_max#最大范围[m]
float32[] ranges#范围数据[m](注意:值< range_min或> range_max应被丢弃)
float32[] intensities#密度数据[设备特定的单位]。如果你的设备不提供密度,请离开空数组。(这个具体不太清楚)
-
- MagneticField
-
- MultiDOFJointState
-
- MultiEchoLaserScan
-
- NavSatFix
-
- NavSatStatus
-
- PointCloud
#这个消息包含一个3d点的集合,加上可选的附加关于每个点的信息。
#传感器数据采集时间,坐标帧ID。
# 3d点数组每个Point32应该被解释为一个3d点(在头文件中给定的帧中)。
#每个通道应该有相同数量的元素点数组,每个通道中的数据应与每个点1:1对应。常用的通道名称在ChannelFloat32.msg中列出。
std_msgs/Header header
geometry_msgs/Point32[] points
sensor_msgs/ChannelFloat32[] channels
-
- PointCloud2
#该消息包含一个n维点的集合,其中可能包含额外的信息,如法线、强度等。点数据存储为二进制blob,其布局由“fields”数组的内容描述。
点云数据可以被组织为2d(类似图像)或1d(无序)。组织为2d图像的点云可以由相机深度传感器如立体声或飞行时间产生。
#传感器数据采集时间,坐标帧ID (3d点)。
std_msgs/Header header
#点云的2D结构。如果云是无序的,高度为1,宽度为点云的长度。
uint32 height
uint32 width
#描述通道及其在二进制数据blob中的布局。
sensor_msgs/PointField[] fields
bool is_bigendian#这个数据是双端数据吗?
uint32 point_step#点的长度(以字节为单位)
uint32 row_step#一行长度(以字节为单位)
uint8[] data#实际的点数据,大小为(row_step*height)
bool is_dense如果没有无效点则为True
-
- PointField
#该消息以PointCloud2消息格式保存了一个点条目的描述。
uint8 INT8=1
uint8 UINT8=2
uint8 INT16=3
uint8 UINT16=4
uint8 INT32=5
uint8 UINT32=6
uint8 FLOAT32=7
uint8 FLOAT64=8
string name#字段名称
uint32 offset#从点结构开始的偏移量
uint8 datatype#数据类型枚举,参见上面
uint32 count#字段中有多少元素
-
- Range
-
- RegionOfInterest
-
- RelativeHumidity
-
- Temperature
-
- TimeReference
ROS Service Types |
-
- SetCameraInfo
以上均为ROS的noetic版本所列出的基本数据类型和一些里程计、导航和传感器相关的数据类型,这里将他们罗列出来方便今后学习。文章来源地址https://www.toymoban.com/news/detail-433009.html
到了这里,关于ROS相关消息类型&格式介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!