Skip to content

Add explain about fps#177

Open
kazu-321 wants to merge 2 commits intoorbbec:mainfrom
kazu-321:main
Open

Add explain about fps#177
kazu-321 wants to merge 2 commits intoorbbec:mainfrom
kazu-321:main

Conversation

@kazu-321
Copy link

  • add explain about fps
  • add sync_mode explain

Closes #97

kazu-321 and others added 2 commits March 30, 2025 13:27
- add explain about fps
- add sync_mode explain
Co-authored-by: Kazuya Oguma <84025154+KazuyaOguma18@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 26, 2026 04:14
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds documentation to the README about FPS configuration and the sync_mode parameter to help users understand frame rate constraints. The changes address issue #97, where a user experienced unexpected FPS behavior (requesting 5 FPS but getting 30 FPS instead) on a Femto Mega camera.

Changes:

  • Added explanation that color_fps can differ from other FPS values when using free_run sync mode
  • Documented that depth_fps and ir_fps must always be the same
  • Added documentation for the sync_mode parameter listing acceptable values
Comments suppressed due to low confidence (1)

README.MD:385

  • Missing period at the end of the sentence. All other parameter descriptions in this list end with a period for consistency.
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +383 to +385
If you set `sync_mode` to `free_run`, the `color_fps` value can be different from the other values.
`depth_fps` and `ir_fps` should always be the same.
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The added documentation about FPS constraints helps address issue #97, but it doesn't fully explain why the FPS settings might not work as expected. The issue mentions that setting color_fps to 5 resulted in 30fps instead.

The documentation should clarify that:

  1. The sync_mode setting directly affects whether independent FPS settings are honored
  2. Users experiencing FPS issues should verify their sync_mode setting matches their intended use case
  3. In modes other than free_run, the camera hardware enforces synchronized frame rates, which may override user-specified FPS values

This would provide clearer guidance for troubleshooting FPS-related issues.

Suggested change
If you set `sync_mode` to `free_run`, the `color_fps` value can be different from the other values.
`depth_fps` and `ir_fps` should always be the same.
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`
If you set `sync_mode` to `free_run`, the `color_fps` value can be different from the other values and the
camera will try to honor the independently requested FPS values for each enabled stream (subject to the
FPS options that the device actually supports).
In synchronized modes (any mode other than `free_run`), the camera hardware enforces a common frame rate
for the color, depth, and IR streams, and may override or round your requested `*_fps` parameters to a
supported synchronized value. In this case it is expected, for example, that requesting `color_fps:=5`
could still produce a 30 FPS color stream if 30 FPS is the only synchronized rate supported by the device.
`depth_fps` and `ir_fps` should always be the same, because these streams must share the same effective
frame rate when synchronized by the camera hardware.
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`.
In `free_run` mode, streams run independently and per-stream `*_fps` settings are applied where supported.
In `standalone` and other synchronized modes, the device selects a common FPS for all active streams, which
can override the user-specified `color_fps`, `depth_fps`, and `ir_fps`. If you observe that your configured
FPS values are not being respected (for example, 5 FPS resulting in an actual 30 FPS stream), first verify
that `sync_mode` is set to the mode that matches your intended use case.

Copilot uses AI. Check for mistakes.
- `depth_width`, `depth_height`, `depth_fps`: The resolution and frame rate of the depth stream.
If you set `sync_mode` to `free_run`, the `color_fps` value can be different from the other values.
`depth_fps` and `ir_fps` should always be the same.
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation lists only standalone and free_run as acceptable values for sync_mode, but the code implementation supports seven different modes: free_run, standalone, primary, secondary, secondary_synced, software_triggering, and hardware_triggering.

The codebase shows examples using software_triggering and hardware_triggering modes (e.g., in multi_camera_synced.launch.py), and the SDK header file (ObTypes.h) provides detailed documentation for all seven modes. The documentation should list all supported modes to help users configure multi-device synchronization scenarios properly.

Suggested change
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`
- `sync_mode`: The mode of data synchronization. Acceptable values are `free_run`, `standalone`, `primary`, `secondary`, `secondary_synced`, `software_triggering`, and `hardware_triggering`.

Copilot uses AI. Check for mistakes.
Comment on lines +383 to +385
If you set `sync_mode` to `free_run`, the `color_fps` value can be different from the other values.
`depth_fps` and `ir_fps` should always be the same.
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The explanation about FPS constraints for free_run mode is helpful, but it's incomplete. According to the SDK documentation in ObTypes.h:

  • In free_run mode: Color and Depth can be set to different frame rates
  • In standalone mode: Color and Depth should be set to the same frame rates, and they will be synchronized

The current explanation only addresses free_run mode. Consider adding information about standalone mode's FPS requirements as well, and clarify that in modes other than free_run, all streams (color, depth, IR) should use the same FPS value for proper synchronization.

Suggested change
If you set `sync_mode` to `free_run`, the `color_fps` value can be different from the other values.
`depth_fps` and `ir_fps` should always be the same.
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`
If you set `sync_mode` to `free_run`, `color_fps` can be different from `depth_fps` / `ir_fps`. In this mode, color
and depth run independently, but `depth_fps` and `ir_fps` should still be set to the same value to keep depth and IR
synchronized.
In `standalone` mode (and, in general, in any synchronized mode), all active image streams (color, depth, IR) should
use the same FPS value so that they are properly synchronized.
- `sync_mode`: The mode of data synchronization. Acceptable values are `standalone` and `free_run`. In `standalone`
mode, color and depth run at the same FPS and are synchronized. In `free_run` mode, they can run at different FPS and
are not synchronized by the device.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants