Skip to content

VectorRobotics/360_camera_ros2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

360 Camera ROS 2 Minimal

This workspace is the minimal version of the project needed to run:

ros2 launch receive_theta receive_theta_sensorpod.launch

and publish:

  • /camera/image
  • /camera/image/compressed

Only the receive_theta ROS 2 package and the third-party camera dependencies needed by that package are kept.

Repository Layout

src/
  receive_theta/
    CMakeLists.txt
    package.xml
    launch/receive_theta_sensorpod.launch
    src/receiveTheta.cpp
    dependency/
      libuvc-theta/
      gstthetauvc/

System Dependencies

Install the GStreamer runtime and development packages:

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

Install the ROS and OpenCV dependencies used by receive_theta:

sudo apt install \
  ros-jazzy-cv-bridge \
  ros-jazzy-rclcpp \
  ros-jazzy-sensor-msgs \
  ros-jazzy-std-msgs \
  libopencv-dev

Build Third-Party Camera Dependencies

Build and install libuvc-theta:

cd src/receive_theta/dependency/libuvc-theta
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
sudo cmake --install build
sudo ldconfig

Build and install the thetauvcsrc GStreamer plugin:

cd src/receive_theta/dependency/gstthetauvc/thetauvc
make
sudo make install

Verify the plugin is visible:

gst-inspect-1.0 thetauvcsrc

Build The Workspace

From the workspace root:

source /opt/ros/jazzy/setup.bash
colcon build --packages-select receive_theta --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash

Run

  1. Plug the RICOH THETA camera into USB.
  2. Power it on.
  3. Switch it into live video mode.
  4. Launch the node:
ros2 launch receive_theta receive_theta_sensorpod.launch

Verify Topics

ros2 topic list | grep /camera/image
ros2 topic hz /camera/image
ros2 topic echo /camera/image/compressed --once

Notes

  • showImage:=true opens a preview window:
ros2 launch receive_theta receive_theta_sensorpod.launch showImage:=true
  • The node subscribes to /imu/data for timestamp alignment. If there is no IMU input, image publishing still works and only timestamp compensation becomes less accurate.

About

Ricoh Theta Z1 camera driver and lidar-to-camera extrinsic/latency calibration for Mecanum wheel platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 95.5%
  • CMake 3.0%
  • C++ 1.2%
  • Makefile 0.3%