306 lines
9.8 KiB
YAML
306 lines
9.8 KiB
YAML
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: camera
|
|
annotations:
|
|
reloader.stakater.com/auto: "true"
|
|
spec:
|
|
revisionHistoryLimit: 0
|
|
replicas: 0
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
component: camera
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: camera
|
|
spec:
|
|
containers:
|
|
- name: camera
|
|
image: docker.io/cyrilix/robocar-camera
|
|
args:
|
|
- "-mqtt-pub-frequency=$(MQTT_CAMERA_PUB_FREQUENCY)"
|
|
- "-video-device=0"
|
|
- "-video-width=$(CAMERA_WIDTH)"
|
|
- "-video-height=$(CAMERA_HEIGHT)"
|
|
- "-log=info"
|
|
securityContext:
|
|
runAsUser: 1234
|
|
runAsGroup: 44 # Set 44/video group to access to video device
|
|
privileged: true
|
|
volumeMounts:
|
|
- name: camera-device
|
|
mountPath: /dev/video0
|
|
env:
|
|
- name: MQTT_BROKER
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_BROKER
|
|
name: robocar
|
|
- name: MQTT_USERNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_USERNAME
|
|
name: mqtt-credentials
|
|
- name: MQTT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_PASSWORD
|
|
name: mqtt-credentials
|
|
- name: MQTT_CLIENT_ID
|
|
value: rc-camera
|
|
- name: MQTT_TOPIC
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_CAMERA
|
|
name: robocar
|
|
- name: CAMERA_WIDTH
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_WIDTH
|
|
name: robocar-camera
|
|
- name: CAMERA_HEIGHT
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_HEIGHT
|
|
name: robocar-camera
|
|
- name: MQTT_CAMERA_PUB_FREQUENCY
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_CAMERA_PUB_FREQUENCY
|
|
name: robocar-camera
|
|
- name: MQTT_QOS
|
|
value: "0"
|
|
- name: TZ
|
|
value: "Europe/Paris"
|
|
volumes:
|
|
- name: camera-device
|
|
hostPath:
|
|
path: "/dev/video0"
|
|
type: CharDevice
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: oak-camera
|
|
annotations:
|
|
reloader.stakater.com/auto: "true"
|
|
spec:
|
|
revisionHistoryLimit: 0
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
component: oak-camera
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: oak-camera
|
|
spec:
|
|
containers:
|
|
- name: camera
|
|
image: git.cyrilix.bzh/robocars/robocar-oak-camera
|
|
args:
|
|
- "--image-width=$(CAMERA_WIDTH)"
|
|
- "--image-height=$(CAMERA_HEIGHT)"
|
|
- "--objects-threshold=$(THRESHOLD_OBJECTS)"
|
|
- "--camera-fps=$(CAMERA_FPS)"
|
|
- "--log=info"
|
|
- "--camera-tuning-exposition=8300us"
|
|
#- "--camera-tuning-exposition=500us"
|
|
|
|
- "--disable-disparity"
|
|
- "--stereo-mode-lr-check" # remove incorrectly calculated disparity pixels due to occlusions at object borders
|
|
- "--stereo-mode-extended-disparity" # allows detecting closer distance objects for the given baseline. This increases the maximum disparity search from 96 to 191, meaning the range is now: [ 0..190 ]
|
|
- "--stereo-mode-subpixel" # improves the precision and is especially useful for long range measurements
|
|
|
|
#- "--stereo-post-processing-median-filter"
|
|
#- "--stereo-post-processing-median-value=KERNEL_7x7" #{MEDIAN_OFF,KERNEL_3x3,KERNEL_5x5,KERNEL_7x7}
|
|
|
|
- "--stereo-post-processing-speckle-filter"
|
|
- "--stereo-post-processing-speckle-enable=true"
|
|
- "--stereo-post-processing-speckle-range=200"
|
|
|
|
#- "--stereo-post-processing-temporal-filter"
|
|
#- "--stereo-post-processing-temporal-persistency-mode=VALID_2_IN_LAST_4" # {PERSISTENCY_OFF,VALID_8_OUT_OF_8,VALID_2_IN_LAST_3,VALID_2_IN_LAST_4,VALID_2_OUT_OF_8,VALID_1_IN_LAST_2,VALID_1_IN_LAST_5,VALID_1_IN_LAST_8,PERSISTENCY_INDEFINITELY}
|
|
#- "--stereo-post-processing-temporal-alpha=0.4"
|
|
#- "--stereo-post-processing-temporal-delta=0"
|
|
|
|
- "--stereo-post-processing-spatial-filter"
|
|
- "--stereo-post-processing-spatial-enable=true"
|
|
- "--stereo-post-processing-spatial-hole-filling-radius=4"
|
|
#- "--stereo-post-processing-spatial-alpha=0.5"
|
|
#- "--stereo-post-processing-spatial-delta=0"
|
|
- "--stereo-post-processing-spatial-num-iterations=1"
|
|
|
|
- "--stereo-post-processing-threshold-filter"
|
|
- "--stereo-post-processing-threshold-min-range=1450"
|
|
- "--stereo-post-processing-threshold-max-range=15000"
|
|
|
|
#- "--stereo-post-processing-decimation-filter"
|
|
#- "--stereo-post-processing-decimation-decimal-factor=2" # {1,2,3,4}
|
|
#- "--stereo-post-processing-decimation-mode=PIXEL_SKIPPING" # {PIXEL_SKIPPING,NON_ZERO_MEDIAN,NON_ZERO_MEAN}
|
|
securityContext:
|
|
runAsUser: 0
|
|
privileged: true
|
|
volumeMounts:
|
|
- name: sys
|
|
mountPath: /sys
|
|
- name: dev
|
|
mountPath: /dev
|
|
env:
|
|
- name: MQTT_BROKER_HOST
|
|
value: localhost # because use host network
|
|
- name: MQTT_BROKER_PORT
|
|
value: "30183"
|
|
- name: MQTT_USERNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_USERNAME
|
|
name: mqtt-credentials
|
|
- name: MQTT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_PASSWORD
|
|
name: mqtt-credentials
|
|
- name: MQTT_CLIENT_ID
|
|
value: rc-oak-camera
|
|
- name: MQTT_TOPIC_CAMERA
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_CAMERA_OAK_COLOR
|
|
name: robocar
|
|
- name: MQTT_TOPIC_OBJECTS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_OBJECTS
|
|
name: robocar
|
|
- name: MQTT_TOPIC_DISPARITY
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_CAMERA_DISPARITY
|
|
name: robocar
|
|
- name: THRESHOLD_OBJECTS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: OBJECTS_THRESHOLD
|
|
name: robocar-objects
|
|
- name: CAMERA_FPS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_FPS
|
|
name: robocar-camera
|
|
- name: CAMERA_WIDTH
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_WIDTH
|
|
name: robocar-camera
|
|
- name: CAMERA_HEIGHT
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_HEIGHT
|
|
name: robocar-camera
|
|
- name: MQTT_QOS
|
|
value: "0"
|
|
#- name: DEPTHAI_LEVEL
|
|
# value: debug
|
|
- name: TZ
|
|
value: "Europe/Paris"
|
|
hostNetwork: true
|
|
volumes:
|
|
- name: sys
|
|
hostPath:
|
|
path: /sys
|
|
- name: dev
|
|
hostPath:
|
|
path: "/dev"
|
|
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: pca9685
|
|
annotations:
|
|
reloader.stakater.com/auto: "true"
|
|
spec:
|
|
revisionHistoryLimit: 0
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
component: pca9685
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: pca9685
|
|
spec:
|
|
containers:
|
|
- name: pca9685
|
|
image: docker.io/cyrilix/robocar-pca9685
|
|
args:
|
|
- "--mqtt-retain=false"
|
|
- "--throttle-channel=15"
|
|
- "--steering-channel=13"
|
|
- "--throttle-zero-pwm=$(THROTTLE_PCA9685_ZERO_PWM)"
|
|
- "--throttle-min-pwm=$(THROTTLE_PCA9685_MIN_PWM)"
|
|
- "--throttle-max-pwm=$(THROTTLE_PCA9685_MAX_PWM)"
|
|
- "--steering-left-pwm=$(STEERING_PCA9685_LEFT_PWM)"
|
|
- "--steering-right-pwm=$(STEERING_PCA9685_RIGHT_PWM)"
|
|
- "--steering-center-pwm=$(STEERING_PCA9685_CENTER_PWM)"
|
|
- "--pwm-freq=50"
|
|
- "--update-pwm-frequency=25"
|
|
- "--log=info"
|
|
securityContext:
|
|
runAsUser: 1234
|
|
runAsGroup: 998 # Set 998/i2c group to access to i2c device
|
|
privileged: true
|
|
volumeMounts:
|
|
- mountPath: /dev/i2c-1
|
|
name: i2c
|
|
envFrom:
|
|
- configMapRef:
|
|
name: robocar-pca9685-pwm
|
|
env:
|
|
- name: MQTT_BROKER
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_BROKER
|
|
name: robocar
|
|
- name: MQTT_USERNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_USERNAME
|
|
name: mqtt-credentials
|
|
- name: MQTT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_PASSWORD
|
|
name: mqtt-credentials
|
|
- name: MQTT_CLIENT_ID
|
|
value: rc-pca9685
|
|
- name: MQTT_TOPIC_THROTTLE
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_THROTTLE
|
|
name: robocar
|
|
- name: MQTT_TOPIC_STEERING
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_STEERING
|
|
name: robocar
|
|
- name: MQTT_QOS
|
|
value: "0"
|
|
- name: TZ
|
|
value: "Europe/Paris"
|
|
volumes:
|
|
- name: i2c
|
|
hostPath:
|
|
path: /dev/i2c-1
|
|
type: CharDevice
|