Git Product home page Git Product logo

Comments (4)

stonier avatar stonier commented on July 26, 2024

This is always tricky as it probably requires sweeping changes across the whole kobuki-turtlebot workspace. I've no clear idea of what it would entail across the whole workspace...so as I said, tricky and would require significant testing.

Indigo would be a better place to experiment making sweeping multi-kobuki tests as we haven't yet officially 'released' there yet and are less likely to disturb people with bugs.

from kobuki_desktop.

jihoonl avatar jihoonl commented on July 26, 2024

tf_prefix should work after #34.

So I can configure like this https://github.com/robotics-in-concert/concert_services/blob/indigo/concert_service_gazebo/robots/kobuki/kobuki.launch#L13-L29

from kobuki_desktop.

slivingston avatar slivingston commented on July 26, 2024

I am trying the roslaunch example that you link to, which is at commit robotics-in-concert/concert_services@ae5a524 at time of writing (so for posterity, your original URL would be https://github.com/robotics-in-concert/concert_services/blob/ae5a524edcb8f99f58f9dad26bc190766731cd64/concert_service_gazebo/robots/kobuki/kobuki.launch#L13-L29).

Upon trying the example, I found that the topic names are correctly placed in a namespace according to the tf_prefix parameter. However, the frame_id of messages on the odom topic of each robot are not reliably correct unless the <param> elements of the launch file are moved to within <node pkg="gazebo_ros" ...>. Unless this is done, the parameter tf_prefix is at the root of the parameter namespace, so each inclusion of the <launch> code (as in the example) rewrites the value of tf_prefix.

My explanation of this behavior is as follows. gazebo_ros_utils, which is now used in the Kobuki Gazebo plugin, assigns to tf_prefix_ using tf::getPrefixParam. This tf function uses the roscpp NodeHandle functions to get the parameter value. The documentation for NodeHandle::searchParam indicates that the parameter tree is crawled up until a match is found. Thus the problem can be solved by making tf_prefix be a parameter within the namespace of the node handle for each plugin instantiation,

<node pkg="gazebo_ros" ...>
   <param name="tf_prefix" value="$(arg name)"/>
</node>

from kobuki_desktop.

slivingston avatar slivingston commented on July 26, 2024

I just tried the gazebo_concert example in the rocon_tutorials repository and found that the error I describe above does not occur. My previous comment is motivated by an example that does not involve rocon. I am now investigating why the behavior is different.

from kobuki_desktop.

Related Issues (20)

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.