You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The PRO line-up of Luxonis devices has notch IR filters at 940nm on the stereo camera pair, which allows both visible light and IR light from illumination LED/laser dot projector to be perceived by the camera.
42
+
43
+
{% hint style="warning" %}
44
+
This product is classified as a **Class 1 Laser Product** under the **EN/IEC 60825-1, Edition 3 (2014)** internationally. You should take safety precautions when working with this product.
45
+
{% endhint %}
46
+
47
+
{% hint style="info" %}
48
+
RGB cameras do not perceive IR light, only monochromatic sensors have IR perception.
49
+
{% endhint %}
50
+
51
+
### Dot Projector
52
+
53
+
A laser dot projector emits numerous tiny dots in front of the device, aiding in disparity matching, particularly on surfaces with low visual features or texture, such as walls or floors. This method, known as ASV (Active Stereo Vision), functions similarly to passive stereo vision but incorporates active depth enhancement.
54
+
55
+
### Flood IR (Led)
56
+
57
+
LED lighting enables visibility in environments with minimal or no light. It allows you to execute AI or computer vision (CV) tasks on frames illuminated by the infrared (IR) LED.
Robopipe OS is a custom pre-configured OS image based on [Debian](https://www.debian.org/). It comes with all the packages and tools you need to build a AI/CV application pre-installed. You can find all releases along with the configuration scripts in [this repository](https://github.com/Robopipe/OS).
6
+
7
+
## Default configuration
8
+
9
+
### Users
10
+
11
+
The default user you should use when working on the controller directly is `admin`. The password is `robopipe.io`.
12
+
13
+
### Hostname & mDNS
14
+
15
+
A hostname is assigned to the controller on startup. The assigned hostname is in the format `robopipe-<id>`, where _id_ is determined dynamically on each startup. When the controller is started it will scan the local network, and assign itself the lowest possible _id_ which is not already taken. This means that the first controller you start will have _id_ 1, the next will have _id_ 2 and so on. At the same time, it will also broadcast an [mDNS](https://en.wikipedia.org/wiki/Multicast_DNS) record based on its hostname (`robopipe-<id>.local`). This means that the controller can be addresses not only by its IP address, but also by its hostname in the local network. This behaviour is enabled via `robopipehostname` service, if you wish to disable it, you can do so using:
16
+
17
+
```bash
18
+
sudo systemctl disable robopipehostname # this will take effect on the next startup
19
+
```
20
+
21
+
### SSH
22
+
23
+
SSH server is running on the controller by default on port 22.
24
+
25
+
### Robopipe API
26
+
27
+
Robopipe API is configured to start automatically at startup. If you wish to disable this, you can do so using:
28
+
29
+
```bash
30
+
sudo systemctl disable robopipeapi
31
+
```
32
+
33
+
## Service Mode
34
+
35
+
Sevice mode is used for backing up the operating system, uploading new OS images or restoring access to the unit. This mode does not publish an mDNS record.
36
+
37
+
### Entering the Service Mode
38
+
39
+
* Turn off the controller
40
+
* Press and hold the _SERVICE_ button on your controller (usually located next to USB labels)
41
+
* Turn on the controller while still hodling the _SERVICE_ button
42
+
* Release the _SERVICE_ button when all the LEDs start blinking periodically
Copy file name to clipboardExpand all lines: docs/getting-started/connection.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,16 +24,16 @@ Connect the luxonis camera directly to the controller via USB and then connect t
24
24
25
25
### Accessing the controller
26
26
27
-
The easiest way to check if everything is running is to head over to `http://robopipe-controller-<id>.local`, where _id_ is the a number assigned to each controller on startup, based on the order in which you start the controllers, e.g. the first controller you connect will have id `1`, the next will have id `2` and so on. You should see output: 
27
+
The easiest way to check if everything is running is to head over to `http://robopipe-<id>.local`, where _id_ is the a number assigned to each controller on startup, based on the order in which you start the controllers, e.g. the first controller you connect will have id `1`, the next will have id `2` and so on. You should see output: 
28
28
29
29
```
30
30
Hello from Robopipe API!
31
31
```
32
32
33
-
The controller is also accesible via [SSH](https://en.wikipedia.org/wiki/Secure_Shell). The default hostname is set to `robopipe-controller-<id>.local`. The default user is `admin` with password `robopipe.io`. Enter this command into your terminal to connect to the controller, enter `robopipe.io` when prompted for password:
33
+
The controller is also accesible via [SSH](https://en.wikipedia.org/wiki/Secure_Shell). The default hostname is set to `robopipe-<id>.local`. The default user is `admin` with password `robopipe.io`. Enter this command into your terminal to connect to the controller, enter `robopipe.io` when prompted for password:
34
34
35
35
```bash
36
-
ssh admin@robopipe-controller-1.local
36
+
ssh admin@robopipe-1.local
37
37
```
38
38
39
39
When connecting for the first time, you will be asked to verify the authenticity of the controller's key. Enter `yes` and press enter.
In order to capture training data we need to specify device from which to capture from. To do this we will list all devices.
25
+
In order to capture training data we need to specify camera and specific stream from which to capture images. To do this we will first list all cameras and streams.
26
26
27
27
{% code fullWidth="false" %}
28
28
```python
29
29
import requests
30
30
31
31
ID=1# substitue with the id of your controller
32
-
API_BASE=f"http://robopipe-controller-{ID}.local"
32
+
API_BASE=f"http://robopipe-{ID}.local"
33
33
34
34
# fetch connected devices from the robopipe controller
35
-
defget_devices():
35
+
defget_cameras():
36
36
return requests.get(f"{API_BASE}/cameras").json()
37
37
38
-
devices=get_devices()
38
+
cameras=get_cameras()
39
39
```
40
40
{% endcode %}
41
41
42
-
Devices will contain an array of connected devices, containing their MXID along with other information. To find out more about devices API head over to the [API reference](../api/rest-api-reference/cameras.md#cameras).
42
+
Cameras will contain an array of connected cameras, containing their MXID along with other information. To find out more about cameras API head over to the [API reference](../api/rest-api-reference/cameras.md#cameras).
43
43
44
-
We will use the first device.
44
+
We will use the first camera.
45
45
46
46
```python
47
-
mxid =devices[0].get("mxid")
47
+
mxid =cameras[0].get("mxid")
48
48
```
49
49
50
-
We will also need to select a camera. To list all cameras you can use the function below.
50
+
We will also need to select a stream. Stream is either a single sensor on the camera or a combination of multiple sensors, usually used in detecting depth. To list all streams you can use the function below.
51
51
52
52
```python
53
-
# retrieve the list of cameras associated with the selected device (mxid)
To capture data we simply call `capture_data()`. This will, however, capture the data in full camera resolution, which might not be desired. In our case, the model will be trained on images of size 200x200. We can create another function, which will properly configure the camera, so that the captured images are the right size. There are numerous options which you can configure via the [config](../api/rest-api-reference/streams.md#cameras-mxid-sensors-sensor_name-config) and [control](../api/rest-api-reference/streams.md#cameras-mxid-sensors-sensor_name-control)API.
98
+
To capture data we simply call `capture_data()`. This will, however, capture the data in full camera resolution, which might not be desired. In our case, the model will be trained on images of size 200x200. We can create another function, which will properly configure the camera, so that the captured images are the right size. There are numerous options which you can configure via the [config](../api/rest-api-reference/streams.md#cameras-mxid-sensors-sensor_name-config) and [control](../api/rest-api-reference/streams.md#cameras-mxid-sensors-sensor_name-control)APIs.
99
99
100
100
```python
101
-
defconfigure_camera(width: int, height: int):
101
+
defconfigure_stream(width: int, height: int):
102
102
data = {"still_size": (width, height)}
103
103
return requests.post(
104
104
f"{API_BASE}/cameras/{mxid}/sensors/{sensor_name}/config", data
@@ -262,8 +262,9 @@ To deploy out model we will use our API.
0 commit comments