Skip to main content

Setting up RICOH THETA Z1

Installation and building dependencies#

This tutorial is based on official tutorial by RICOH

v4l2loopback#

First download, build and install v4l2loopback. It will allow you to create virtual loopback camera interfaces.

mkdir -p ~/husarion_ws/src/thera_z1cd ~/husarion_ws/src/thera_z1/git clone https://github.com/umlaeute/v4l2loopback.gitcd v4l2loopback/make && sudo make installsudo depmod -a

After successful installation run:

ls /dev | grep video

You should see your video interfaces.

If you don't have any other cameras installed the output should be empty. To start loopback interface and find it's ID run:

sudo modprobe v4l2loopbackls /dev | grep video

New /dev/video device should appear. It's your loopback interface you will later assign to your THETA Z1.

Ricoh Theta dependencies#

Install required packages:

sudo apt-get install libgstreamer1.0-0 \     gstreamer1.0-plugins-base \     gstreamer1.0-plugins-good \     gstreamer1.0-plugins-bad \     gstreamer1.0-plugins-ugly \     gstreamer1.0-libav \     gstreamer1.0-doc \     gstreamer1.0-tools \     gstreamer1.0-x \     gstreamer1.0-alsa \     gstreamer1.0-gl \     gstreamer1.0-gtk3 \     gstreamer1.0-qt5 \     gstreamer1.0-pulseaudio \     libgstreamer-plugins-base1.0-dev \     libjpeg-dev

After installation building and install libuvc-theta:

cd ~/husarion_ws/src/thera_z1git clone https://github.com/ricohapi/libuvc-theta.gitcd libuvc-thetamkdir buildcd buildcmake ..makesudo make install

Now you have to download THETA Z1 specyfic dependencies and configure them to match your platform.

cd ~/husarion_ws/src/thera_z1git clone https://github.com/ricohapi/libuvc-theta-sample.gitcd libuvc-theta-sample/gst

In file gst_viewer.c in line 190 replace:

"v4l2sink device=/dev/video1 sync=false";

With:

"v4l2sink device=/dev/video0 quos=false sync=false";

If your device has more than one camera you have to replace /dev/video0 with matching interface number. You can check it by running:

ls /dev | grep video

Most likely loopback interface will be the last one.

After you make changes in file you can now build the code by running:

make

Caution! Configuration of gst_viewer.c the file shown in this tutorial is for x86_64 bit architecture. Other architectures require different changes. For more information follow this page.

Testing#

Connect your camera via USB turn it on and select LIVE mode and run:

./gst_viewer

Accessing camera from /dev/video interface#

Every time you connect the camera you have to set it to LIVE mode, start loopback interface and assign camera to loopback interface.

Starting and assigning loopback can be done with those commands:

sudo modprobe v4l2loopbackcd ~/husarion_ws/src/thera_z1/libuvc-theta-sample/gst./gst_loopback

Now you will be able to acces your THETA Z1 with any software.

cv_camera and rostopics#

Download and build cv_camera

cd ~/husarion_ws/src/git clone https://github.com/OTL/cv_camera.gitcd ..catkin_make --only-pkg-with-deps cv_camera

In order to test it run:

# Terminal 1roscore
# Terminal 2# device_id is /dev/video numberrosparam set cv_camera/device_id 0rosrun cv_camera cv_camera_node
# Terminal 3rosrun image_view image_view image:=/cv_camera/image_raw

This will open window with preview from camera. Window might be too wide to fit in on your screen so probably you will see only part of camera's field of view.

OpenCV face detection#

As an example we will use this repository.

cd ~/husarion_ws/srcgit clone https://github.com/adarsh1021/facedetection.gitcd facedetectionpython3 detect_face_video.py

If this script won't run change line 7 to match /dev/video interface number.


by Krzysztof Wojciechowski, Husarion

Do you need any support with completing this project or have any difficulties with software or hardware? Feel free to describe your thoughts on our community forum: https://community.husarion.com/ or to contact with our support: support@husarion.com