This tutorial is based on official tutorial by RICOH
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
/dev/video device should appear. It's your loopback interface you will later assign to your THETA Z1.
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";
"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:
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.
Connect your camera via USB turn it on and select LIVE mode and run:
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.
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.
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: email@example.com