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.
|
||||
|
||||
Reference in New Issue
Block a user