Classes | Typedefs | Enumerations | Functions | Variables
robot_calibration Namespace Reference

Calibration code lives under this namespace. More...

Classes

class  BaseCalibration
 Class for moving the base around and calibrating imu and odometry. More...
 
class  CalibrationOffsetParser
 Combined parser and configuration for calibration offsets. Holds the configuration of what is to be calibrated, and and parses the actual adjustments from the free parameters. More...
 
class  Camera3dModel
 Model of a camera on a kinematic chain. More...
 
class  CaptureManager
 
struct  Chain3dToChain3d
 Error block for computing the residual error between two 3d data sources. This can be used to calibrate 3d cameras to arms, or 3d cameras to other 3d cameras. More...
 
struct  Chain3dToMesh
 Error block for computing the fit between a set of projected points and a mesh (usually part of the robot body). Typically used to align sensor with the robot footprint. More...
 
struct  Chain3dToPlane
 Error block for computing the fit between a set of projected points and a plane (aX + bY + cZ + d = 0). Typically used to align sensor with the ground, but could be used to align with a flat robot base, etc. More...
 
class  ChainManager
 Manages moving joints to a new pose, determining when they are settled, and returning current joint_states. More...
 
class  ChainModel
 Model of a kinematic chain. This is the basic instance where we transform the world observations into the proper root frame. More...
 
class  CheckerboardFinder
 Finds checkerboards in images or point clouds. More...
 
class  DepthCameraInfoManager
 Base class for a feature finder. More...
 
class  FeatureFinder
 Base class for a feature finder. More...
 
class  FeatureFinderLoader
 Load feature finders, based on param server config. More...
 
class  LedFinder
 This class processes the point cloud input to find the LED. More...
 
class  MeshLoader
 
struct  OptimizationParams
 Class to hold parameters for optimization. More...
 
class  Optimizer
 Class to do optimization. More...
 
struct  OutrageousError
 Error block to restrict the offsets generated by ceres-solver from becoming outrageously large. More...
 
class  PlaneFinder
 Finds the largest plane in a point cloud. More...
 
struct  PlaneToPlaneError
 Error block for computing the fit between two sets of projected points and their planar models plane (aX + bY + cZ + d = 0). Typically used to align multiple 3d cameras when they are not able to see high-resolution checkerboards, but can see a common plane (wall/floor/etc). More...
 
class  RobotFinder
 
class  ScanFinder
 The scan finder is useful for aligning a laser scanner with other sensors. In particular, the laser scan be multiplied in the Z direction in order to create a plane for plane to plane calibration. More...
 

Typedefs

typedef std::map< std::string, FeatureFinderPtrFeatureFinderMap
 
typedef boost::shared_ptr< FeatureFinderFeatureFinderPtr
 
using MeshPtr = std::shared_ptr< shapes::Mesh >
 

Enumerations

enum  { CAMERA_INFO_P_FX_INDEX =0, CAMERA_INFO_P_FY_INDEX =5, CAMERA_INFO_P_CX_INDEX =2, CAMERA_INFO_P_CY_INDEX =6 }
 
enum  { CAMERA_INFO_K_FX_INDEX =0, CAMERA_INFO_K_FY_INDEX =4, CAMERA_INFO_K_CX_INDEX =2, CAMERA_INFO_K_CY_INDEX =5 }
 
enum  {
  CAMERA_INFO_D_1 =0, CAMERA_INFO_D_2 =1, CAMERA_INFO_D_3 =2, CAMERA_INFO_D_4 =3,
  CAMERA_INFO_D_5 =4
}
 
enum  {
  CAMERA_PARAMS_CX_INDEX =0, CAMERA_PARAMS_CY_INDEX =1, CAMERA_PARAMS_FX_INDEX =2, CAMERA_PARAMS_FY_INDEX =3,
  CAMERA_PARAMS_Z_SCALE_INDEX =4, CAMERA_PARAMS_Z_OFFSET_INDEX =5
}
 

Functions

void axis_magnitude_from_rotation (const KDL::Rotation &r, double &x, double &y, double &z)
 Converts from KDL::Rotation to angle-axis-with-integrated-magnitude. More...
 
double distancePoints (const geometry_msgs::Point p1, const geometry_msgs::Point p2)
 
double distToLine (Eigen::Vector3d &a, Eigen::Vector3d &b, Eigen::Vector3d c)
 Get the squared distance line segment A-B for point C. More...
 
bool exportResults (Optimizer &optimizer, const std::string &initial_urdf, const std::vector< robot_calibration_msgs::CalibrationData > &data)
 Write the outputs of a calibration. More...
 
Eigen::Vector3d getCentroid (Eigen::MatrixXd points)
 Get the centroid of a point cloud. More...
 
Eigen::MatrixXd getMatrix (const std::vector< geometry_msgs::PointStamped > &points)
 Get an Eigen::MatrixXd from a vector of PointStamped. More...
 
bool getPlane (Eigen::MatrixXd points, Eigen::Vector3d &normal, double &d)
 Find the plane parameters for a point cloud. More...
 
bool getPosesFromBag (const std::string &pose_bag_name, std::vector< robot_calibration_msgs::CaptureConfig > &poses)
 Load a vector of calibration poses from a bagfile. More...
 
int getSensorIndex (const robot_calibration_msgs::CalibrationData &msg, const std::string &sensor)
 Determine which observation index corresponds to a particular sensor name. More...
 
bool hasSensor (const robot_calibration_msgs::CalibrationData &msg, const std::string &sensor)
 Determine if a sample of data has an observation from the desired sensor. More...
 
bool load_bag (const std::string &file_name, std_msgs::String &description_msg, std::vector< robot_calibration_msgs::CalibrationData > &data)
 Load a bagfile of calibration data. More...
 
double positionFromMsg (const std::string &name, const sensor_msgs::JointState &msg)
 
KDL::Rotation rotation_from_axis_magnitude (const double x, const double y, const double z)
 Converts our angle-axis-with-integrated-magnitude representation to a KDL::Rotation. More...
 
int sampleCloud (const sensor_msgs::PointCloud2 &points, double sample_distance, size_t max_points, std::vector< geometry_msgs::PointStamped > &sampled_points)
 
sensor_msgs::CameraInfo updateCameraInfo (double camera_fx, double camera_fy, double camera_cx, double camera_cy, const sensor_msgs::CameraInfo &info)
 Update the camera calibration with the new offsets. More...
 

Variables

const unsigned B = 2
 
const unsigned G = 1
 
const unsigned R = 0
 
const unsigned X = 0
 
const unsigned Y = 1
 
const unsigned Z = 2
 

Detailed Description

Calibration code lives under this namespace.

Typedef Documentation

◆ FeatureFinderMap

typedef std::map<std::string, FeatureFinderPtr > robot_calibration::FeatureFinderMap

Definition at line 35 of file feature_finder_loader.h.

◆ FeatureFinderPtr

Definition at line 34 of file feature_finder_loader.h.

◆ MeshPtr

using robot_calibration::MeshPtr = typedef std::shared_ptr<shapes::Mesh>

Definition at line 32 of file mesh_loader.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CAMERA_INFO_P_FX_INDEX 
CAMERA_INFO_P_FY_INDEX 
CAMERA_INFO_P_CX_INDEX 
CAMERA_INFO_P_CY_INDEX 

Definition at line 29 of file camera_info.h.

◆ anonymous enum

anonymous enum
Enumerator
CAMERA_INFO_K_FX_INDEX 
CAMERA_INFO_K_FY_INDEX 
CAMERA_INFO_K_CX_INDEX 
CAMERA_INFO_K_CY_INDEX 

Definition at line 34 of file camera_info.h.

◆ anonymous enum

anonymous enum
Enumerator
CAMERA_INFO_D_1 
CAMERA_INFO_D_2 
CAMERA_INFO_D_3 
CAMERA_INFO_D_4 
CAMERA_INFO_D_5 

Definition at line 39 of file camera_info.h.

◆ anonymous enum

anonymous enum
Enumerator
CAMERA_PARAMS_CX_INDEX 
CAMERA_PARAMS_CY_INDEX 
CAMERA_PARAMS_FX_INDEX 
CAMERA_PARAMS_FY_INDEX 
CAMERA_PARAMS_Z_SCALE_INDEX 
CAMERA_PARAMS_Z_OFFSET_INDEX 

Definition at line 45 of file camera_info.h.

Function Documentation

◆ axis_magnitude_from_rotation()

void robot_calibration::axis_magnitude_from_rotation ( const KDL::Rotation &  r,
double &  x,
double &  y,
double &  z 
)

Converts from KDL::Rotation to angle-axis-with-integrated-magnitude.

Definition at line 282 of file models.cpp.

◆ distancePoints()

double robot_calibration::distancePoints ( const geometry_msgs::Point  p1,
const geometry_msgs::Point  p2 
)

Definition at line 39 of file led_finder.cpp.

◆ distToLine()

double robot_calibration::distToLine ( Eigen::Vector3d a,
Eigen::Vector3d b,
Eigen::Vector3d  c 
)

Get the squared distance line segment A-B for point C.

Parameters
aPoint representing one end of the line segment
bPoint representing the other end of the line segment
cPoint to get distance to line segment

Based on "Real Time Collision Detection", pg 130

Definition at line 44 of file chain3d_to_mesh_error.h.

◆ exportResults()

bool robot_calibration::exportResults ( Optimizer optimizer,
const std::string &  initial_urdf,
const std::vector< robot_calibration_msgs::CalibrationData > &  data 
)

Write the outputs of a calibration.

Parameters
optimizerThe optimizer instance, where we get our offsets from
initial_urdfThe initial URDF, to which offsets are added
dataThe raw calibration data, currently used only to get CameraInfo

Definition at line 28 of file calibration_export.cpp.

◆ getCentroid()

Eigen::Vector3d robot_calibration::getCentroid ( Eigen::MatrixXd  points)
inline

Get the centroid of a point cloud.

Definition at line 50 of file eigen_geometry.h.

◆ getMatrix()

Eigen::MatrixXd robot_calibration::getMatrix ( const std::vector< geometry_msgs::PointStamped > &  points)
inline

Get an Eigen::MatrixXd from a vector of PointStamped.

Definition at line 35 of file eigen_geometry.h.

◆ getPlane()

bool robot_calibration::getPlane ( Eigen::MatrixXd  points,
Eigen::Vector3d normal,
double &  d 
)
inline

Find the plane parameters for a point cloud.

Parameters
pointsPoint cloud to determine plane parameters
normalThe calculated normal, returned by reference
dThe calculated d value in the plane equation

The equation of the plane will be ax + by + cz + d = 0, where a, b, and c are the normal.

Definition at line 64 of file eigen_geometry.h.

◆ getPosesFromBag()

bool robot_calibration::getPosesFromBag ( const std::string &  pose_bag_name,
std::vector< robot_calibration_msgs::CaptureConfig > &  poses 
)

Load a vector of calibration poses from a bagfile.

Definition at line 32 of file capture_poses.cpp.

◆ getSensorIndex()

int robot_calibration::getSensorIndex ( const robot_calibration_msgs::CalibrationData &  msg,
const std::string &  sensor 
)

Determine which observation index corresponds to a particular sensor name.

Definition at line 30 of file calibration_data_helpers.h.

◆ hasSensor()

bool robot_calibration::hasSensor ( const robot_calibration_msgs::CalibrationData &  msg,
const std::string &  sensor 
)

Determine if a sample of data has an observation from the desired sensor.

Definition at line 47 of file calibration_data_helpers.h.

◆ load_bag()

bool robot_calibration::load_bag ( const std::string &  file_name,
std_msgs::String &  description_msg,
std::vector< robot_calibration_msgs::CalibrationData > &  data 
)

Load a bagfile of calibration data.

Parameters
file_nameName of the bag file to load.
description_msgThis will be loaded with the URDF string.
dataThis will be loaded with the calibration data.

Definition at line 42 of file load_bag.h.

◆ positionFromMsg()

double robot_calibration::positionFromMsg ( const std::string &  name,
const sensor_msgs::JointState &  msg 
)

Definition at line 27 of file models.cpp.

◆ rotation_from_axis_magnitude()

KDL::Rotation robot_calibration::rotation_from_axis_magnitude ( const double  x,
const double  y,
const double  z 
)

Converts our angle-axis-with-integrated-magnitude representation to a KDL::Rotation.

Definition at line 269 of file models.cpp.

◆ sampleCloud()

int robot_calibration::sampleCloud ( const sensor_msgs::PointCloud2 &  points,
double  sample_distance,
size_t  max_points,
std::vector< geometry_msgs::PointStamped > &  sampled_points 
)

Definition at line 40 of file plane_finder.cpp.

◆ updateCameraInfo()

sensor_msgs::CameraInfo robot_calibration::updateCameraInfo ( double  camera_fx,
double  camera_fy,
double  camera_cx,
double  camera_cy,
const sensor_msgs::CameraInfo &  info 
)
inline

Update the camera calibration with the new offsets.

Definition at line 54 of file camera_info.h.

Variable Documentation

◆ B

const unsigned robot_calibration::B = 2

Definition at line 37 of file led_finder.cpp.

◆ G

const unsigned robot_calibration::G = 1

Definition at line 36 of file led_finder.cpp.

◆ R

const unsigned robot_calibration::R = 0

Definition at line 35 of file led_finder.cpp.

◆ X

const unsigned robot_calibration::X = 0

Definition at line 32 of file checkerboard_finder.cpp.

◆ Y

const unsigned robot_calibration::Y = 1

Definition at line 33 of file checkerboard_finder.cpp.

◆ Z

const unsigned robot_calibration::Z = 2

Definition at line 34 of file checkerboard_finder.cpp.



robot_calibration
Author(s): Michael Ferguson
autogenerated on Fri Sep 1 2023 02:52:01