All Projects → Jmeyer1292 → Robot_cal_tools

Jmeyer1292 / Robot_cal_tools

Licence: apache-2.0
A suite of tools focused on calibration of sensors for robotic workcell development

Projects that are alternatives of or similar to Robot cal tools

yac
YAC - Yet Another Calibrator
Stars: ✭ 19 (-80.21%)
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 (+9.38%)
Mutual labels:  ros, calibration
Autoware.ai
Open-source software for self-driving vehicles
Stars: ✭ 5,044 (+5154.17%)
Mutual labels:  ros, calibration
Robot calibration
Generic calibration for robots
Stars: ✭ 154 (+60.42%)
Mutual labels:  ros, calibration
Easy handeye
Automated, hardware-independent Hand-Eye Calibration
Stars: ✭ 355 (+269.79%)
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 (+279.17%)
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 (+664.58%)
Mutual labels:  ros, calibration
Mads.jl
MADS: Model Analysis & Decision Support
Stars: ✭ 71 (-26.04%)
Mutual labels:  calibration
Aws Robomaker Small Warehouse World
This Gazebo world is well suited for organizations who are building and testing robot applications for warehouse and logistics use cases.
Stars: ✭ 85 (-11.46%)
Mutual labels:  ros
Icse Seip 2020 Replication Package
Replication package of the paper titled "How do you Architect your Robots? State of the Practice and Guidelines for ROS-based Systems" published at ICSE-SEIP 2020
Stars: ✭ 68 (-29.17%)
Mutual labels:  ros
Panther
🐆 Panther is an Open Robotic AGV platform ROS based for Outdoor and Indoor enviroments.
Stars: ✭ 67 (-30.21%)
Mutual labels:  ros
Docker
Docker containers for OpenCog - Robot Operating System (ROS)
Stars: ✭ 72 (-25%)
Mutual labels:  ros
Simulator
A ROS/ROS2 Multi-robot Simulator for Autonomous Vehicles
Stars: ✭ 1,260 (+1212.5%)
Mutual labels:  ros
Testing Video
Generator of test video files for testing your media playback devices and calibrate TV sets
Stars: ✭ 70 (-27.08%)
Mutual labels:  calibration
Rvd
Robot Vulnerability Database. An archive of robot vulnerabilities and bugs.
Stars: ✭ 87 (-9.37%)
Mutual labels:  ros
Didi challenge ros
Roslaunch to visualize a rosbag file from Udacity (DiDi Challenge)
Stars: ✭ 69 (-28.12%)
Mutual labels:  ros
Mrpt navigation
ROS nodes wrapping core MRPT functionality: localization, autonomous navigation, rawlogs, etc.
Stars: ✭ 90 (-6.25%)
Mutual labels:  ros
Ira laser tools
All laser type assemblers and manipulators.
Stars: ✭ 87 (-9.37%)
Mutual labels:  ros
Navigation
ROS Navigation stack. Code for finding where the robot is and how it can get somewhere else.
Stars: ✭ 1,248 (+1200%)
Mutual labels:  ros
Ros Openpose
CMU's OpenPose for ROS
Stars: ✭ 81 (-15.62%)
Mutual labels:  ros

Robot Calibration Tools

Static Camera Workcell Setup

Description

A loosely connected bundle of tools for calibrating cameras to (industrial) robots and vice-versa with a focus on being easy to integrate into more complex applications.

This work is based on the work of Dr. Chris Lewis @drchrislewis (see industrial_calibration) and modifications made by Geoffrey Chiou in IC2.

The focus and philosophy of this library is provide to provide a suite of stand-alone "optimization functions" that take as input structure full of well-documented arguments and produce an answer that is your calibration. How you collect data and what you do with the answer is left to you.

Installation

This library is meant to be used within the ROS ecosystem, but the core optimizations depends on only Ceres-Solver and its dependencies. Follow the link for instructions to install Ceres. Afterwards, clone this package into your workspace and build with catkin.

Other support libraries use additional tools:

  • The built-in "target finder" in rct_image_tools uses OpenCV.
  • The data collection helpers in rct_ros_tools uses TF and various image transport mechanisms.

Quick-Start

  1. Please read the calibration primer for a description of terminology and conventions used in this library.
  2. Please visit the documentation for the calibration you wish to solve in rct_optimizations. See below for a discussion of supported problems.
  3. If you need to do intrinsic calibration of your sensor, then please use ROS' built in method from here. Alternatively, use OpenCV's calibrateCamera function on which the ROS utility is built.
  4. After setting up your "experiment", perform any necessary data collection: moving robots, taking images, etc. Be sure to get a good diversity of images; skew is important!
  5. Create an instance of your problem's Problem data structure and fill it out.
  6. Call rct_optimizations::optimize(Problem&) and get a Result back.
  7. Check that the result converged and then apply it to your workcell: either manually modify the URDF, publish the TF frame, etc. Consider using something like (shameless plug) mutable transform publisher.

Outline

  • rct_optimizations: Contains core libraries for performing the "math" of optimizations, usually using Ceres. This is where you'll find your library calls.
  • rct_image_tools: Builds on OpenCV to provide tools for finding targets in images. This lets you extract "correspondences" easily for supported target types.
  • rct_examples: This package contains both simple examples and offline processing tools for a variety of common calibrations. Look here for experimental setups and examples.
  • rct_ros_tools: (Experimental) Provides some "helper tools" for data collection and loading of data through ROS parameters/YAML files.

Calibrations

See the readme of rct_examples for more information on the most popular and tested calibrations. There's even some nice pictures.

Currently supported calibrations:

  • Extrinsic calibration of a 2D camera on robot wrist
  • Extrinsic calibration of a 3D camera on robot wrist
  • Extrinsic calibration of one or more static cameras in the workcell

Semi-Experimental (these have testing or robustness that needs to be improved):

  • Solve PnP for one or more cameras
  • Intrinsic calibration

The source code for these calibrations can be found in rct_optimizations.

Example Code

For example, see rct_example's camera-on-wrist calibration.

Development Plan

  1. Replicate the OpenCV intrinsic calibration
  2. Implement Qt GUI based on IC2 to speed calibration process in simple scenarios.
  3. Provide examples of qualifiying the accuracy of a calibrated system
  4. Investigate robot kinematic calibration (ala Mike Ferguson' package)
  5. Provide tools explicitly for robot tool calibration (for the moment, please see my super simple one at tool_point_calibration
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].