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

McMurdo's profile - activity

2022-03-05 02:25:40 -0500 received badge  Nice Answer (source)
2021-11-01 16:42:03 -0500 received badge  Necromancer (source)
2021-07-26 05:06:38 -0500 commented question Path constraints

Could you post all the output from that program? Does it complain about the start state? Are you sure the robot's start

2021-07-26 05:04:29 -0500 answered a question Workspace correct build?

Make sure you are cloning the repository inside the src folder of your workspace. For instance, if your workspace is ca

2020-12-29 08:22:23 -0500 received badge  Nice Question (source)
2020-11-24 05:09:00 -0500 marked best answer geometry_msgs::Twist and cmd_vel on Turtlebot

I need help in using geometry_msgs::Twist with cmd_vel on the TurtleBot.

I am not sure what the cmd_vel does when I send a message to it.

Someone please explain clearly what it does and how I can make it move to a particular point on the map. I can get the current pose of the turtlebot from the move_base/feedback topic for feedback.

Also I found out that the program "turtlebot_follower.cpp" (package - Kinnect Follower Demo) uses the same topic (cmd_vel) to control the motors. But, I could understand little from the code. The code was trying to equate a distance with velocity, though both are floats. Please try to explain the logic behind doing so, if possible.

Thank you!

2020-08-27 05:43:37 -0500 received badge  Famous Question (source)
2020-03-06 17:05:44 -0500 marked best answer Messages lost in ROS ELECTRIC

Why do certain message packets get lost? Is this normal? I have attached a image for reference. Clearly, packets 0,1,2 were lost.

Please help image description

2020-02-21 22:47:15 -0500 received badge  Nice Question (source)
2019-05-20 19:23:14 -0500 received badge  Famous Question (source)
2018-09-18 13:54:42 -0500 marked best answer Error reading /odom topic

When I write code to read the odometry data, I get errors while compiling.

void test::odom_callback(const nav_msgs::Odometry::ConstPtr& odom_reading)

is the function i use. And I have also done in the constructor of the class:

odom_listener = n.subscribe("odom", 10, test::odom_callback, this);

The dependency has been mentioned in manifest.xml. I have also included the nav_msgs/Odometry.h file

I get this error: In member function ‘void test::odom_callback(const ConstPtr&)’:

error: ‘const ConstPtr’ has no member named ‘twist’

Please help.

2018-09-17 02:21:52 -0500 received badge  Notable Question (source)
2018-09-17 02:21:52 -0500 received badge  Popular Question (source)
2018-09-04 18:57:45 -0500 marked best answer Multi-threading in ROS nodes and MultiThreadedSpinner and AsyncSpinner

To put it simply: What is the application of multithreading in ros nodes?

I am not from a Computer Science background. I have been learning Operating System concepts like processes, threads, signals, etc., only very recently. I came to the conclusion that one would hardly have to use a fork() in a ROS program because ROS nodes are themselves like different processes. (Ques.1) Is this conclusion right? Or, are the instances where one might need to use the fork() and exec()?

I got the idea of using a one thread to simply wait for callbacks all the time and another to do the useful work, from here.

(Ques.2) Is this the standard way of doing it? Is it a good idea to follow the idea quoted above or is it better to include a ros::spinOnce() regularly in the code? The latter sounds a buggy solution to me. Please correct me where I am wrong.

If I do as it has been shown in that tutorial, then I see no point in spinning from multiple threads. Though, I am sure there is an application. I am not able to grasp the importance of it (especially MultiThreadedSpinner and AsyncSpinner) without applications and examples.

(Ques.3) Please give examples and suggest applications where I might use a multithreaded node and in-turn wait for callbacks (spin) from each separate thread.

If any of the questions seems trivial, please bear with me and explain.

2018-09-04 18:54:23 -0500 received badge  Great Question (source)
2018-08-06 02:18:21 -0500 received badge  Great Answer (source)
2018-08-06 02:18:21 -0500 received badge  Guru (source)
2018-04-26 12:18:12 -0500 received badge  Nice Answer (source)
2018-04-23 09:22:57 -0500 asked a question Sick S3000 Laser baud rate

Sick S3000 Laser baud rate Hello, I have a Sick S3000 Laser used primarily for safety function. I would also like to s

2017-12-08 05:17:22 -0500 commented answer Using CallbackQueue

@ZiyangLI never used. Probably some old code leftover.

2017-12-08 05:16:19 -0500 commented answer Using CallbackQueue

You should probably make a public member function to do that.

2017-11-03 22:39:48 -0500 received badge  Nice Answer (source)
2017-07-31 05:05:28 -0500 received badge  Famous Question (source)
2017-07-15 08:28:24 -0500 marked best answer RQT Reconfigure - no plugin found

I try to run:

rosrun rqt_reconfigure rqt_reconfigure

and I get:

CompositePluginProvider.discover() could not discover plugins from provider "<class 'rqt_gui.rospkg_plugin_provider.RospkgPluginProvider'>": 
Traceback (most recent call last):
  File "/opt/ros/hydro/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 58, in discover
    plugin_descriptors = plugin_provider.discover(discovery_data)
  File "/opt/ros/hydro/lib/python2.7/dist-packages/rqt_gui/ros_plugin_provider.py", line 65, in discover
    plugin_descriptors += self._parse_plugin_xml(package_name, plugin_xml)
  File "/opt/ros/hydro/lib/python2.7/dist-packages/rqt_gui/ros_plugin_provider.py", line 141, in _parse_plugin_xml
    module_name, class_from_class_type = attributes['class_type'].rsplit('.', 1)
ValueError: need more than 1 value to unpack

qt_gui_main() found no plugin matching "rqt_reconfigure"

How can I solve this?

EDIT:

rqt --list-plugins

returns:

CompositePluginProvider.discover() could not discover plugins from provider "<class 'rqt_gui.rospkg_plugin_provider.RospkgPluginProvider'>":
Traceback (most recent call last):
  File "/opt/ros/hydro/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 58, in discover
    plugin_descriptors = plugin_provider.discover(discovery_data)
  File "/opt/ros/hydro/lib/python2.7/dist-packages/rqt_gui/ros_plugin_provider.py", line 65, in discover
    plugin_descriptors += self._parse_plugin_xml(package_name, plugin_xml)
  File "/opt/ros/hydro/lib/python2.7/dist-packages/rqt_gui/ros_plugin_provider.py", line 141, in _parse_plugin_xml
    module_name, class_from_class_type = attributes['class_type'].rsplit('.', 1)
ValueError: need more than 1 value to unpack

rqt_dep.ros_pack_graph.RosPackGraph
rqt_image_view/ImageView
rqt_py_console.py_console.PyConsole
rqt_rviz/RViz
rqt_shell.shell.Shell
rqt_web.web.Web
2017-05-22 09:11:42 -0500 marked best answer Obstacles management in Moveit

I would be delighted if someone can explain very clearly.

I have recently started working on a robot that has a Jaco Arm. (MetraLab Scitos G5).

I am using the ASUS xtion pro for the obstacle avoidance. Once this is done, I am able to view the Octree in the monitored_planning_scene topic (using rviz).

1. I also found that I could specify collision objects using the PlanningSceneInterface Class. What is the difference between the two approaches?

2. Also, what is the exact approach to using a PlanningSceneMonitor. In the planning scene tutorial, it is mentioned that the PlanninSceneMonitor is the elegant way to manage a Planning Scene. But, is there a tutorial for the PlanningSceneMonitor?

3. I saw that the PlanningSceneMonitor has a protected function called "excludeWorldObjectFromOctree()" .

Sometimes when I try to grasp an object (using xtion for obstacle avoidance), the plan fails since there is a potential collision between the fingers of the JACO arm and the object that I intend to pickup. I thought I could add it as a World object using the Planning Scene Interface (this I am able to do) and then use the "excludeWorldObjectFromOctree()" method to exclude the object from being considered for collision checking. Is there a more straight forward way of excluding a world object from collision checking?

4. I have somewhat understood how you could modify the AllowedCollisionMatrix. But then, how do I ensure that this ACM is updated to the current Planning Scene? I expect that there is a method in PlanningSceneInterface like "updateAllowedCollisionMatrix()" ? Am I guessing right? or is there a serious error in my understanding?

Please clarify!

Thank you so much!

2017-05-09 04:32:44 -0500 marked best answer Reading from an IMU (single axis)

How do I use the single axis accelerometer (one in the single axis IMU) to measure linear velocity (and hence linear distance covered)?

2017-04-20 05:25:30 -0500 received badge  Popular Question (source)
2017-04-20 05:25:30 -0500 received badge  Notable Question (source)
2017-03-01 10:32:22 -0500 asked a question Rviz and use_sim_time

I am running a simulation on gazebo and using rviz for visualization.

I have transforms between different frames available on the /tf topic. The time stamps are in simulated time. use_sim_time is on. Clock is published by gazebo.

Then, I publish certain visualization markers.

The problem is that if the visualization markers are in frame that is not the fixed frame in RViz, RViz tries to find the transform at the current Wall time despite the fact that 'use_sim_time' is true. This fails horribly, of course, and results in a tf extrapolation-into-the-future error. The RViz clock panel recognizes this fact and displays the time that is published on the /clock topic. However, if the marker is in the the world frame (or the fixed frame in RViz), RViz has no problems displaying them. This is expected since the TransformListener is not used.

2017-02-07 05:43:56 -0500 received badge  Good Question (source)
2017-01-09 08:54:15 -0500 received badge  Famous Question (source)
2016-12-26 04:55:24 -0500 received badge  Famous Question (source)
2016-12-20 10:09:37 -0500 received badge  Stellar Question (source)
2016-12-14 17:00:53 -0500 edited answer rqt plugin Qt5 and 16.04

I don't have a specific answer, but here's a good example to start from: https://github.com/lucasw/rqt_mypkg

And a similar question that might be helpful: http://answers.ros.org/question/24939...

2016-12-14 17:00:16 -0500 marked best answer rqt plugin Qt5 and 16.04

I'm trying to create a rqt plugin. I've tried to mimic the rqt_image_view package as much as possible.

When I open rqt and try to open the plugin from the drop-down menu, I get the following error in the terminal output:

[ERROR] [1481649833.824410737]: Failed to load nodelet [rqt_myplugin/MyPlugin_1] of type [rqt_myplugin/MyPlugin]: MultiLibraryClassLoader: Could not create object of class type rqt_myplugin::MyPlugin as no factory exists for it. Make sure that the library exists and was explicitly loaded through MultiLibraryClassLoader::loadLibrary()
RosPluginlibPluginProvider::load_explicit_type(rqt_myplugin/MyPlugin) failed creating instance
PluginManager._load_plugin() could not load plugin "rqt_myplugin/MyPlugin": RosPluginlibPluginProvider.load() could not load plugin "rqt_myplugin/MyPlugin"

What could be the error?

Here is the package: https://github.com/ksatyaki/rqt_myplugin It seems to work with force discover option. I don't understand what this option does exactly. Previously I even tried installing the plugin to /opt/ros/kinetic. It didn't work.