Update camera settings
This commit is contained in:
@@ -74,6 +74,50 @@ digital_twin:
|
||||
| `webots.cameras` | List of YAML configurations for connected cameras |
|
||||
| `rviz.config` | Path to the RViz configuration |
|
||||
|
||||
### D455 cameras in Webots
|
||||
|
||||
The overhead camera (`config/cameras/d455_top.yaml`) and the `patron` tool camera
|
||||
use **640×480 at 30 FPS** for RGB and depth. Nominal VGA depth horizontal FOV
|
||||
is 75°; 87° applies to HD. RGB approximates a central 4:3 crop of a 1280×800
|
||||
sensor with a 90° horizontal FOV, resulting in about 79.61°. Use the individual
|
||||
camera's 640×480 calibration for an exact RGB FOV.
|
||||
|
||||
The selected simulation depth range is 0.4–6 m with 1 mm quantization.
|
||||
These are not accuracy guarantees or the exact VGA minimum distance of a D455.
|
||||
This ideal model omits random noise, stereo matching, the IR projector,
|
||||
distortion and the physical RGB/depth offset. Webots derives vertical FOV from
|
||||
horizontal FOV and aspect ratio; it cannot be set independently.
|
||||
Matching an individual device requires its intrinsics and extrinsics.
|
||||
|
||||
The `iiwa_utils.webots_camera.WebotsCamera` plugin maintains an average 30 Hz
|
||||
cadence in simulation time without accumulating timestep rounding errors.
|
||||
With `basicTimeStep: 32`, frame intervals are 32 or 64 ms; uniform 33.33 ms
|
||||
intervals are impossible on this grid. Wall-clock FPS depends on simulation
|
||||
speed. The world's physics timestep does not need changing.
|
||||
|
||||
Existing image topic names are preserved:
|
||||
|
||||
| Camera | RGB (`bgra8`) | Depth (`32FC1`, metres) |
|
||||
|---|---|---|
|
||||
| Overhead | `/d455_top/image_raw/image_color` | `/d455_top/depth/image_raw/image` |
|
||||
| Tool | `/camera/color/image_color` | `/camera/depth/image` |
|
||||
|
||||
Each stream also publishes `camera_info` with the virtual camera matrix and
|
||||
matching timestamp. Depth offers `point_cloud` when subscribed: XYZ in metres
|
||||
using optical axes (X right, Y down, Z forward), with NaN for missing points.
|
||||
Frame IDs remain `d455_top_link` and `camera_optical_frame`;
|
||||
the plugin neither broadcasts TF nor aligns depth to RGB.
|
||||
|
||||
Smoke test: start `cobot run local` → **Webots simulator**, subscribe to the four
|
||||
image topics, check image dimensions, matching `CameraInfo` timestamps, and the
|
||||
average rate from frame timestamps over 10 seconds of simulation time.
|
||||
`ros2 topic hz /camera/depth/image` measures wall-clock delivery, so it can report
|
||||
less than 30 when the simulation runs slowly.
|
||||
|
||||
Sources: [D400/D455 datasheet](https://dev.realsenseai.com/download/42003/),
|
||||
[D455 RGB modes](https://support.realsenseai.com/hc/en-us/community/posts/13718098480019-How-to-resample-D455-RGB-images-from-1280-720-to-640-480),
|
||||
[Webots RangeFinder](https://cyberbotics.com/doc/reference/rangefinder).
|
||||
|
||||
### TCP gizmo in Webots
|
||||
|
||||
Select the TCP marker, translate or rotate it with the native Webots gizmo, and release the left mouse button. Holding the button only changes the preview. Releasing it submits one complete trajectory. Another drag is accepted after that trajectory finishes. An unreachable target or a colliding trajectory resets the marker to the current TCP.
|
||||
|
||||
@@ -76,6 +76,50 @@ digital_twin:
|
||||
| `webots.cameras` | Список YAML-конфигов подключённых камер |
|
||||
| `rviz.config` | Путь к конфигурации RViz |
|
||||
|
||||
### Камеры D455 в Webots
|
||||
|
||||
Верхняя камера (`config/cameras/d455_top.yaml`) и камера инструмента `patron`
|
||||
используют **640×480, 30 кадров/с** для RGB и глубины. Горизонтальный угол глубины
|
||||
для VGA — 75°; 87° относится к HD. RGB использует приближение центральной обрезки
|
||||
сенсора 1280×800 с горизонтальным углом 90° до формата 4:3: около 79,61°.
|
||||
Точный угол RGB следует получить из калибровки конкретной камеры для 640×480.
|
||||
|
||||
Глубина ограничена выбранным диапазоном симуляции 0,4–6 м, с шагом 1 мм.
|
||||
Это не гарантия точности и не точное значение минимальной дистанции D455 в VGA.
|
||||
Модель идеальная: без случайного шума, стереосопоставления, ИК-проектора,
|
||||
дисторсии и реального смещения между RGB и depth. Вертикальный угол Webots
|
||||
вычисляет из горизонтального угла и соотношения сторон; он не задаётся независимо.
|
||||
Для воспроизведения конкретного экземпляра нужны его intrinsics и extrinsics.
|
||||
|
||||
Плагин `iiwa_utils.webots_camera.WebotsCamera` поддерживает среднюю частоту
|
||||
30 Гц по времени симуляции, не накапливая округление до шага Webots.
|
||||
При `basicTimeStep: 32` интервалы составляют 32 или 64 мс; равномерные интервалы
|
||||
33,33 мс на такой сетке невозможны. Частота по настенным часам зависит от скорости
|
||||
симуляции. Физический шаг мира менять не требуется.
|
||||
|
||||
Имена топиков изображений сохранены:
|
||||
|
||||
| Камера | RGB (`bgra8`) | Глубина (`32FC1`, метры) |
|
||||
|---|---|---|
|
||||
| Верхняя | `/d455_top/image_raw/image_color` | `/d455_top/depth/image_raw/image` |
|
||||
| Инструмент | `/camera/color/image_color` | `/camera/depth/image` |
|
||||
|
||||
Рядом публикуется `camera_info` с матрицей виртуальной камеры и той же временной
|
||||
меткой. Для глубины доступен `point_cloud` при наличии подписчиков: XYZ в метрах
|
||||
в оптических осях (X вправо, Y вниз, Z вперёд), отсутствующие точки — NaN.
|
||||
Сохранены идентификаторы кадров `d455_top_link` и `camera_optical_frame`;
|
||||
плагин не публикует TF и не выполняет совмещение depth с RGB.
|
||||
|
||||
Проверка после `cobot run local` → **Webots simulator**: подписаться на четыре
|
||||
топика, проверить размеры `Image`, совпадение временных меток с `CameraInfo`
|
||||
и среднюю частоту по меткам кадров за 10 секунд модельного времени.
|
||||
`ros2 topic hz /camera/depth/image` измеряет доставку по настенным часам,
|
||||
поэтому при медленной симуляции значение может быть ниже 30.
|
||||
|
||||
Источники: [спецификация D400/D455](https://dev.realsenseai.com/download/42003/),
|
||||
[режимы RGB D455](https://support.realsenseai.com/hc/en-us/community/posts/13718098480019-How-to-resample-D455-RGB-images-from-1280-720-to-640-480),
|
||||
[Webots RangeFinder](https://cyberbotics.com/doc/reference/rangefinder).
|
||||
|
||||
### Перемещение за TCP в Webots
|
||||
|
||||
Порядок действий приведён в [руководстве по симуляции](concepts/simulation.md).
|
||||
|
||||
Reference in New Issue
Block a user