* aruco_pose: Unhardcode contour refinement
Besides, this was basically a no-op anyway, since dynamic parameters
overwrote that anyway.
* aruco_pose: Late-construct objects that use ROS
* aruco_map: Don't create/store node handle
* aruco_pose: Don't assume dist_coeffs size
* aruco_pose: more const == more better
* aruco_pose: Be more obvious about changing variables
* aruco_pose: Fix building for Kinetic
* aruco_pose: Remove global add_definitions
* builder: Build against Buster
* builder: Use correct repository specifications
* builder: Move ld.so.preload to have less errors
* builder: Use coex repo to install Monkey
* builder: Search for buster ROS packages
* aruco_pose: Vendor in aruco library from OpenCV 3.4.6
* builder: Move to ROS Melodic
* builder: Update kernel version
* aruco_pose, clever: Remove opencv3 ROS dependency
* builder: Update rosdep
* travis: Disable eclint for vendored aruco library
* tests: Don't try to locate opencv in ros
* roscore: Use melodic distribution
* Revert "aruco_pose: Vendor in aruco library from OpenCV 3.4.6"
This reverts commit 9c14a8c002bb3396f9a7d9b2ba39969207f066ba.
* aruco_pose: Vendor opencv_contrib/aruco again
* builder: Add led packages
* builder: Remove unused builder code
* travis: Add native tests
* builder: Set permissions for standalone-install
* builder: Use -y for package installation
* builder: Add repo for standalone build
* builder: Use correct file types for standalone install
* aruco_pose: Accept rgb8 map images
* builder: Disable mjpg_streamer test
* aruco_pose: Allow rgb8 map images (again)
* builder: Re-add mjpgstreamer
* builder: Install tornado==4.2.1 for rosbridge_suite
* builder: Use more recent base image
* builder: Use default kernel
* builder: Move ld.so.preload back after tests
* builder: Disable catkin tests
These tests fail on a remote machine but seem to pass just fine on real hardware. Something must have changed between Kinetic and Melodic, and we must investigate more, but for now we just need a working image.
* aruco_pose: Remove unused vendored code
* selfcheck: Update systemd-analyze regex
* builder: Add opencv repository
* rosdep: Update package definitions for Melodic
* rosdep: Use proper yaml formatting
* travis: Remove unnecessary space
* docs: Reference Melodic wherever possible
* clever.launch: Add node name to output format
* selfcheck: Use new log format
* aruco_pose, clever: Remove node names from messages
* aruco_pose, clever: Use nodelet-aware rosconsole macros
* clever.launch: Use logger name instead of node name
* clever.launch: change rosconsole format a little
* aruco_pose: use pytest
* Use ros_pytest
* Add ros_pytest to rosdep
* aruco_pose: compare floats more roughly in pytest
* aruco_pose: rewrite all the rest tests in pytest
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.
* 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
`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.