All Projects → chutsu → yac

chutsu / yac

Licence: MIT license
YAC - Yet Another Calibrator

Programming Languages

C++
36643 projects - #6 most used programming language
matlab
3953 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
CMake
9771 projects
Makefile
30231 projects

Projects that are alternatives of or similar to yac

Autoware.ai
Open-source software for self-driving vehicles
Stars: ✭ 5,044 (+26447.37%)
Mutual labels:  ros, calibration
Easy handeye
Automated, hardware-independent Hand-Eye Calibration
Stars: ✭ 355 (+1768.42%)
Mutual labels:  ros, calibration
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (+452.63%)
Mutual labels:  ros, calibration
Handeye calib camodocal
Easy to use and accurate hand eye calibration which has been working reliably for years (2016-present) with kinect, kinectv2, rgbd cameras, optical trackers, and several robots including the ur5 and kuka iiwa.
Stars: ✭ 364 (+1815.79%)
Mutual labels:  ros, calibration
Lidar camera calibration
ROS package to find a rigid-body transformation between a LiDAR and a camera for "LiDAR-Camera Calibration using 3D-3D Point correspondences"
Stars: ✭ 734 (+3763.16%)
Mutual labels:  ros, calibration
Robot cal tools
A suite of tools focused on calibration of sensors for robotic workcell development
Stars: ✭ 96 (+405.26%)
Mutual labels:  ros, calibration
Robot calibration
Generic calibration for robots
Stars: ✭ 154 (+710.53%)
Mutual labels:  ros, calibration
ros-windows-build
ROS on Windows build pipelines
Stars: ✭ 18 (-5.26%)
Mutual labels:  ros
Handeye-Calibration-ROS
🤖 Elaborated hand-eye calibration tutorials (ROS-binding)
Stars: ✭ 80 (+321.05%)
Mutual labels:  ros
aruco localization
ROS localization node using an ArUco Marker Map.
Stars: ✭ 30 (+57.89%)
Mutual labels:  ros
point-cloud-clusters
A catkin workspace in ROS which uses DBSCAN to identify which points in a point cloud belong to the same object.
Stars: ✭ 43 (+126.32%)
Mutual labels:  ros
ur ws
Universal robot with robotiq hand workspace
Stars: ✭ 21 (+10.53%)
Mutual labels:  ros
DistCorr-lib
Optical distortion calculation and correction; open source C, C++ library
Stars: ✭ 30 (+57.89%)
Mutual labels:  calibration
urdf-rs
URDF parser using serde-xml-rs for rust
Stars: ✭ 21 (+10.53%)
Mutual labels:  ros
PROBOT Anno
ROS Packages for PROBOT Anno.
Stars: ✭ 75 (+294.74%)
Mutual labels:  ros
godel
ROS-Industrial Focused Technical Project: Robotic Blending
Stars: ✭ 64 (+236.84%)
Mutual labels:  ros
ros jetson stats
🐢 The ROS jetson-stats wrapper. The status of your NVIDIA jetson in diagnostic messages
Stars: ✭ 55 (+189.47%)
Mutual labels:  ros
SKR-V1.4-Turbo-Stepper-Driver-Jumper-Configuration-Manual
SKR V1.4 TURBO Stepper Driver Jumper Configuration Manual
Stars: ✭ 33 (+73.68%)
Mutual labels:  calibration
raspimouse book info
「Raspberry Piで学ぶ ROSロボット入門」の情報ポータル
Stars: ✭ 48 (+152.63%)
Mutual labels:  ros
spinnaker sdk camera driver
Point Grey (FLIR) Spinnaker based camera driver (Blackfly S etc.)
Stars: ✭ 106 (+457.89%)
Mutual labels:  ros

YAC - Yet Another Calibrator

Yet Another Calibrator (YAC) is a calibration tool for calibrating RGB cameras. Specifically:

  • Camera intrinsics
  • Stereo camera intrinsics and extrinsics
  • Mocap-marker to camera extrinsics

Supported projection-distortion models:

  • pinhole-radtan4
  • pinhole-equi4

Dependencies

# Ubuntu packages
libyaml-cpp-dev
libeigen3-dev
libceres-dev
libopencv-dev
libomp-dev (optional)

# Custom (see deps dir)
Modified apriltag3 (https://github.com/AprilRobotics/apriltag)
Modified apriltags (https://github.com/chutsu/apriltags)

Build

For the lazy :

# The following assumes you have a catkin workspace at $HOME/catkin_ws
# If not edit the CATKIN_WS variable in the Makefile

git clone https://github.com/chutsu/yac
cd yac
make deps
make release

Or standard approach:

# Clone repo to your catkin workspace
cd <your catkin workspace>/src
git clone https://github.com/chutsu/yac

# Install dependencies
cd yac && make deps

# Build yac
catkin build -DCMAKE_BUILD_TYPE=Release yac yac_ros
# Note: Optimization will be very slow if not built in RELEASE mode.

Calibration Target

yac uses a grid of AprilTags, a.k.a an AprilGrid, as a calibration target.

AprilGrid

Click here to download and print the AprilGrid. During data collection make sure the calibration target is as flat as possible.

Calibrate Camera Intrinsics or Stereo Intrinsics and Extrinsics

First inorder to calibrate a monocular camera or stereo camera pair we need to create the calibration configuration file. For example calib_intel_d435i.yaml configuration file:

ros:
  bag: "/data/intel_d435i/imucam-1.bag"
  cam0_topic: "/stereo/camera0/image"

calib_target:
  target_type: 'aprilgrid'  # Target type
  tag_rows: 6               # Number of rows
  tag_cols: 6               # Number of cols
  tag_size: 0.088           # Size of apriltag, edge to edge [m]
  tag_spacing: 0.3          # Ratio of space between tags to tagSize
                            # Example: tag_size=2m, spacing=0.5m
                            #          --> tag_spacing=0.25[-]

cam0:
  proj_model: "pinhole"
  dist_model: "radtan4"
  lens_hfov: 69.4
  lens_vfov: 42.5
  resolution: [640.0, 480.0]
  rate: 30.0

cam1:
  proj_model: "pinhole"
  dist_model: "radtan4"
  lens_hfov: 69.4
  lens_vfov: 42.5
  resolution: [640.0, 480.0]
  rate: 30.0

The above tells yac where to find the rosbag containing the calibration data, the calibration target and camera details. Now, we need to pass that to a yac calibrator via the roslaunch file calib_mono.launch or calib_stereo.launch:

# To calibrate cam0 intrinsics only
roslaunch yac calib_mono.launch config_file:=<path to calib_intel_d435i.yaml>

# To calibrate stereo camera pair intrinsics and extrinsics
roslaunch yac calib_stereo.launch config_file:=<path to calib_intel_d435i.yaml>

LICENCE

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].