ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

arennuit's profile - activity

2023-02-10 10:08:56 -0500 marked best answer tf impact on perf (tf design)

Hi all,

I have been playing with tf a bit and I am wondering about its perfs mainly related to design reasons. Maybe some of you can put some light on my thoughts... Here they are:

tf is kind of a swiss knife for transforms, it ensures communication between nodes even distantly, buffers the data for history access, makes transformations between frames automatically... This is really great for ease of use, though:

  1. tf buffers the transforms for historic access, it is all sorted for fast access, but even though the access is as fast as possible searching in a sorted list comes at a high cost
  2. The frames are accessed by name (e.g. listener.lookupTransform("/ee_link", "/world", ros::Time(0), transform);), this access implies another search in a sorted list for the name: argh!
  3. robot_state_publisher sends data we may not use, as it is over TCP/IP (and not via shared memory or so) it has an impact on perf
    • Especially as most use cases have nodes exchange transforms data on the same machine
  4. Interpolation / extrapolation...

I am coming from the RT physics simulation / control world and so far I would have banned all the points mentioned above and traded all them off for a super-fast raw data structure with a uber-simple dereferencing for access. Is there something I missed or using tf has an enormous hit on perf?

Thanks,

Antoine.

2023-02-10 09:47:11 -0500 received badge  Nice Question (source)
2022-05-25 09:03:51 -0500 received badge  Favorite Question (source)
2022-05-20 00:00:50 -0500 received badge  Good Question (source)
2022-04-28 04:58:35 -0500 received badge  Good Answer (source)
2021-10-27 01:25:10 -0500 received badge  Nice Question (source)
2021-09-28 11:11:25 -0500 received badge  Famous Question (source)
2021-08-29 20:14:45 -0500 received badge  Popular Question (source)
2021-08-29 20:14:45 -0500 received badge  Notable Question (source)
2021-07-29 04:56:50 -0500 received badge  Famous Question (source)
2021-07-29 04:56:50 -0500 received badge  Notable Question (source)
2021-07-29 04:56:50 -0500 received badge  Popular Question (source)
2021-05-26 08:58:49 -0500 received badge  Notable Question (source)
2021-05-26 08:58:49 -0500 received badge  Famous Question (source)
2021-05-08 07:54:39 -0500 edited question RPLIDAR angle compensate

RPLIDAR angle compensate Hi all, We use RPLIDAR lidars (A2 and A3), the ROS driver shows an "angle compensate" option (

2021-05-08 07:54:19 -0500 asked a question RPLIDAR angle compensate

RPLIDAR angle compensate Hi all, We use RPLIDAR lidars, the ROS driver shows an "angle compensate" option (default = on

2021-04-27 15:39:26 -0500 received badge  Good Question (source)
2021-04-27 15:39:24 -0500 marked best answer Are service callbacks queued?

Dear all,

Reading the doc and tutorials I understand that when the topics are received (on the subscriber side) they are queued in a callback queue before being processed (on a call to spin(), spinOnce(), callAvailable(), callOne()...). Now what I did not get is weather the service callbacks (on the server side) were also queued in the same callback queue. Hence the question:

Are the service callbacks queued in the same callback queue than the topics or are they processed independently as soon as they are received (i.e. without waiting for a spin(), spinOnce(), callAvailable(), callOne()...))?

Thanks,

Antoine.

2021-04-08 05:14:05 -0500 received badge  Famous Question (source)
2021-03-22 07:28:02 -0500 marked best answer Zoom out in rqt/plot

Dear all,

I am using hydro under ubuntu 12.04LTS and it turns out I can find no way to zoom out the time in the rqt/plot window. You can zoom in using the Zoom to rectangle tool, but I can find no way to zoom out. Moreover the zoom is reset when enabling autoscroll, hence I could find no way to change the zoom on the time axis (x axis) when autoscrolling.

Any idea if zooming out in time is possible at all in the rqt/plot view?

Thanks,

Antoine.

2021-02-16 07:09:08 -0500 received badge  Famous Question (source)
2021-01-07 05:54:23 -0500 received badge  Notable Question (source)
2020-10-30 23:53:09 -0500 received badge  Good Question (source)
2020-10-22 22:34:57 -0500 received badge  Nice Question (source)
2020-10-03 03:43:10 -0500 marked best answer Can a MoveIt goal include velocity (and even acceleration)?

Dear all,

I was wondering whether MoveIt allowed starting and goal poses to include velocity and acceleration constraints in addition to the position itself?

This would allow MoveIt to generate transition trajectories in between existing trajectories.

Very kind regards,

Antoine.

2020-09-29 10:51:24 -0500 received badge  Popular Question (source)
2020-09-29 03:04:56 -0500 asked a question Can a MoveIt goal include velocity (and even acceleration)?

Can a MoveIt goal include velocity (and even acceleration)? Dear all, I was wondering whether MoveIt allowed starting a

2020-04-13 10:49:54 -0500 marked best answer How to use ControllerManager? (from ros_control)

Hi all,

I am looking for an example of how to use controller_manager::ControllerManager. I have read a tutorial on implementing one's own hardware interface (see here) and there is a few lines of code (including a main function) related to my problem. But unfortunately I do not understand where this main function should lie (is it into a specific node?). I am not too sure either how it should articulate with the controller_manager spawner node instantiated in the launch file.

I have checked several repos (like D. Coleman's baxter, and the husky ros files...) but could not find any code relevant to me.

Is there any example somewhere showing me how to use the ControllerManager in c++?

--- EDIT --- To put it another way here it shows a main() implementing the logic of the robot read/write and controllers update. But who starts the app corresponding to the main? Is this a node? And external app? Something else?

Thanks,

Antoine.

2020-01-28 08:44:22 -0500 received badge  Nice Question (source)
2019-09-06 21:08:49 -0500 received badge  Favorite Question (source)
2019-07-12 08:47:30 -0500 received badge  Notable Question (source)
2019-07-12 08:47:30 -0500 received badge  Famous Question (source)
2019-05-30 01:20:18 -0500 marked best answer DWAPlannerROS vs TrajectoryPlannerROS

Hi all,

I am currently looking to implement my own local planner plugin for the navigation stack. I was looking at DWAPlannerROS and TrajectoryPlannerROS to help me start with. Though I am not sure I understand the relation between these 2 planners. Are they just 2 different local planners or is one part of the second?

I am asking because, as far as I understand from this wiki and the source, the DWA algorithm is implemented twice. Once in TrajectoryPlannerROS and another time in DWAPlannerROS.

Am I correct in saying so? And if so, is there a reason why the DWA is coded twice?

Now, if I understand this section, I believe the recommended way to implement a new local planner plugin is to inherit DWAPlanner. Do you confirm?

I am asking because there is a clean tutorial so as to write custom global planners, but I could not find an equivalent for local planners.

Thanks,

Antoine.

2019-04-30 23:26:08 -0500 marked best answer CMakeLists.txt vs package.xml

Hi all,

I have been using ROS for a bit more than a year now and there is still something I cannot understand in the relation between the CMakeLists.txt used and the extra catkin-specific information added by package.xml.

For a package all the link-time and run-time dependencies are already described inside the CMakeLists.txt, so why do we need to re-state these dependencies inside the package.xml? Firstly the information seems redundant and secondly when is the information inside package.xml used? What is it used for?

I have looked for the information on the net but no explanation was clear to me.


Edit:

And thanks for your thorough answer. Things are getting a bit more clear.

Now there is still something I am missing: the package.xml page states that

If they are missing or incorrect, you may be able to build from source and run tests on your own machine, but your package will not work correctly when released to the ROS community.

Now I am not sure I understand how this mechanism works. Does it mean that the dependencies normally delt with the CMakeLists.txt when I am on my local machine are handled by ROS when I deploy my packages to the outside world?