### Logistics
## Introduction to Fiducials * A specific kind of graphical image combined with an algorithm * Generally the recognition algorithm includes a tool to create the images
* Standardized image with known dimensions * Conceptually simple geometrical transformation * Perspective distortion is used to compute relative pose (orientation and distance) * Tricky business with TFs and POV!
### Aruco Fiducials * We have used Ubiqutiy Robotics [aruco_detect](http://wiki.ros.org/aruco_detect) * Easily recognized by camera using computer vision * Known dimensions * Known pose (location in 6d) within a certain coordinate system * Think of that as the map coordinate system
### Creating Aruco Fiducials * Lots of ways, in code or online * e.g. [Aruco Markers Generator](https://chev.me/arucogen/) * You can choose the size, the number of bits, and the number of distinct tags
### Tag Detection * How do we get the transform between a camera and fiducials? * Compare the orientation, size and transfor betwen the obsrved image and the known features of the fiducial * [ROS Wiki with demo](http://wiki.ros.org/fiducials)
### Tag Placement * Trade-offs: along the wall, along the ceiling * How many tags do you need? * Can you have too many? * Remember: the tag is not identifying a `thing` * It is just a point where your real world coordinate system is bound to your robot coordinate system
### Fiducial Localization * In general localization means computing the transform between `real world` and `robot` coordinates. * More specifically we are computing a transform betwen a `map` tf and a `robot_base` tf * Even more specifically what is the transform between the `pose` of the fiducial and the `pose` of the camera.
### Lab Notebook Entries * A coming homework asks that you write a "howto" for our lab notebook * Here's one about [Localization with Fiducials](https://campus-rover.gitbook.io/lab-notebook/cr-package/navigation/fiducials) from another semester
### Other Resources * [fiducial_follow](https://github.com/UbiquityRobotics/demos/tree/master/fiducial_follow) * [Ubiquity Robotics Fiducials](https://learn.ubiquityrobotics.com/fiducials) * Two types of Fiducial Localization
### Fiducial SLAM * Detect fideucials in image * Compute transform between fiducial(s) and camera (and robot) * Orient a coordinate system corresponding to the real world
### Fiducial Localization with an existing map * Predefine a map with fiducials marked on it * Detect fiducials in camera image * Find transforms between fiducials and camera * Localize robot on that map
Thank you. Questions?
(random Image from picsum.photos)