传感器配置
传感器定义在代理对象的 sensors 数组中。每个传感器都使用列表中的一个新字典进行定义。
"sensors":[
{
"sensor_name": "FrontCamera",
"sensor_type": "RGBCamera",
"socket": "socket name",
"location": [1.0, 2.0, 3.0],
"rotation": [1.0, 2.0, 3.0],
"Hz": 5,
"lcm_channel": "channel_name",
"ros_publish": "False",
"configuration": {
"array of sensor configurations"
}
}
]
传感器放置位置
传感器放置位置可以通过以下几种方式定义:
1.提供一个插槽名称
这将把传感器放置在指定的插槽中。
{
"sensor_type": "RGBCamera",
"socket": "CameraSocket"
}
2.提供插槽、位置和/或旋转参数
传感器将根据指定的位置和旋转参数相对于插槽进行偏移放置。旋转参数为[roll, pitch, yaw]度,绕XYZ固定轴旋转,即 。
{
"sensor_type": "RGBCamera",
"socket": "CameraSocket"
"location": [1.0, 2.0, 3.0],
"rotation": [1.0, 2.0, 3.0],
}
3.只需提供位置和/或旋转角度即可
传感器将放置在给定的坐标处,相对于代理的根节点进行偏移。
{
"sensor_type": "RGBCamera",
"location": [1.0, 2.0, 3.0],
"rotation": [1.0, 2.0, 3.0]
}
传感器采样率
传感器将以指定的采样率(单位为 Hz)进行采样。请注意,此值必须小于 ticks_per_sec,并且最好是 ticks_per_sec 的倍数。有关 ticks_per_sec 的更多信息,请参阅帧速率部分。
{
"sensor_type": "RGBCamera",
"Hz": 20
}
发布消息
HoloOcean 支持向 LCM 发布传感器消息和数据。此外,还提供 HoloOcean-ROS2 桥接器包。
要向 LCM 发布传感器数据,请指定要发布的类型和要发布的通道:
{
"sensor_type": "RGBCamera",
"lcm_channel": "CAMERA"
}
{
"sensor_type": "RGBCamera",
"ros_publish": "True"
}
有关 ROS2 桥接器的更多信息,请参阅使用 ROS2 Bridge 发布数据。
配置块
配置块的内容与传感器密切相关。配置块会原封不动地传递给传感器,由传感器进行解析。
例如,RGBCamera 的文档字符串指出它接受 CaptureWidth 和 CaptureHeight 参数,因此一个示例传感器配置如下:
"sensors": [
{
"sensor_name": "RBGCamera",
"sensor_type": "RGBCamera",
"socket": "CameraSocket",
"configuration": {
"CaptureHeight": 1920,
"CaptureWidth": 1080
}
}
]