Update camera settings

This commit is contained in:
Даниил Грабарь
2026-09-18 12:05:35 +10:00
parent 3a5bc28bba
commit 9dc1073f42
10 changed files with 359 additions and 13 deletions
@@ -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).