Commit Graph

44 Commits

Author SHA1 Message Date
sfalexrog
91f6f6dd32 aruco_map: Use two-pass solvePnP
There are cases when iterative solvePnP method converges on a "wrong" camera position due to projectPoints not treating negative Z values properly.
Other methods don't seem to be affected by that, but their results differ from the iterative method slightly. By combining these two methods we
"nudge" the iterative method towards the correct camera position and get satisfactory results most of the time.

Sometimes, though, even with the "nudge" the iterative method diverges catastrophically, and this is not caught by the solver. We work around that
by assuming our camera position cannot be too far from the markers.
2019-05-20 12:29:42 +03:00
sfalexrog
53c2cf6998 aruco_map: map parser improvements (#118)
* aruco_map: Improve parser

* aruco_map: Use marker id for map visualization

* aruco_pose: Add parser pass test

* aruco_map: Code style

* aruco_pose: Add more test cases

* aruco_map: Better message handling

* aruco_map: Be more informative about bad lines

* aruco_map: Add failure mode tests

* aruco_map: Be less strict about map contents

* aruco_pose: Restructure tests

* aruco_map: Don't use marker id in visualization

* aruco_map: Check for marker uniqueness

* aruco_pose: Use board data to reject duplicate markers

* aruco_pose/test: Spelling fixes
2019-05-13 17:43:20 +03:00
sfalexrog
e9e8c84ddf aruco_pose: Try to draw as much of axes as possible 2019-04-07 22:46:38 +03:00
sfalexrog
04c33d5b03 aruco_pose/draw: Be more strict about drawing axis 2019-03-21 21:52:20 +03:00
Oleg Kalachev
b4e8d9b18a aruco_pose: little style fix 2019-03-21 20:58:44 +03:00
Oleg Kalachev
e601080a95 aruco_pose: add param auto_flip 2019-03-21 20:55:35 +03:00
Oleg Kalachev
84c16a7296 aruco_pose: fix snapping alrogithm 2019-03-21 20:55:35 +03:00
sfalexrog
acec09192b aruco_map: Try to fix frame drawing bug
`cv::aruco::drawAxis` would attempt to draw detected frame origin even when it's behind the camera. This resulted in an invalid, flipped frame displayed in `/aruco_map/debug`.

This commit prevents drawing frame axis if the frame origin (projected to the screen space) is behind the screen plane.
2019-03-20 16:14:29 +03:00
Oleg Kalachev
05791bb0bf genmap.py: remove unused arguments 2019-03-15 19:56:34 +03:00
Alamoris
9cbfc5b687 Fix top left setting 2019-03-15 19:51:10 +03:00
Oleg Kalachev
f30beea983 Typo 2019-03-13 05:05:41 +03:00
Oleg Kalachev
d62e0cac27 Add genmap.py tool 2019-03-13 04:31:45 +03:00
Oleg Kalachev
f2b37d8ea2 aruco_map: fix drawing maps with pitch/roll rotated markers 2019-03-10 02:28:14 +03:00
Oleg Kalachev
e6266e52f8 aruco_pose: remove irrelevant comment 2019-03-09 21:44:08 +03:00
Oleg Kalachev
7a56a7b231 aruco_pose: add length to Marker message 2019-03-02 23:59:26 +03:00
Oleg Kalachev
23516b0fc1 spaces -> tabs 2019-03-02 23:59:26 +03:00
Oleg Kalachev
2b82516a97 aruco_map: fix drawing map image 2019-03-02 23:59:26 +03:00
Oleg Kalachev
d3885135e9 aruco_map: remove unused parameter 2019-03-01 17:39:32 +03:00
Oleg Kalachev
f1c614d91a aruco_pose: use Pose instead of PoseWithCovariance in Marker message (for now) 2019-03-01 13:04:07 +03:00
Oleg Kalachev
9a8202422e aruco_pose: draw detected markers in aruco_map/debug topic 2019-03-01 12:38:07 +03:00
Oleg Kalachev
db9d3cb398 aruco_map: align marker map by z axis 2019-02-28 23:33:05 +03:00
Oleg Kalachev
b2a53e5872 Add aruco_map/debug topic 2019-02-28 23:05:00 +03:00
Oleg Kalachev
d8964b1b99 aruco_pose: style fix 2019-02-28 19:55:18 +03:00
Oleg Kalachev
3a6191b76b aruco_pose: remove using namespace from .h-file 2019-02-28 19:55:18 +03:00
Oleg Kalachev
1bfc190654 aruco_pose: fix generating gridboard 2019-02-26 19:36:01 +03:00
Oleg Kalachev
615194fc2a aruco_pose: rename known_orientation to known_tilt 2019-02-26 09:10:36 +03:00
Oleg Kalachev
022eaed76c aruco_pose: rename snap_orientation to known_orientation 2019-02-22 16:44:01 +03:00
Oleg Kalachev
306185aafe aruco_detect: add length_override parameter for overriding individual marker’s length 2019-02-22 11:11:19 +03:00
Oleg Kalachev
e72b520f30 aruco_map: parametrize output image width, height and margin 2019-02-16 22:47:21 +03:00
Oleg Kalachev
82f9b9d6c1 aruco_map: enable rotating (yaw, pitch, roll) each marker in the map 2019-02-14 05:46:00 +03:00
Oleg Kalachev
cb4468e719 Fix 2019-02-12 09:36:51 +03:00
Oleg Kalachev
c4448315aa aruco_map: publish visualization markers 2019-02-12 03:16:44 +03:00
Oleg Kalachev
9cf6524ad6 aruco_detect: fix single markers frame (with snapping) 2019-02-12 00:15:59 +03:00
Oleg Kalachev
adc485c75a Refactor aruco_pose, split up to aruco_detect and aruco_map notelets 2019-02-10 00:33:31 +03:00
Oleg Kalachev
c5628cecc0 aruco_pose: publish debug image even where there is no board 2018-03-22 23:33:50 +03:00
Oleg Kalachev
2ec6930099 aruco_pose: undocumented possibility to set custom markers board
parameters:
~type=custom
~markers
2018-03-06 02:40:35 +03:00
Oleg Kalachev
4fd9f15eba ~markers_sep_x, ~markers_sep_y parameters for grid boards + various fixes 2017-12-28 23:49:17 +03:00
Oleg Kalachev
53dafed679 Show exception if creating aruco board fails 2017-12-28 23:47:45 +03:00
Oleg Kalachev
094f96b096 Fix aruco board «reference point» determination 2017-12-19 03:57:50 +03:00
Oleg Kalachev
09dd32a6ce Continue «fixing» weird bugs in aruco functions 2017-12-10 03:08:39 +03:00
Oleg Kalachev
df1ae9e748 Always publish /aruco_pose/debug 2017-12-07 01:19:26 +03:00
Oleg Kalachev
9a12e295ac Cleanup code 2017-11-30 00:41:31 +03:00
Oleg Kalachev
48c9e64f19 markers_ids settings for grid boards 2017-11-30 00:36:44 +03:00
Oleg Kalachev
e975213a13 First version of aruco_pose nodelet 2017-11-29 19:15:01 +03:00