HemiStereo Summer 2021 Update Brings New Viewer and Backend 3 months ago

HemiStereo Summer 2021 Update Teaser

We are excited to announce many new features and improvements of our HemiStereo NX software! Most importantly it contains a greatly improved version of HemiStereo Viewer with more backend features and much easier configuration. Also, the Jupyter Notebook gets a hardening update with better control over the server password and SSL certificates, and a reduction in user permissions for improved security. Finally, we also include several smaller improvements on most of our system components – things you ideally will not recognize at first glance but will make the usage smoother in the long run.

What’s New

HemiStereo Backend 1.4.2

  • add bilateral filter
  • output frame metadata (exposure, gain, scene lux, …)

HemiStereo Viewer 1.4.1

  • add configuration presets
  • show measured distance of the point under the mouse cursor
  • unify field of view settings of the target and the matching camera
  • allow locking the aspect ratio while changing image resolutions
  • reset the camera view of the point cloud display
  • add bilateral filter settings

Jupyter Notebook

  • allow changing the password
  • improve security by reducing the permissions of the jupyter user

Web Proxy

  • allow TLS encrypted communication

HemiStereo Viewer Preview

How to Update

Please, find the latest version of the HemiStereo Viewer software here. Replace the old software on your host as required. The version of the HemiStereo Viewer must match with the version of the 3dvl-stereo package on the device. So, for the currently released 3dvl-stereo version 1.4.2, use the latest 1.4.x Viewer release from our download page.

On the sensor, the update is performed using the apt package manager. After login, please perform the following steps:

sudo apt update
sudo apt upgrade
sudo apt update
sudo apt upgrade

You might be asked whether you allow the apt sources to be updated to a new path. Please answer yes here. We updated our repository structure, preparing for the upcoming L4T r32.5 release. This is also the reason to perform the update/upgrade cycle twice, just to make sure to grab all the latest versions from the correct repository. During the upgrade process, the following packages will ask you how you want to proceed:

3dvl-appmanager

This package contains the /etc/docker/daemon.json config file. You will be asked if you want to use the package-maintainers (our) version or your currently installed one. If you did not make manual changes to the file, just answer “I” here, and the updated version of the file is placed automatically. Otherwise, you might want to keep it as is (default option), but please make sure to enable the nvidia runtime after the installation in this case:

Configuration file '/etc/docker/daemon.json'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** daemon.json (Y/I/N/O/D/Z) [default=N] ? Y

3dvl-jupyter

Updated only if the 3dvl-jupyter package is pre-installed already. During the package configuration, the installer will prompt for a password for the jupyter application. Please make sure to remember the password – but it is easily changeable later if necessary. Also, the installer asks if you want to create self-signed certificates automatically. For most users, this is recommended.

3dvl-jupyter:
first setup, please specify how you would like to proceed:

The jupyter notebook allows for remote access on the
sensor - this might be a security thread. For your protection,
there is the option to secure the communication using ssl and
self-signed certificates for connection from remote and
a static password for access control
set password [yes/no]? yes
enter access password: hemistereo
re-type password: hemistereo
create self-signed certificates [yes/no]? yes
the certifiactes will be stored in /var/lib/hemistereo/data/jupyter_notebook/config
the certificate will be valid 365 days
Can't load /home/hemistereo/.rnd into RNG
548091655808:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/hemistereo/.rnd
Generating a RSA private key
...................................................................................++++
......................++++
writing new private key to '/var/lib/hemistereo/data/jupyter_notebook/config/jupyter.key'
-----
!!!! INFO !!!!
please run 'hemistereo_app_enable jupyter-notebook' and 'hemistereo_app_start jupyter-notebook' to use the app

3dvl-web-proxy

During the package configuration, the installer will prompt if it should create self-signed certificates automatically. For most users, this is recommended. Also, the installer asks whether it shall block non-https access to the sensor. Be aware that answering “yes” here, will block the HemiStereo Viewer from accessing the camera images. So for most users and test setups, “no” is the preferred answer for the time being.

3dvl-web-proxy:
first setup, please specify how you would like to proceed:

The (grpc) web proxy allows for remote data access on the
sensor - this might be a privacy thread. For your protection,
there is the option to secure the communication using ssl and
self-signed certificates for connection from remote.
Additionally, there is an option for using static tokens for
access control -> package 3dvl-static-token-auth-service
Do you want to enforce ssl connections? Answering 'yes' will
block http access and only allow https access.

create self-signed certificates [yes/no]? yes
the certifiactes will be stored in /var/lib/hemistereo/data/traefik/certs
the certificate will be valid 365 days
Can't load /home/hemistereo/.rnd into RNG
548099667584:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/hemistereo/.rnd
Generating a RSA private key
..........................++++
.........................++++
writing new private key to '/var/lib/hemistereo/data/traefik/certs/default.key'
-----
block non-https access [yes/no]? no

What’s next?

It has been quiet for a while from our side – which is not due to our lack of engagement but our development towards our upcoming major release: We will soon incorporate the Linux4Tegra r32.5.1 base. However, this will take another few weeks of testing and polishing. So, stay tuned for more!