# الكاميرات

تُوفّر الكاميرات ملاحظات الصور التي تراها السياسة. كل وحدة خلفية — OpenCV وIntel RealSense وReachy 2 — تنفّذ واجهة `Camera`، لذا فإن تبديل العتاد لا يغيّر الكود الذي يقرأ الإطارات.

راجع [دليل الكاميرات](../cameras) لاختيار الكاميرا وإعدادها، وراجع [الكاميرات وأجهزة الاستشعار من أطراف ثالثة](../third_party_sensors) للأجهزة خارج المجموعة الأساسية.

## الكاميرا[[lerobot.cameras.Camera]]

#### lerobot.cameras.Camera[[lerobot.cameras.Camera]]

```python
lerobot.cameras.Camera(config: CameraConfig)
```

[المصدر](https://github.com/huggingface/lerobot/blob/main/src/lerobot/cameras/camera.py#L26)

**المعاملات:**

fps (float | None) : عدد الإطارات في الثانية المُهيّأ أو المُقاس

width (int | None) : عرض الإطار بالبكسل

height (int | None) : ارتفاع الإطار بالبكسل

الفئة الأساسية لتنفيذات الكاميرا.

يحدد واجهة قياسية لعمليات الكاميرا عبر مختلف الخلفيات. يجب على الفئات الفرعية تنفيذ جميع الطرق المجردة.

يدير خصائص الكاميرا الأساسية (معدل الإطارات، الدقة) والعمليات الأساسية:
- الاتصال/الانقطاع
- التقاط الإطارات (مزامنة/غير مزامنة/أحدث)

#### اتصال[[lerobot.cameras.Camera.connect]]

```python
connect(warmup: bool = True)
```

[المصدر](https://github.com/huggingface/lerobot/blob/main/src/lerobot/cameras/camera.py#L99)

**المعاملات:**

warmup : إذا كانت القيمة True (الافتراضية)، يلتقط إطارًا تمهيديًا قبل الإرجاع. مفيد للكاميرات التي تحتاج إلى وقت لضبط إعدادات الالتقاط. إذا كانت القيمة False، يتخطى الإطار التمهيدي.

قم بإنشاء اتصال بالكاميرا.

#### قطع الاتصال[[lerobot.cameras.Camera.disconnect]]

```python
disconnect()
```

[المصدر](https://github.com/huggingface/lerobot/blob/main/src/lerobot/cameras/camera.py#L181)

افصل عن الكاميرا وأطلق الموارد.

#### قراءة[[lerobot.cameras.Camera.read]]

```python
read()
```

[المصدر](https://github.com/huggingface/lerobot/blob/main/src/lerobot/cameras/camera.py#L110)

**يعيد:** `np.ndarray`

الإطار الملتقط كمصفوفة numpy.

التقاط إطار واحد من الكاميرا وإعادته بشكل متزامن.

هذا استدعاء حاسم (Blocking) سيبقى في انتظار العتاد وحزمة تطوير البرمجيات الخاصة به.

#### async_read[[lerobot.cameras.Camera.async_read]]

```python
async_read(timeout_ms: float = Ellipsis)
```

[المصدر](https://github.com/huggingface/lerobot/blob/main/src/lerobot/cameras/camera.py#L121)

**المعاملات:**

timeout_ms : الحد الأقصى للوقت الذي يجب انتظاره للحصول على إطار جديد، بالمللي ثانية. القيمة الافتراضية هي 200 مللي ثانية (0.2 ثانية).

**يعيد:** `np.ndarray`

الإطار الملتقط كمصفوفة numpy.

**يرفع:** ``TimeoutError``

- ``TimeoutError`` -- إذا لم تصل إطار جديد خلال `timeout_ms`.

إرجاع أحدث إطار جديد.

تسترجع هذه الطريقة أحدث إطار تم التقاطه بواسطة الخيط الخلفي. إذا كان إطار جديد متاح بالفعل في المخزن المؤقت (تم التقاطه منذ آخر استدعاء)، فإنه يُعاد فوراً.

يتوقف حتى `timeout_ms` فقط إذا كان المخزن المؤقت فارغاً أو إذا كان الإطار الأحدث قد استُهلك بالفعل بواسطة استدعاء `async_read` سابق.

في جوهره، تُعيد هذه الطريقة أحدث إطار غير مستهلك، مع الانتظار عند الحاجة حتى وصول إطار جديد ضمن مهلة الوقت المحددة.

طريقة الاستخدام:
- مثالي لحلقات التحكم التي تريد فيها ضمان كل إطار تمت معالجته
is حديث، مما يزامن حلقتك بفعالية مع معدل إطارات الكاميرا.
- تشمل أسباب انتهاء المهلة عادةً: معدل إطارات كاميرا منخفض جداً، حمل معالجة ثقيل،
أو إذا كان الجهاز غير متصل.

#### find_cameras[[lerobot.cameras.Camera.find_cameras]]

```python
find_cameras()
```

[المصدر](https://github.com/huggingface/lerobot/blob/main/src/lerobot/cameras/camera.py#L89)

**يعيد:** List[Dict[str, Any]]

قائمة من القواميس، حيث يحتوي كل قاموس على معلومات حول كاميرا تم اكتشافها.

يكشف عن الكاميرات المتاحة المتصلة بالنظام.

## CameraConfig[[lerobot.cameras.CameraConfig]]

#### lerobot.cameras.CameraConfig[[lerobot.cameras.CameraConfig]]

```python
lerobot.cameras.CameraConfig(fps: int | None = None, width: int | None = None, height: int | None = None)
```

[المصدر](https://github.com/huggingface/lerobot/blob/main/src/lerobot/cameras/configs.py#L60)

## make_cameras_from_configs[[lerobot.cameras.make_cameras_from_configs]]

#### lerobot.cameras.make_cameras_from_configs[[lerobot.cameras.make_cameras_from_configs]]

```python
lerobot.cameras.make_cameras_from_configs(camera_configs: dict)
```

[المصدر](https://github.com/huggingface/lerobot/blob/main/src/lerobot/cameras/utils.py#L25)

