Category: Technology

Dashcams Functional Comparison

Dashcams are a major tool for changing dangerous driving behaviour and improving driver skills. There exists a variety of different types of dash cams with different features and price points. In the following text we would like to elaborate on the different features available in-dash cams for the automotive.

Dash Cam Functions

Driving Behaviour Analytics

1. Night Vision

Night vision is the ability to capture clear footage at night.  It increases exposure automatically under low light conditions by detecting the lack of light through its video sensors. These types of dashcams are ideal for fleet drivers who are driving primarily at night or in low-light situations.

2. Drowsiness Detection

Driver drowsiness detection is a car safety technology that helps prevent accidents caused by the driver getting tired.

Driver drowsiness can be detected with driver eye/face monitoring. Some AI dashcams can detect driver drowsiness by continually monitoring the driver’s eye for the signs of tiredness like blinking and the driver’s face for the signs of drowsiness like yawning. This feature can help drivers to avoid crashes caused by fatigue

3. Aggressiveness Detection

The aggressiveness detection systems can detect aggressive driving movements such as tailgating, speeding, hard braking, ignoring stop signs, and road signs. Some AI dashcams can detect aggressiveness and the driver score system can help fleets and drivers to change their aggressive behaviours and encourage safe driving. Often for aggressiveness detection, the acceleration data from the sensors are used in combination with the video analytics.

4. Distraction Detection

Distracted driving detection can detect any behaviour that takes your eyes off the road and distracts you from driving such as looking down, looking left/right, picking up an object or using a cell phone while driving. It helps dashcams to identify distracting behaviours and send in-cab alerts to encourage drivers to keep their eyes on the road.

5.Tailgating Detection

One of the more common dashcam features is tailgating detection. Dashcams detect when you’re not keeping a safe distance between your vehicle and the vehicle in front. Dashcams can send instant alerts to drivers and fleet managers.

6. Speeding Detection

Speeding detection recognizes speed limits and alerts the driver in case of speeding. Here the available map data is combined with the speed measured by a location sensor. Some cameras try to detect speed limit signs through video analysis, however, usually, those systems prove to be unreliable.

7. Drifting Detection

Drifting detection uses a dashcam to identify lane lines and if you’re getting out of your lane with an in-cabin alert it can warn you to get back to your lane. Drifting detection encourages you for lane-centric driving and is important for road safety.

Samsara, Nauto, Drivetrust and Keeptruckin have unlimited cloud storage and drifting, speeding, tailgating, distraction, aggressiveness detection. They customize their plans for your needs. Nauto, Keeptruckin and Drivetrust stand out with drowsiness detection.  Mobileye 630 pro is the only alert-based dashcam with no data storage. Garmin dashcam has the same features as Mobileye except it has storage.YI Adas is the cheapest of all.

If you want to record your driving so you can use it to prove innocence in case of an accident, most dashcams can serve that purpose. But if you value more about improving the safety, efficiency, and profitability of your fleet then cloud-based, dual AI dashcams with unlimited data storage can be better for you.

Simply said, there’s a lot to consider when purchasing a new dashcam, but with the features explained and comparison table, hopefully purchasing one will be a bit easier.

Multi-Criteria Benchmarking
Rank: 6 7 6 7 3 3 4 4
Feature Samsara CM32 AI Dascham Nauto AI Dashcam Drivetrust AI Dashcam Keeptruckin AI Dashcam Nexar One Dual Dashcam YI Adas Nightscape Dashcam Mobileye 630 Pro  Garmin 67W Dashcam
Price $399 + $600 annual service fee   $499+monthly fee $39.95 Between €249-    € 549 start from$100+$ 40monthly  $349.95+$9.99 monthly nexar connectivity fee  € 80,00 € 1.099 $239.99
Data Storage Unlimited Cloud Unlimited Cloud Unlimited Cloud Cloud SD card up to 512 GB+Cloud SD Card max 64 GB No Storage 512 GB Cloud
Camera Type Dual Dual Dual Dual Dual Road Road Road
Video Quality Road 1080 p Cabin 720 p Up to 1080 p   Road 1440 p Cabin 1080 p Road 4K Cabin 720p 1080p   Road 1440 p
 Night Vision P P O P P P P P
Drowsiness Detection O P P P O O O O
Aggresiveness Detection P P P P P O O O
Distraction Detection P P P P O O O O
Tailgation Detection P P P P P P P P
Speeding Detection P P P P O O P P
Drifting Detection P P P P O P P P

Sources

Mattermost Server Docker Installation Tutorial

Introduction

This tutorial covers how to setup mattermost, an open-source and free slack alternative with docker on a domain or subdomain with SSL. The deployment, which results from this tutorial is production ready.

Background: Why Mattermost?

DriveTrust started as a small team, back then slack has been a good solution. However, we grew and with 10 people we have reached our 10K message limit for slack quiet quick. Now paying 7,50€ / user / month seemed to expensive for a comparably simple chat application, so we started looking for better alternatives.

Mattermost Pros & Cons

Pros:

1. free & self hosted.

2. A close to 1:1 clone of Slack, it has its own Android & iOS application

3. Has an export feauture from Slack, so the migration is quiet simple

Cons:

1. Currently no guest user feature support

2. During migration private messages are not exported, as well we have not managed to export all the files

Requirements

From DriveTrust’s side there have been a few requirements:

1. Integration with our existing applications on the server

2. Running on the subdomain chat.drivetrust.eu

3. SSL

4. Running within docker

5. Being a capable production deployment

Implementation

Prerequisites

1. Docker & Docker Compose

2. DNS A record pointing to domain/subdomain. (In our case chat.drivetrust.eu ) and server with a dedicated IP

3. jwilder nginx proxy and jwilder letsencrypt nginx proxy companion
Both are needed to reverse proxy the domain https://chat.drivetrust.eu to a docker container which is located on a different port. Because we don’t want to have some URL like chat.drivetrust.eu:9097 for production.
The second container automatically generates free SSL certificates for each subdomain you run with the nginx proxy.

0. Setup reverse proxy and SSL

This part refers to the above-mentioned containers. Once docker has installed the running of the containers is straight forward. This is straight from the official tutorial from Github
with one minor modification.

docker network create nginx-net

Before getting started with the servers and the reverse proxy we need to create a docker network to which will attach the nginx-proxy, the letsencrypt proxy ssl and the mattermost containers. Once the network is created we run the following two commands:

 docker run --detach \
    --name nginx-proxy \
    --publish 80:80 \
    --publish 443:443 \
    --net nginx-net \
    --volume /etc/nginx/certs \
    --volume /etc/nginx/vhost.d \
    --volume /usr/share/nginx/html \
    --volume /var/run/docker.sock:/tmp/docker.sock:ro \
    jwilder/nginx-proxy

 docker run --detach \
    --name nginx-proxy-letsencrypt \
    --volumes-from nginx-proxy \
    --net nginx-net \
    --volume /var/run/docker.sock:/var/run/docker.sock:ro \
    --env "DEFAULT_EMAIL=YOUR_EMAIL_ADDRESS" \
    jrcs/letsencrypt-nginx-proxy-companion

Now you should have the reverse proxy setup!

Mattermost installation

The official mattermost tutorial deploys mattermost as a docker service. This has not been suitable for us since we were looking to integrate with our existing Nginx Proxy Server. That’s why took apart the docker-compose.yml and rebuild everything from scratch. In total we will have three different docker containers, one for database, one for the app and one for the web application.

Step 1: create the local volume directories where the data will be stored:

mkdir -pv /srv/mattermost/volumes/app/mattermost/{data,logs,config,plugins,client-plugins} <br>
chown -R 2000:2000 /srv/mattermost/

Step 2: get the official mattermost git repo:

git clone https://github.com/mattermost/mattermost-docker.git 
cd mattermost

Step 3: a )Build the database container.

cd db 
docker build -t mattermost_db 

That should build the database container.

b) Run the container

docker run --detach
 --name mattermost-docker_db_1 
 --restart unless-stopped
 --env POSTGRES_USER=mmuser
 --env POSTGRES_PASSWORD=YOUR_DATABASE_PASSWORD
 --env POSTGRES_DB=mattermost
 --net nginx-net
 --volume /srv/mattermost/var/lib/postgresql/data:/var/lib/postgresql/data

Replace YOUR_DATABASE_PASSWORD with a proper database password. Please note that we add the container to nginx-net network to integrate with the reverse proxy.

Step 4: a) Build the mattermost app container

Here we need to add –build-arg edition=team to build the team edition of mattermost.

b) Run the container

docker run --detach
 --name mattermost-docker_app_1 
 --restart unless-stopped
 --env MM_USERNAME=mmuser
 --env MM_PASSWORD=YOUR_DATABASE_PASSWORD
 --env MM_DBNAME=mattermost
 --env MM_SERVICESETTINGS_SITEURL="https://chat.drivetrust.eu"
 --net nginx-net
 --env DB_HOST=mattermost-docker_db_1
 --volume /srv/mattermost/app/config:/mattermost/config:rw
 --volume /srv/mattermost/app/data:/mattermost/data:rw
 --volume /srv/mattermost/app/logs:/mattermost/logs:rw 
 --volume /srv/mattermost/app/plugins:/mattermost/plugins:rw
 --volume /srv/mattermost/app/client-plugins:/mattermost/client/plugins:rw
 --volume /etc/localtime:/etc/localtime:ro
mattermost_app:latest

Replace YOUR_DATABASE_PASSWORD with the database password.
Replace MM_SERVICESETTINGS_SITEURL with your URL
Note that the container has as well been added to the nginx-net network
Note that –-env DB_HOST actually requires an IP address of the database. However, since our database is as the app on the nginx-net network we can just pass the database container name (mattermost-docker_db_1) as host and docker does the domain name resolution automatically

Step 5: a) Build the web container

cd web 
 
docker build -t mattermost_web 

b) Run the container:

docker run --detach
 --name mattermost_web
 --restart always
 --env "VIRTUAL_HOST=chat.drivetrust.eu" 
 --env "LETSENCRYPT_HOST=chat.drivetrust.eu" 
 --env "LETSENCRYPT_EMAIL=roman.prytkov@drivetrust.eu"
 --env APP_HOST=mattermost-docker_app_1 
 --env MATTERMOST_ENABLE_SSL=true 
 --net nginx-net
 --expose 9097
 --volume /etc/nginx/certs/chat.drivetrust.eu:/cert:ro 
 --volume /etc/localtime:/etc/localtime:ro 
mattermost_web:latest

Replace VIRTUAL_HOST, LETSENCRYPT_EMAIL, LETSENCRYPT_HOST with your domain. The APP_HOST is the containername of the mattermost app build in 4. It’s the same principle of DNS as with the mattermost database and mattermost app.

That’s it. Now you should be able to see the login screen on the domain of your choice!