newsletters:2024-06
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
newsletters:2024-06 [2024/06/30 05:05] – [Real-world/3D calibration] osnr | newsletters:2024-06 [2024/07/01 08:37] (current) – osnr | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== June 2024 newsletter | + | ====== June 2024 newsletter ====== |
===== What we've been up to ===== | ===== What we've been up to ===== | ||
Line 36: | Line 36: | ||
- to build much more accurate tracking in general -- millimeter precision -- to enable new applications where you can highlight individual words or facets of objects, and | - to build much more accurate tracking in general -- millimeter precision -- to enable new applications where you can highlight individual words or facets of objects, and | ||
- to track coordinates in real-world meters instead of arbitrary projector or camera pixels, so we can start to integrate multiple projectors, cameras, and other real-world sensors and actuators (phone localization, | - to track coordinates in real-world meters instead of arbitrary projector or camera pixels, so we can start to integrate multiple projectors, cameras, and other real-world sensors and actuators (phone localization, | ||
+ | |||
+ | This video (running the osnr/ | ||
+ | |||
+ | {{newsletters: | ||
+ | |||
+ | The distance is being displayed by this sort of hacked-together program using the new concept of '' | ||
+ | |||
+ | < | ||
+ | When 19 has quad /a/ & 13 has quad /b/ { | ||
+ | set a [quad change $a "/ | ||
+ | set b [quad change $b "/ | ||
+ | Wish to draw text with x 800 y 400 text [format {%.2f} [* 100 [norm [sub [quad right $a] [quad left $b]]]]]cm radians 3.14 | ||
+ | } | ||
+ | </ | ||
This past month: | This past month: | ||
Line 46: | Line 60: | ||
* Block out skew parameter of cam/proj intrinsics, can assume that it is always 0 (OpenCV does this so we copy them and assume it's OK) | * Block out skew parameter of cam/proj intrinsics, can assume that it is always 0 (OpenCV does this so we copy them and assume it's OK) | ||
* Instead of averaging extrinsics (3D cam-> | * Instead of averaging extrinsics (3D cam-> | ||
- | * [[https:// | + | * [[https:// |
+ | * Keeps a tiny bit of state (pose from prev frame) and finds the most likely pose for current frame using tag detection + prev state | ||
+ | * Can get stuck in weird poses but fixes itself if you cover & uncover tag, this is tolerable for now I think | ||
+ | * I really like that this is both pose estimation and ' | ||
+ | * Wonder if we could also teach it about the square tag instead of doing servoing for each point on its own, would that make it more robust | ||
* Spent a while on performance micro-optimization, | * Spent a while on performance micro-optimization, | ||
* Spent a while on making a separate correct-extrinsics step that you do at the end of calibration, | * Spent a while on making a separate correct-extrinsics step that you do at the end of calibration, | ||
Line 61: | Line 79: | ||
- | 3D calibration works extremely well (1-2mm error) on my system in my apartment. Notice how the outline is almost perfectly aligned with the page: | + | 3D calibration works extremely well (1-2mm error) on my personal |
- | + | ||
- | {{newsletters: | + | |
It works much less well (1-2cm off) on folk0 at Hex House, and even worse on folk-beads (the cart system at Hex House), where the high distortion and shallow 3D volume of the ultra-short-throw projector make it really hard to calibrate. | It works much less well (1-2cm off) on folk0 at Hex House, and even worse on folk-beads (the cart system at Hex House), where the high distortion and shallow 3D volume of the ultra-short-throw projector make it really hard to calibrate. | ||
Line 69: | Line 85: | ||
I've also made it almost fully backward-compatible with all existing code -- it now derives 2D projector-space region claims from the 3D calibration, | I've also made it almost fully backward-compatible with all existing code -- it now derives 2D projector-space region claims from the 3D calibration, | ||
- | I'd like to get it to at least be on par with the existing 2D calibration in most cases before we merge it, and we're not there yet... | + | I'd like to get it to at least be on par with the existing 2D calibration in most cases before we merge it, and we're not there yet... |
---- | ---- | ||
Line 112: | Line 128: | ||
==== Portable gadget ==== | ==== Portable gadget ==== | ||
- | Omar has done a couple [[https:// | + | Omar has done a couple [[https:// |
{{newsletters: | {{newsletters: | ||
- | The hand grip and front look good, and the projector and camera and Pi 4 fit well. The hand grip is a little loose, so need rubber or a groove to keep it from swiveling around. The back / wiring isn't fully figured out yet; that also will need a lid/cap that you screw in, I think. I still need to design and wire and do the trigger button, which I think will make a big difference to how you can interact with it. | + | The hand grip and front look good, and the projector and camera and Pi 4 fit well. The hand grip is a little loose, so need rubber or a groove to keep it from swiveling around. |
I also have issues keeping it powered right now (and I want to figure out a USB power pack situation anyway, where you can choose to use wall power or a power pack). I wonder if the projector is too much for the Pi 4's USB port to power, or if it's overheating, | I also have issues keeping it powered right now (and I want to figure out a USB power pack situation anyway, where you can choose to use wall power or a power pack). I wonder if the projector is too much for the Pi 4's USB port to power, or if it's overheating, | ||
Line 168: | Line 184: | ||
===== What we'll be up to in July ===== | ===== What we'll be up to in July ===== | ||
- | * **Our next [[https:// | + | * **Our next [[https:// |
* Getting 3D calibration to work well on all systems, then merging it....... | * Getting 3D calibration to work well on all systems, then merging it....... | ||
* Figuring out retraction and transaction behavior for parallel evaluator; testing it more | * Figuring out retraction and transaction behavior for parallel evaluator; testing it more | ||
* Gadget iteration (need to fix swiveling, fix power issues, improve software) | * Gadget iteration (need to fix swiveling, fix power issues, improve software) | ||
* Video support | * Video support | ||
- | * Documentation (language reference, new kits and printable worksheets for setting up and learning the Folk language) | + | * Documentation (language reference, new kits and printable worksheets for setting up and learning the Folk language), open up GitHub repo |
Line 196: | Line 212: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// |
newsletters/2024-06.1719723911.txt.gz · Last modified: by osnr