juliarobotics / apriltags.jl Goto Github PK
View Code? Open in Web Editor NEWUsing Apriltags in Julia
Home Page: https://juliarobotics.github.io/AprilTags.jl/latest/
License: Other
Using Apriltags in Julia
Home Page: https://juliarobotics.github.io/AprilTags.jl/latest/
License: Other
This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml
to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix
on this issue.
I'll open a PR within a few hours, please be patient!
HI @Affie ,
Could I perhaps ask for some help if you are not too busy please? I'm trying to update AprilTags but looks like there is a bad compat issue. Think this still has to do with our narrow compat window given breaking changes through the stack DFG/IIF/RoME/Caesar/RoMEPlotting... The thing that catches my eye here is GraphPlot.jl has no versions left, with someone restricting it to v0.7-v0.8, but latest is v0.4.3
:
restricted by compatibility requirements with GraphPlot [a2cc645c] to versions: [0.7.0-0.7.4, 0.8.0-0.8.2] — no versions left
I cannot find this requirement... Here is the full dump:
(@v1.5) pkg> dev AprilTags
Path `/home/dehann/.julia/dev/AprilTags` exists and looks like the correct package. Using existing path.
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package Compose [a81c6b42]:
Compose [a81c6b42] log:
├─possible versions are: [0.6.1, 0.7.0-0.7.4, 0.8.0-0.8.2, 0.9.0-0.9.1] or uninstalled
├─restricted to versions * by an explicit requirement, leaving only versions [0.6.1, 0.7.0-0.7.4, 0.8.0-0.8.2, 0.9.0-0.9.1]
├─restricted by compatibility requirements with Requires [ae029012] to versions: [0.6.1, 0.8.0-0.8.2, 0.9.0-0.9.1] or uninstalled, leaving only versions: [0.6.1, 0.8.0-0.8.2, 0.9.0-0.9.1]
│ └─Requires [ae029012] log:
│ ├─possible versions are: [0.5.0-0.5.2, 1.0.0-1.0.3, 1.1.0-1.1.1] or uninstalled
│ └─restricted to versions 1 by AprilTags [f0fec3d5], leaving only versions [1.0.0-1.0.3, 1.1.0-1.1.1]
│ └─AprilTags [f0fec3d5] log:
│ ├─possible versions are: 0.7.4 or uninstalled
│ └─AprilTags [f0fec3d5] is fixed to version 0.7.4
├─restricted by compatibility requirements with DataStructures [864edb3b] to versions: [0.8.0-0.8.2, 0.9.0-0.9.1] or uninstalled, leaving only versions: [0.8.0-0.8.2, 0.9.0-0.9.1]
│ └─DataStructures [864edb3b] log:
│ ├─possible versions are: [0.9.0, 0.10.0, 0.11.0-0.11.1, 0.12.0, 0.13.0, 0.14.0-0.14.1, 0.15.0, 0.16.1, 0.17.0-0.17.20, 0.18.0-0.18.8] or uninstalled
│ ├─restricted to versions 0.16-0.18 by Caesar [62eebf14], leaving only versions [0.16.1, 0.17.0-0.17.20, 0.18.0-0.18.8]
│ │ └─Caesar [62eebf14] log:
│ │ ├─possible versions are: 0.6.3 or uninstalled
│ │ └─Caesar [62eebf14] is fixed to version 0.6.3
│ └─restricted by compatibility requirements with CUDA [052768ef] to versions: [0.17.0-0.17.20, 0.18.0-0.18.8]
│ └─CUDA [052768ef] log:
│ ├─possible versions are: [0.1.0, 1.0.0-1.0.2, 1.1.0, 1.2.0-1.2.1, 1.3.0-1.3.3, 2.0.0-2.0.2, 2.1.0, 2.2.0-2.2.1, 2.3.0] or uninstalled
│ ├─restricted to versions * by an explicit requirement, leaving only versions [0.1.0, 1.0.0-1.0.2, 1.1.0, 1.2.0-1.2.1, 1.3.0-1.3.3, 2.0.0-2.0.2, 2.1.0, 2.2.0-2.2.1, 2.3.0]
│ └─restricted by julia compatibility requirements to versions: [1.0.0-1.0.2, 1.1.0, 1.2.0-1.2.1, 1.3.0-1.3.3, 2.0.0-2.0.2, 2.1.0, 2.2.0-2.2.1, 2.3.0] or uninstalled, leaving only versions: [1.0.0-1.0.2, 1.1.0, 1.2.0-1.2.1, 1.3.0-1.3.3, 2.0.0-2.0.2, 2.1.0, 2.2.0-2.2.1, 2.3.0]
├─restricted by compatibility requirements with Gadfly [c91e804a] to versions: 0.9.0-0.9.1
│ └─Gadfly [c91e804a] log:
│ ├─possible versions are: [0.8.0, 1.0.0-1.0.1, 1.1.0, 1.2.0-1.2.1, 1.3.0-1.3.1] or uninstalled
│ ├─restricted to versions * by an explicit requirement, leaving only versions [0.8.0, 1.0.0-1.0.1, 1.1.0, 1.2.0-1.2.1, 1.3.0-1.3.1]
│ ├─restricted by compatibility requirements with Requires [ae029012] to versions: [0.8.0, 1.1.0, 1.2.0-1.2.1, 1.3.0-1.3.1] or uninstalled, leaving only versions: [0.8.0, 1.1.0, 1.2.0-1.2.1, 1.3.0-1.3.1]
│ │ └─Requires [ae029012] log: see above
│ ├─restricted by compatibility requirements with DocStringExtensions [ffbed154] to versions: [1.2.0-1.2.1, 1.3.0-1.3.1] or uninstalled, leaving only versions: [1.2.0-1.2.1, 1.3.0-1.3.1]
│ │ └─DocStringExtensions [ffbed154] log:
│ │ ├─possible versions are: [0.4.6, 0.5.0, 0.6.0, 0.7.0, 0.8.0-0.8.3] or uninstalled
│ │ ├─restricted to versions [0.7-0.9, 1] by Caesar [62eebf14], leaving only versions [0.7.0, 0.8.0-0.8.3]
│ │ │ └─Caesar [62eebf14] log: see above
│ │ └─restricted to versions [0.8-0.10, 1] by IncrementalInference [904591bb], leaving only versions 0.8.0-0.8.3
│ │ └─IncrementalInference [904591bb] log:
│ │ ├─possible versions are: 0.17.0 or uninstalled
│ │ ├─restricted to versions 0.15-0.17 by Caesar [62eebf14], leaving only versions 0.17.0
│ │ │ └─Caesar [62eebf14] log: see above
│ │ └─IncrementalInference [904591bb] is fixed to version 0.17.0
│ └─restricted by compatibility requirements with RoMEPlotting [238d586b] to versions: 1.3.1
│ └─RoMEPlotting [238d586b] log:
│ ├─possible versions are: [0.1.0-0.1.8, 0.2.0-0.2.2, 0.3.0, 0.4.0-0.4.3] or uninstalled
│ ├─restricted to versions * by an explicit requirement, leaving only versions [0.1.0-0.1.8, 0.2.0-0.2.2, 0.3.0, 0.4.0-0.4.3]
│ ├─restricted by compatibility requirements with RoME [91fb55c2] to versions: 0.4.0-0.4.3 or uninstalled, leaving only versions: 0.4.0-0.4.3
│ │ └─RoME [91fb55c2] log:
│ │ ├─possible versions are: [0.2.0-0.2.4, 0.3.0-0.3.4, 0.4.0-0.4.4, 0.5.0-0.5.5, 0.6.0-0.6.4, 0.7.0-0.7.3, 0.8.0, 0.9.0-0.9.2, 0.10.0] or uninstalled
│ │ ├─restricted to versions 0.8-0.10 by Caesar [62eebf14], leaving only versions [0.8.0, 0.9.0-0.9.2, 0.10.0]
│ │ │ └─Caesar [62eebf14] log: see above
│ │ ├─restricted by compatibility requirements with DistributedFactorGraphs [b5cc3c7e] to versions: [0.2.0-0.2.4, 0.3.0-0.3.4, 0.9.0-0.9.2, 0.10.0] or uninstalled, leaving only versions: [0.9.0-0.9.2, 0.10.0]
│ │ │ └─DistributedFactorGraphs [b5cc3c7e] log:
│ │ │ ├─possible versions are: [0.1.0-0.1.3, 0.2.0-0.2.3, 0.3.0-0.3.4, 0.4.0-0.4.2, 0.5.0-0.5.4, 0.6.0-0.6.2, 0.7.0-0.7.7, 0.8.0-0.8.1, 0.9.0, 0.10.0-0.10.11] or uninstalled
│ │ │ ├─restricted to versions 0.9-0.10 by Caesar [62eebf14], leaving only versions [0.9.0, 0.10.0-0.10.11]
│ │ │ │ └─Caesar [62eebf14] log: see above
│ │ │ └─restricted to versions 0.10.9-0.10 by IncrementalInference [904591bb], leaving only versions 0.10.9-0.10.11
│ │ │ └─IncrementalInference [904591bb] log: see above
│ │ └─restricted by compatibility requirements with IncrementalInference [904591bb] to versions: 0.10.0 or uninstalled, leaving only versions: 0.10.0
│ │ └─IncrementalInference [904591bb] log: see above
│ ├─restricted by compatibility requirements with DistributedFactorGraphs [b5cc3c7e] to versions: [0.1.0-0.1.3, 0.4.1-0.4.3] or uninstalled, leaving only versions: 0.4.1-0.4.3
│ │ └─DistributedFactorGraphs [b5cc3c7e] log: see above
│ └─restricted by compatibility requirements with IncrementalInference [904591bb] to versions: 0.4.3 or uninstalled, leaving only versions: 0.4.3
│ └─IncrementalInference [904591bb] log: see above
└─restricted by compatibility requirements with GraphPlot [a2cc645c] to versions: [0.7.0-0.7.4, 0.8.0-0.8.2] — no versions left
└─GraphPlot [a2cc645c] log:
├─possible versions are: [0.3.0-0.3.1, 0.4.1-0.4.3] or uninstalled
├─restricted to versions * by an explicit requirement, leaving only versions [0.3.0-0.3.1, 0.4.1-0.4.3]
└─restricted by compatibility requirements with ColorTypes [3da002f7] to versions: 0.4.3 or uninstalled, leaving only versions: 0.4.3
└─ColorTypes [3da002f7] log:
├─possible versions are: [0.7.0-0.7.5, 0.8.0-0.8.1, 0.9.0-0.9.1, 0.10.0-0.10.9] or uninstalled
└─restricted to versions 0.10 by AprilTags [f0fec3d5], leaving only versions 0.10.0-0.10.9
└─AprilTags [f0fec3d5] log: see above
Here is the status:
(@v1.5) pkg> st
Status `~/.julia/environments/v1.5/Project.toml`
[9bbbb610] ApproxManifoldProducts v0.1.5 `~/.julia/dev/ApproxManifoldProducts`
[f0fec3d5] AprilTags v0.7.2
[c7e460c6] ArgParse v1.1.0
[fbb218c0] BSON v0.2.6
[6e4b80f9] BenchmarkTools v0.5.0
[336ed68f] CSV v0.8.2
[052768ef] CUDA v1.3.3
[3895d2a7] CUDAapi v4.0.0
[62eebf14] Caesar v0.6.3 `~/.julia/dev/Caesar`
[159f3aea] Cairo v1.0.5
[35d6a980] ColorSchemes v3.10.1
[3da002f7] ColorTypes v0.9.1
[5ae59095] Colors v0.11.2
[861a8166] Combinatorics v1.0.2
[a81c6b42] Compose v0.9.1
[150eb455] CoordinateTransformations v0.6.1
[a93c6f00] DataFrames v0.21.8
[82cc6244] DataInterpolations v3.2.1
[864edb3b] DataStructures v0.18.8
[aae7a2af] DiffEqFlux v1.25.0
[0c46a032] DifferentialEquations v6.15.0
[b4f34e82] Distances v0.9.2
[b5cc3c7e] DistributedFactorGraphs v0.10.11
[31c24e10] Distributions v0.23.12
[ffbed154] DocStringExtensions v0.8.3
[e30172f5] Documenter v0.25.5
[5789e2e9] FileIO v1.4.4
[53c48c17] FixedPointNumbers v0.7.1
[587475ba] Flux v0.11.1
[186bb1d3] Fontconfig v0.4.0
[663a7486] FreeTypeAbstraction v0.8.2
[3e9e306e] FunctionalStateMachine v0.2.9
[c91e804a] Gadfly v1.3.1
[a2cc645c] GraphPlot v0.3.1
[86223c79] Graphs v0.10.3
[4c0ca9eb] Gtk v1.1.5
[4381153b] ImageDraw v0.2.3
[92ff4b2b] ImageFeatures v0.4.4
[6218d12a] ImageMagick v1.1.6
[86fae568] ImageView v0.10.12
[916415d5] Images v0.23.1
[904591bb] IncrementalInference v0.17.0 `~/.julia/dev/IncrementalInference`
[42fd0dbc] IterativeSolvers v0.8.4
[033835bb] JLD2 v0.2.4
[682c06a0] JSON v0.21.1
[2535ab7d] JSON2 v0.3.2
[0f8b85d8] JSON3 v1.5.1
[e5e0dc1b] Juno v0.8.4
[2472808a] KernelDensityEstimate v0.5.3 `~/.julia/dev/KernelDensityEstimate`
[c43967c8] KernelDensityEstimatePlotting v0.1.7
[093fc24a] LightGraphs v1.3.0 ⚲
[23992714] MAT v0.9.2
[eb30cadb] MLDatasets v0.5.3
[1cead3c2] Manifolds v0.4.10
[442fdcdd] Measures v0.3.1
[15e1cf62] NPZ v0.4.0
[b8a86587] NearestNeighbors v0.4.7
[429524aa] Optim v1.2.0
[1dea7af3] OrdinaryDiffEq v5.45.1
[d96e819e] Parameters v0.12.1
[91a5bcdd] Plots v1.0.14
[438e738f] PyCall v1.92.1
[d330b81b] PyPlot v2.9.0
[ce6b1742] RDatasets v0.7.3
[295af30f] Revise v3.1.9
[79098fc4] Rmath v0.6.1
[91fb55c2] RoME v0.10.0
[238d586b] RoMEPlotting v0.4.3
[22415677] RobotOS v0.7.2
[6038ab10] Rotations v1.0.1
[476501e8] SLEEFPirates v0.5.5
[992d4aef] Showoff v0.3.2
[90137ffa] StaticArrays v0.12.5
[02d47bb6] TensorCast v0.3.2
[5e47fb64] TestImages v1.3.1
[f269a46b] TimeZones v1.5.2
[9b8138ad] TransformUtils v0.2.6
[1986cc42] Unitful v1.5.0
[cbff2730] Unmarshal v0.4.2
[c2297ded] ZMQ v1.2.1
[e88e6eb3] Zygote v0.5.13
[ade2ca70] Dates
[8bb1440f] DelimitedFiles
[8ba89e20] Distributed
[76f85450] LibGit2
[37e2e46d] LinearAlgebra
[44cfe95a] Pkg
[8dfed614] Test
[cf7118a7] UUIDs
Does the AprilTags work only in version 1.0 and 0.7?
My Julia version is 1.1.1.
There is an error when I run
julia> AprilTagDetector()
ERROR: error compiling Type: could not load library "libapriltag" dlopen(libapriltag.dylib, 1): image not found
Also the new families from apriltags v 3
Originally posted by @Affie in #7 (comment)
If new families are need, please comment here.
hi @Affie , could you perhaps please help check these numbers / conventions: I understand cx <==> c_width
and cy <==> c_height
, but if a general case has c_height < c_width
(e.g. image is 16:9 <==> w:h) then this is a little confusing:
AprilTags.jl/test/basictests.jl
Lines 125 to 131 in 9ab7cad
since current text suggests cx < cy
(i.e. c_width < c_height
), but that is opposite axis convention? If so, then this might be the source of the convention trouble I've been struggling through.
For camera reference we have x
pointing right and y
pointing down. For Images.jl ::Array
(i.e. image frame here in Julia) we have img[i,j]
where (j,i) <==> (x,y) <==> (w,h)
. Top left corner of image is (0,0)
.
The example listed in the docs was copied (with same potential bug) from the tests:
https://juliarobotics.org/AprilTags.jl/latest/#Example-from-Tests-1
If the tag is close to the side a corner is sometimes returned that is out of bounds of the image.
Line 45 in 373c1ea
A baseline dataset used to test first implementation of the calib function:
@JuliaRegistrator register branch=release/v0.9.0
@JuliaRegistrator register
@JuliaRegistrator register
hi @Affie , random issue. I'm trying to figure out why the AprilTags docs are not building via Travis. I added the ID text on tag via using FreeTypeAbstraction
optional, but docs not showing up in Travis or on Github pages. Do you perhaps have any ideas on what I'm missing here?
@JuliaRegistrator register
@JuliaRegistrator register
@JuliaRegistrator register
The second table in https://github.com/duckietown/lib-dt-apriltags#usage explains what each of the fields in a AprilTags.AprilTag
is. It would be good to add that here as well.
Only the 36h11 tag family is currently implemented in the "julia level" api. (all should work using the wrappers directly)
Hi @Affie, could you please confirm the following regarding the C-library and ccall part only please:
Lines 434 to 448 in 8f2a739
fx == width
, that is normal image from left to right, i.e. the 640 dimension;fy == height
, that is down vertically, i.e. the 480 dimension;cx
and cy
It's really hard to pin this down because it is not documented here. I'm trying to document that here and then also improve the API at the higher level code. Will keep the low level wrapper code the same as is happening in the C library.
@JuliaRegistrator register
Documentation
8 docstrings not included in the manual:
AprilTags.drawTags! :: Union{Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, AbstractMatrix{<:Real}}, Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, AbstractMatrix{<:Real}, AbstractVector{AprilTag}}, Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, AbstractMatrix{<:Real}, AbstractVector{AprilTag}, Bool}}
AprilTags.estimateTagPoseOrthogonalIteration :: Tuple{AprilTag, Float64, Float64, Float64, Float64}
AprilTags.drawTags :: Union{Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, AbstractMatrix{<:Real}}, Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, AbstractMatrix{<:Real}, AbstractVector{AprilTag}}, Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, AbstractMatrix{<:Real}, AbstractVector{AprilTag}, Bool}}
AprilTags.AprilTag
AprilTags.apriltag_detection_info_t
AprilTags.detector :: Union{Tuple{Matrix{T}}, Tuple{T}} where T<:Union{ColorTypes.Gray{FixedPointNumbers.N0f8}, UInt8, FixedPointNumbers.N0f8}
AprilTags._drawCrossOnImg! :: Union{Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, Tuple{Int64, Int64}}, Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, Tuple{Int64, Int64}, Real}, Tuple{AbstractMatrix{<:ColorTypes.AbstractRGB}, Tuple{Int64, Int64}, Real, ColorTypes.AbstractRGB}}
AprilTags.orthogonalIteration :: Union{NTuple{4, Any}, NTuple{5, Any}, NTuple{6, Any}}
H is an Array{Float64, 2}. Could we look at making p the same?
RIght now p is a NTuple{4,Tuple{Float64,Float64}}.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.