Code Monkey home page Code Monkey logo

stag_ros's People

Contributors

bbenligiray avatar brenn10 avatar janfelixklein avatar meyerj avatar mikek4y avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

stag_ros's Issues

Multiple markers detection

Is there any configuration file I could refer to, so that I will be able to detect multiple markers at the same time, that has different IDs?
I could replicate the single_config.cfg pattern, but I would assume that each marker has it's own corner matrix?

Changing marker size

Hello,
I am currently trying out this ROS package for a university project and have already configured the correct marker id and camera that I use but could not figure out yet how to change the marker size. Could you help me out here? Also the cfg/single.json file doesn't exist.
Thanks a lot!

Namespace collision with stag_nodelet_runnable

Warning: class_loader.impl: SEVERE WARNING!!! A namespace collision has occured with plugin factory for class stag_ros::StagNodelet. New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
         at line 218 in /opt/ros/noetic/include/class_loader/class_loader_core.hpp

When running stag_nodelet_runnable.

Launching multiple cameras

It appears that launching the nodelet in a namespace or with a different name breaks parameter loading of values such as raw_image_topic and camera_info_topic, which are needed for setting topics of multiple cameras.

Namespace example:

    <!--Start Nodelet-->
    <group ns="camera1" >
        <node name="stag_ros_nodelet" pkg="stag_ros" type="stag_nodelet_runnable" output="screen" required="true" >
            <!-- Place the correct yaml file here-->
            <rosparam command="load" file="$(find stag_ros)/cfg/single.yaml"/>
            <!-- Place the correct bundle file here-->
            <rosparam command="load" file="$(find stag_ros)/cfg/single_config.yaml"/>
        </node>
    </group>

Nodename example:

    <!--Start Nodelet-->
    <node name="stag_ros_nodelet_camera1" pkg="stag_ros" type="stag_nodelet_runnable" output="screen" required="true" >
        <!-- Place the correct yaml file here-->
        <rosparam command="load" file="$(find stag_ros)/cfg/single.yaml"/>
        <!-- Place the correct bundle file here-->
        <rosparam command="load" file="$(find stag_ros)/cfg/single_config.yaml"/>
    </node>

Both result in:

[ INFO] [1607395411.403805577]: Initializing nodelet with 32 worker threads.
[ WARN] [1607395411.413394006]: No tags specified

How do you suggest using stag_ros with multiple cameras?

Issue with Pose Accuracy

I am trying to localize the OAK-D camera w.r.t to a STAG marker. I know the library assumes a USB camera and hence I have modified the stagNode.cpp so that it works with OAK-D (the distortion matrix has more values compared to a normal USB cam). I am using the monocular camera from OAK-D at 720p 60fps and the marker detection works as expected. But when I print out the pose, the values are way off, for eg, when the marker is 1.5 meters away the z value is 1.3meters. I have ensured the config file is correct. I I am uam using libraryHD 23 with error correction of 11. My marker side is 16.1 cm, so the config corners are as follows
tags:
[
{
frame: "single_config_test",
id: 0,
corners: [
[-0.0805,0.0805,0.0],
[0.0805,0.0805,0.0],
[0.0805,-0.0805,0.0],
]
}
]
bundles:
[
]

Any idea of what I might be doing wrong?

If you need any more information, please let me know.
Thanks.

Flaky transform between camera and STag

While detection of the markers is well, it's pose estimation is really wrong. I would say there are some singularities in the code.

I am appending the error messages I get due to stag_ros.
image
image

Also when I visualize it in Rviz the transform of the stag according to the camera is like in infinity and jumping around.

/stag_ros/markers vs /stag_ros/bundles?

Please explain to me what is/are the difference(s) of /stag_ros/markers topic and /stag_ros/bundles topic? Both of them have the same message type, stag_ros/STagMarker[]

Configuration files parameters

What does those two in the .cfg files means(both theoretically and in terms of practice - should user ever changed it?):

  • errorCorrection
  • corners (array)

Output msg type

markersPub = nh.advertise<geometry_msgs::PoseStamped>("stag_ros/markers", 1);

Assuming the output msg type is geometry_msgs::PoseStamped this means that each detected marker is published(outputed) separately.

I think it would be better if the detected markers would be combined into an array that is published. This makes stuff easier for example if one wants to determine which markers is the closest one or how many markers is detected etc.

vision_msgs does offer Detection2DArray as also Detection2D which might be useful in this case, if you consider it.

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.