summaryrefslogtreecommitdiffstats
path: root/virtual-programs/camera.folk
blob: b865392e38358868a4fd585b5f6f000f51b0c80c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
if {$::isLaptop} return

namespace eval ::Camera {
    variable WIDTH 1280
    variable HEIGHT 720
}

On process {
    source pi/Camera.tcl
    source pi/AprilTags.tcl
    Camera::init 1280 720
    AprilTags::init

    puts "Camera tid: [getTid]"
    
    while true {
        set cameraTime [time {
            set grayFrame [Camera::grayFrame]
        }]
        set aprilTime [time {
            set tags [AprilTags::detect $grayFrame]
        }]
        
        Commit {
            Claim the camera frame is $grayFrame

            Claim the camera time is $cameraTime
            Claim the AprilTag time is $aprilTime

            foreach tag $tags {
                Claim tag [dict get $tag id] has center [dict get $tag center] size [dict get $tag size]
                Claim tag [dict get $tag id] has corners [dict get $tag corners]
            }
        }
        Step
    }
}