CHANGELOG

Changelog for package robot_calibration

0.10.0 (2024-12-12)

  • massive speedup of plane finder (#191) * roughly 30x faster on VGA point cloud filtering * KDL was 3x faster than using Eigen

  • improve base calibration (#190) * add rollout calibration using linear movements * parameterize the calibration_steps

  • improve LED finder (#189) if the single pixel that is most changed has NANs, don’t immediately throw out the sample

  • revert dependency on libfcl-dev (#188)

  • Contributors: Michael Ferguson

0.9.3 (2024-12-03)

  • temporarily depend on libfcl-dev (#185)

  • Contributors: Michael Ferguson

0.9.2 (2024-11-08)

  • include tf2_geometry_msgs earlier to avoid missing symbols (#182)

  • port capture_poses script to ROS 2, document (#181)

  • improve parsing of xyz and rpy fields (#177) * don’t segfault if xyz or rpy missing * remove extra spaces in xyz/rpy fields

  • urdf/model.h -> urdf/model.hpp (#175)

  • Contributors: Michael Ferguson

0.9.1 (2024-09-26)

  • add qos overrides for finders (#174) this is primarily a workaround for the issues seen in jazzy where large topics do not come through over best effort subscribers.

  • do not run calibration if no feature finders (#167) due to misconfiguration (for instance, camera_info topic is wrong) the finders may not initialize but the robot will move through all the poses, say it captured all of them, and then have no observations in the output bagfile

  • remove redundant keep_last() (#166)

  • Contributors: Michael Ferguson

0.9.0 (2024-04-23)

  • deprecated header has been removed for j-turtle (#162) this branch now only supports Iron and later, update CI to reflect that

  • update checkerboard comment (#160)

  • Contributors: Michael Ferguson

0.8.1 (2023-11-25)

  • update to tinyxml2 (#159) * proper depends, rather than hijacking urdfdom * less control over formatting, had to update tests

  • fix checkerboard parameter name (#154) recently fixed this parameter to actually work, but the name is still different from ROS1.

  • implement chain3d_to_camera2d error block (#153) Second part of #41, adds error block to use data from #152

  • Add finder for 2d checkerboard (#152) This is the first step towards completing #41 * Refactors checkerboard finder to be templated on data type. * Uses template specialization to make 2d and 3d variants. * Updates test to load both variants.

  • properly namespace parameters (#151) These issues were apparently an oversight during the ROS2 port.

  • better messages for error_block errors (#150)

  • add warning if checkerboard is symmetric (#147)

  • fixes for base_calibration based on testing (#138)

  • Contributors: Michael Ferguson

0.8.0 (2022-06-25)

  • various fixes from on-robot testing (#136) * fix topic names in load_bag * update DepthCameraInfoManager to read proper parameters from camera node * fix path/names for pluginlib portability * better debug messages when capturing * better debug messages from ChainManager

  • add yaml option for storing capture poses (#135) * load calibration poses from YAML * add test for YAML loading * add porting script to get ROS1 bagfiles converted to YAML file

  • remove tinyxml from CMake (#134) this is a left over from the XML RPC days

  • initial ROS2 port of robot_calibration (#133) * port finders to ROS2 * port optimization to ROS2 * port tests to ROS * reorganize file structure for better clarity around header file usage * update readme Major changes for ROS2: * In ROS1, many of the parameters were an array of complex structures - this does not work well with ROS2 and the declaration of parameters. Instead, we use an array of structure names, and then we can declare namespaced parameters for each of the structures. * chain model has been renamed to chain3d

  • port robot_calibration_msgs to ROS2, update CI (#131)

  • enhance alignment (#130) * handle NANs in laser data * add r2_tolerance * add spinOnce so that we can run single threaded * exit loop if shutting down

  • fix regression in manual calibration (#129)

  • fix warnings reported on ros.org buildfarm (#128)

  • improve base calibration alignment (#127) * add feature to align to arbitrary angle * parameterize things, including verbose

  • refactor base_calibration into separate class (#126)

  • major refactor into re-usable components (#125) * add getPosesFromBag function * add captureManager to clean up code and improve re-usability * split out exportResults as a function * for all models, renamed name() to getName(), added getType() function * add getCameraNames() function to optimizer, so that we can: * output camera calibrations for ALL cameras

  • Contributors: Michael Ferguson

0.7.0 (2022-04-20)

  • filter planes by closeness to desired normal (#124)

  • add finder for laser scan data (#123) best way to use this right now is to create point laser scanner at a wall, create a plane from the laser scan, and align it with a plane that has been seen by a camera

  • sample observation more evenly (#122) the plane finder previously took points that were equally distributed by point cloud index - however this doesn’t actually always represent a point cloud that is geometry well distributed. change the sampling so that we make one or more passes through the cloud sampling points that are at least a minimum distance away from the already sampled points

  • refactor plane finder (#121) * use new eigen_geometry.h functions * use ransac to find the best plane

  • refactor and improve plane_to_plane cost function (#120) * use Eigen rather than OpenCV * break plane parameter functions into separate header for reuse * make final residual distance between planes * make plane parameters always in same direction

  • make it easier to exit out of calibration (#119)

  • parameterize max_num_iterations (#118)

  • add chain3dToMesh calibration (#116) * add cost function * add mesh loader utilities * add node to visualize meshes load

  • allow using the same camera model with different finders (#112) the use case here is that a single camera is used in multiple finders. When that happens we want the same parameters to be used when calibrating the camera intrinsics, but we need a different camera name to differentiate which observation should be associated with which error block (this is especially true for the upcoming robot/plane finder)

  • add robot finder (#111) The robot finder can be used to find the base of the robot and the floor at the same time

  • increase marker size (#117)

  • minor improvements and fixes for viz node (#110) * move publishers earlier and make latching * don’t crash if no points in observation after projecting

  • refactor and improve plane finder (#109) * break up the find() function so that it is more re-usable * change points_max parameter to an integer rather than double * actually find the plane rather than just assuming everything is part of the plane

  • bump cmake version to silence warnings on noetic (#107)

  • Updated the press key message (#106)

  • Add exception when the chain cannot be created (#105)

  • Contributors: Gerardo Puga, Michael Ferguson

0.6.5 (2021-10-30)

  • add support for static camera calibration (#101)

  • remove references to chain3d_to_arm (#99)

  • Contributors: Michael Ferguson

0.6.4 (2020-11-02)

  • improve visualization (#91) * publish joint states for viz * publish point clouds

  • use all features when features are unspecified (#92)

  • only accept organized clouds, fixes #79 (#90)

  • catch by reference to silence warnings (#89)

  • fix opencv build issue (#88)

  • update package.xml for noetic (#87) orocos-kdl is now a system dependency, rosdep key has changed

  • Contributors: Michael Ferguson

0.6.3 (2020-04-27)

  • kinetic requires C++11, but doesn’t specify it (#85)

  • note topics being published/subscribed

  • some fixes for magnetometer cal (#84) * the spinOnce was needed * exit properly on CTRL-C

  • add magnetometer calibration node (#83)

  • remove readme, top level one has docs

  • add travis and code coverage (#80)

  • export feature_finders lib

  • Contributors: Michael Ferguson

0.6.2 (2020-01-14)

  • Merge pull request #75 from mikeferguson/mute_warnings fix warnings about build type

  • fix warnings about build type

  • Merge pull request #74 from mikeferguson/fix_tests fix tests broken by #71

  • fix tests broken by #71

  • Merge pull request #71 from Naoki-Hiraoka/fix-calculation-of-frame_offset Fix calculation of frame offset

  • Merge pull request #73 from mikeferguson/multi-step Support multi-step optimization

  • Merge pull request #68 from d-walsh/bugfix/isnan_error Fixed isnan() error on Kinetic

  • refactor mutli-step support

  • enable multi-step optimization

  • fix frame calculation in getChainFK()

  • fix calculation of frame_offset

  • Fixed isnan() error on Kinetic

  • Contributors: David Walsh, Michael Ferguson, Naoki-Hiraoka

0.6.1 (2019-11-19)

  • Merge pull request #70 from Naoki-Hiraoka/enable-to-change-driver-name Enable to change driver name

  • Merge pull request #69 from Naoki-Hiraoka/allow-multiple-checkerboards Use multiple checkerboards

  • enable to change driver name

  • allow multiple checkerboards

  • Merge pull request #56 from mikeferguson/coverage add code coverage testing

  • update code_coverage to be test_depend

  • add code coverage testing

  • Contributors: Michael Ferguson, Naoki-Hiraoka

0.6.0 (2018-07-09)

  • install our new tools

  • add depend on visualization_msgs

  • Merge pull request #63 from mikeferguson/checkerboards_that_work Make checkerboards actually generic

  • Merge pull request #62 from mikeferguson/chain_manager_state_fix make sure we get valid joint_states

  • make sure we get valid joint_states * invalid old state, wait for new message * fixes #61

  • Merge pull request #59 from saurabhbansal90/master Update led_finder.cpp

  • Update led_finder.cpp

  • additional tests on camera_info

  • fix build in kinetic

  • remove entirely unused data functions header

  • fix corrupted license file

  • additional warning not previously flagged

  • buildfarm is really picky, fix another signed comparison

  • fix signed comparison warning in tests

  • add tool to visualize bagfile

  • break out load_bag function for reuse

  • towards working checkerboards * unhack the checkerboard finder, so that points are in x/y only * add free_frames_initial_values parameter for setting initial offset of checkerboard frame

  • Merge pull request #52 from mikeferguson/melodic-backport backport changes from melodic-devel branch

  • fix OutrageousError This has apparently NEVER worked. The name that was being provided was the error block name, not the name of the parameter to limit.

  • add to_rpy tool The YAML file output by calibration represents angles in the internal axis-magnitude notation. RPY tends to be easier for people to understand and visualize.

  • add some comments to Camera3dModel In particular, a search for checkerboard should really turn up this important piece of code

  • fix test build/warning issues on 18.04

  • Merge pull request #50 from guilhermelawless/tf-buffer-member Make TF buffer a class member

  • make TF buffer a class member Fixes #48. Sleeping to wait for TFs is no longer needed and was removed.

  • Merge pull request #47 from guilhermelawless/fix-checkerboard-visualization Fix checkerboard visualization

  • Merge pull request #45 from guilhermelawless/kinetic-devel Allow some time to get TFs in plane_finder

  • fix checkerboard visualization msg

  • allow some time to get TFs in plane_finder

  • add a second error block test, that actually needs to converge

  • fix parameter name in test, fork a second copy

  • make sure solver ran in test

  • fix cmake errors reported by buildfarm, update maintainer email

  • attempt to fix test on kinetic

  • clean up parameter loading, output printing, README

  • convert camera_to_camera into plane_to_plane

  • convert ground_plane_error into chain3d_to_plane_error

  • convert camera3d_to_arm into chain3d_to_chain3d

  • add param/residual checks to error block test

  • merge GroundPlaneFinder into PlaneFinder

  • make feature finders plugin-based, add tests

  • Contributors: Guilherme Lawless, Michael Ferguson, saurabhbansal90

0.5.5 (2018-02-12)

  • Merge pull request #36 from guilhermelawless/indigo-devel Fix broken OpenCV linking in ROS Kinetic

  • Contributors: Guilherme Lawless, Michael Ferguson

0.5.4 (2018-01-20)

  • only add observations when complete

  • Adds plane calibration

  • minor style fixes, remove outdated comments

  • fix warning (#28)

  • pick correct sensor in each error block

  • use proper indices for multiple finders

  • fix: don’t append observations if finder has failed

  • Contributors: Martin Günther, Michael Ferguson, Niharika Arora

0.5.3 (2016-07-18)

  • add support for multiple finders in a given pose

  • add support for ground plane calibration

  • add parameter for camera_info_topic in depth camera capture module

  • Contributors: Michael Ferguson, Niharika Arora

0.5.2 (2015-07-03)

  • remove dependency on PCL

  • cleanup naming of member variables

  • fix centroid refinement, fixes #20

  • Contributors: Michael Ferguson

0.5.1 (2015-07-01)

  • store calibration output in unique file name

  • better memory management in optimizer

  • parameterize sensor names in finders

  • checkerboard finder working on fetch

  • Contributors: Michael Ferguson

0.5.0 (2015-06-23)

  • add new CaptureConfig message for setting up samples

  • update optimizer to handle new types of error blocks

  • cleanup how we use the depth camera manager

  • refactor how feature finders are loaded

  • Contributors: Michael Ferguson

0.4.1 (2015-06-17)

  • check distance to expected pose in tracker process()

  • Contributors: Michael Ferguson

0.4.0 (2015-06-07)

  • fix for multiple joint_state publishers, roll back async spinner changes

  • output tracker status as image

  • Contributors: Michael Ferguson

0.3.1 (2015-04-23)

  • start async spinner earlier

  • update how we sleep for better data capture

  • Contributors: Michael Ferguson

0.3.0 (2015-04-22)

  • process all callbacks in async spinner

  • make waitForCloud consistent between feature detectors

  • remove all calls to spinOnce in feature detectors, chain management

  • exit if not ros::ok(), fixes #12

  • do not capture if move failed, fixes #14

  • publish point cloud for checkerboard detector

  • Contributors: Michael Ferguson

0.2.2 (2015-04-12)

  • add support for velocity scaling factor

  • Contributors: Michael Ferguson

0.2.1 (2015-04-05)

  • fix uninitialized variable

  • test files should not use .launch extension

  • fix error_block_test, closes #11

  • fix issue with capture stalling

  • Contributors: Michael Ferguson

0.2.0 (2015-03-16)

  • enforce internal consistency between led features

  • remove opencv window, add cloud in message option

  • update how max error is handled

  • extend messages to support multiple sensors

  • implement ExtendedCameraInfo

  • Contributors: Michael Ferguson

0.1.2 (2015-03-15)

  • fix a number of warning

  • enable use of moveit for planning between poses

  • handle multiple joint_states publisher

  • update checkerboard_finder config

  • refactor led finder to use lots of parameters

  • Contributors: Michael Ferguson

0.1.1 (2015-03-05)

  • first release

  • Contributors: Michael Ferguson