Coder Social home page Coder Social logo

apriltags.jl's People

Contributors

affie avatar dehann avatar gearsad avatar github-actions[bot] avatar juliatagbot avatar mortenpi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

apriltags.jl's Issues

TagBot trigger issue

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!

Pkg compat new issue

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

could not load library "libapriltag"

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

Double check axes in test/documentation

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:

#test drawing functions
fx = 524.040
fy = 524.040
cy = 319.254
cx = 251.227
K = [fx 0 cx;
0 fy cy]

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

documentation not building

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?

Implement tag families

Only the 36h11 tag family is currently implemented in the "julia level" api. (all should work using the wrappers directly)

  • Add constructors for other families
  • Function to add/remove tag families
  • Read tag family from detected tags (currently hardcoded)

Documenting and Improving Axis Conventions

Hi @Affie, could you please confirm the following regarding the C-library and ccall part only please:

AprilTags.jl/src/wrapper.jl

Lines 434 to 448 in 8f2a739

# matd_t *homography_to_pose(const matd_t *H, double fx, double fy, double cx, double cy)
function homography_to_pose(H, fx, fy, cx, cy)
ccall((:homography_to_pose, :libapriltag), Ptr{matd_t}, (Ptr{matd_t}, Cdouble, Cdouble, Cdouble, Cdouble), H, fx, fy, cx, cy)
end
# new pose estimation from apriltag 3
mutable struct apriltag_detection_info_t
det::Ptr{apriltag_detection_t}
tagsize::Cdouble
fx::Cdouble
fy::Cdouble
cx::Cdouble
cy::Cdouble
end

  • Image axes start top left corner, assume 640x480 resolution
  • 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;
  • similar for 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.

Missing docstrings

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}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.