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

Kilin's profile - activity

2019-07-31 13:16:45 -0500 marked best answer Display collision space in rviz

Hi,

I'm experimenting with arm_navigation with kuka youbot.

I am using move_arm to plan and execute trajectories from my code, now I'd like to add obstacles (both in the form of primitive objects and point clouds) to the planning environment.

I followed this tutorial: http://www.ros.org/wiki/motion_planning_environment/Tutorials/Adding%20known%20objects%20to%20the%20collision%20environment (I just modified the code in order to use arm_navigation_msgs types)

When I run the code, I correctly get:

My question is: how can I view the collision environment in rviz? I just want to view which obstacles where added along with the model of the robot.

Thank you

2015-12-08 13:58:35 -0500 received badge  Taxonomist
2015-10-17 18:26:47 -0500 received badge  Famous Question (source)
2015-09-28 01:17:58 -0500 received badge  Famous Question (source)
2015-09-18 18:52:46 -0500 marked best answer Standard for PointCloud messages is still PointCloud2?

Hi,

After some work with standalone PCL, I'm running the first tests of PCL under ROS.

I have a question: I understand that pcl::PointCloud<t> is the preferred type for point clouds, and I was able to register a callback to kinect streams using just this type (without conversions to/from sensor_msgs::PointCloud2)

Now I was trying to implement a service that returns PointClouds. In order to define a service I need to specify a message type, and I only see sensor_msgs/PointCloud and PointCloud2.

My question is: this means that PointCloud2 is still the preferred standard for PointCloud messages, or am I missing a more specific message type that allows to handle pcl::PointCloud<t> arguments?

Should I always work with sensor_msgs/PointCloud2 messages when playing with services, and perform conversions to pcl::PointCloud<t> inside my code?

thank you

2014-05-29 11:02:24 -0500 received badge  Notable Question (source)
2014-01-28 17:28:22 -0500 marked best answer Get sporadic messages from periodic publisher

Hi everyone,

I've just started working with ros, this is my first post here :-)

I'd like to ask a question: I have a publisher that publishes a kinect stream at a certain rate.

Until now I've always needed to process every snapshot, so I just subscribed to the topic and process each message in my callback.

I was thinking that sometimes it could be useful for a client to get single messages, sporadically, from a periodic publisher. Is there an easy way to do that?

I could skip messages in my callback until I want to grab one, but I'd like to avoid the overhead of the calls I don't need.

I guess I could play with subscribe/ubsubscribe on demand, but I imagine it would be very slow.

The better way that I was able to think is to modify the publisher, adding a service that, when called, returns just the last message. This way it could be possible to have a periodic publisher that could also be used as a "sporadic" publisher. Is this the best solution, or there's something simpler, that doesn't need to modify the publisher?

To simplify, I want to use the same publisher as sporadic for some clients, as periodic for some others.

Thank you :-)

2013-07-09 21:58:06 -0500 received badge  Famous Question (source)
2013-07-09 21:58:06 -0500 received badge  Notable Question (source)
2013-07-03 23:47:05 -0500 received badge  Famous Question (source)
2013-05-26 11:19:14 -0500 received badge  Nice Question (source)
2013-05-26 11:18:55 -0500 received badge  Notable Question (source)
2013-05-13 01:30:13 -0500 received badge  Famous Question (source)
2013-04-14 13:35:38 -0500 received badge  Famous Question (source)
2013-04-12 17:21:16 -0500 received badge  Notable Question (source)
2013-04-12 04:08:56 -0500 received badge  Popular Question (source)
2013-04-11 23:40:59 -0500 asked a question Best way to represent the SW architecture of a ROS application based on services?

Hi everyone,

I'm writing my master thesis in Computer Engineering, the experimental part of the work consists of a ROS application.

My application massively exploits ROS services, while topics are less used. This is due to the fact that my application is not "very real time", it is more based on sequence of states.

What is, in your opinion, the best method to graphically represent the relations (e.g. use/offers a service, publishes/subscribes topic) among ROS nodes in a comprehensive manner? I took a look at rxgraph, but unfortunately only topics are depicted.

While most of the relations among nodes are represented by services, I have also some topics around, so a model that could represent both at the same time would be better.

I was thinking to component diagrams (e.g. something like this), with components representing nodes, and interfaces representing services (and possibly topics), but I'm afraid that such a choose could be interpreted as an abuse of notation by "classical" computer engineering professors.

What do you suggest?

Thank you very much

2013-04-11 23:29:41 -0500 received badge  Popular Question (source)
2013-04-04 19:12:56 -0500 received badge  Famous Question (source)
2013-02-23 08:26:31 -0500 received badge  Notable Question (source)
2013-02-09 04:20:15 -0500 received badge  Nice Question (source)
2013-02-07 20:38:04 -0500 commented question Arm navigation: is it possible to specify x,y,z only, and automatically resolve the orientation?

maybe I've found out by myself: I was using a SimplePoseConstraint message, I see now that a PositionConstraint is also available... I'll try to play with that

2013-02-07 20:34:56 -0500 asked a question Arm navigation: is it possible to specify x,y,z only, and automatically resolve the orientation?

Hello,

I'm using the arm_navigation architecture in order to control my arm with nice collision-free trajectories.

By now I specify as a goal a complete pose: x,y,z,or_x, or_y, or_z, or_w.

However, in my application it would be useful to ask the arm to just reach a x,y,z position, with any orientation (in a certain range of angles).

Is it possible to do that exploiting the planning architecture, or something else that is already available? Do you have any suggestion?

Thank you

2013-02-07 14:04:57 -0500 received badge  Notable Question (source)
2013-02-06 13:25:45 -0500 received badge  Notable Question (source)
2013-02-04 05:42:06 -0500 received badge  Famous Question (source)
2013-02-02 00:13:48 -0500 asked a question Best way to organize perceptive pipeline

Hello,

I have prototyped my perceptive pipeline in PCL, and now I have to port it in ROS.

I'm trying to figure out which is the best tradeoff between efficiency and time/effort to port my pipeline.

I see that there are mainly three options:

  • organize everything using pcl_ros nodelets
  • exploit the Ecto framework
  • The third option consists in a single (or a small number of) common ros nodes executing the pipeline.

It is to be said that I don't need the pipeline to run in "real-time": I don't have to track anything in real-time. My robot perceives the scene, performs some operations without perceptive feedback, and perceives again the scene to understand how he had modified the environment. So an asynchronous paradigm based on services could be ok for my purposes, and some extra copies of point clouds could be admissible.

What are your thoughs about my issue?

Thank you very much

Cheers

2013-01-31 04:19:31 -0500 received badge  Popular Question (source)
2013-01-30 15:11:35 -0500 received badge  Popular Question (source)
2013-01-25 09:03:17 -0500 answered a question filter chain failing and move_arm crashing

Hello sedwards, thank you for replying.

The filters.yaml file should be like this one (in this moment I have not the laptop on which we run ROS, I took this from the stack repository, but I don't remember to have modified it)

service_type: FilterJointTrajectoryWithConstraints filter_chain:


name: unnormalize_trajectory
type: UnNormalizeFilterJointTrajectoryWithConstraints

name: cubic_spline_short_cutter_smoother
type: CubicSplineShortCutterFilterJointTrajectoryWithConstraints
params: {discretization: 0.01}

Also the joints_limits.yaml could play a role in this issue? It is also left as default, however.

Anyway: by now I've wrote a simple workaround (not so efficient, though), I just replan everything if the trajectory filter chain fails. (I tried to do this inside move_arm, before, without success - the filter chain kept failing again and again, so I just do this at an higher level in my code, checking the final result). After a fail, the subsequent trial always go well, so it is acceptable for now. I have a failure every 8-10 requests, I think.

Anyway it would be great to avoid the filter chain failure at all... Removing one of the two filters could solve the issue, but it could also cause worse trajectories, am I right?

I've not investigated the reason which filter fails, and why, maybe there's a solution at that level...

2013-01-25 08:57:24 -0500 answered a question filter chain failing and move_arm crashing

Hello sedwards, thank you for replying.

The filters.yaml file should be like this one (in this moment I have not the laptop on which we run ROS, I took this from the stack repository, but I don't remember to have modified it)

service_type: FilterJointTrajectoryWithConstraints filter_chain:


name: unnormalize_trajectory
type: UnNormalizeFilterJointTrajectoryWithConstraints

name: cubic_spline_short_cutter_smoother
type: CubicSplineShortCutterFilterJointTrajectoryWithConstraints
params: {discretization: 0.01}

Also the joints_limits.yaml could play a role in this issue? It is also left as default, however.

Anyway: by now I've wrote a simple workaround (not so efficient, though), I just replan everything if the trajectory filter chain fails. (I tried to do this inside move_arm, before, without success - the filter chain kept failing again and again, so I just do this at an higher level in my code, checking the final result). After a fail, the subsequent trial always go well, so it is acceptable for now. I have a failure every 8-10 requests, I think.

Anyway it would be great to avoid the filter chain failure at all... Removing one of the two filters could solve the issue, but it could also cause worse trajectories, am I right?

I've not investigated the reason which filter fails, and why, maybe there's a solution at that level...

2013-01-24 22:09:29 -0500 asked a question filter chain failing and move_arm crashing

Hi,

I'm using move_arm for collision free arm navigation on ROS fuerte and KUKA robot.

Usually things go just fine, but sometimes the filter chain fails and move_arm crashes. I enabled debug output, and noticed that there are NaNs in the trajectory before failing. Here's the last part of the output.

[1359107633.997232818]: 1.330000: 4.510401 1.350002 -0.500625 1.096641 2.923427 0.000000 -0.000000, 0.000052 0.024558 0.038131 -0.061985 -0.000026 0.000000 -0.000767, -0.000767 -0.359263 -0.557837 0.906790 0.000378 0.000000 -0.000000 [DEBUG] [1359107633.997296605]: 1.395015: -nan -nan -nan -nan -nan 0.000000 -nan, -nan -nan -nan -nan -nan 0.000000 -0.000000, -nan -nan -nan -nan -nan 0.000000 17393607366705369643880719888468171476259579135312614891693586456362663844874551296.000000 [1359107633.997331749]: [DEBUG] [1359107633.997369972]: Final trajectory has 31 points and 1.395015 total time [ INFO] [1359107633.997802352]: Final trajectory invalid with error code 1 [ INFO] [1359107633.997844887]: Trajectory error codes size is 0 [ WARN] [1359107633.997901998]: Filter chain failed to process trajectory [move_arm-9] process has died [pid 13489, exit code -11, cmd /opt/ros/fuerte/stacks/arm_navigation/move_arm/bin/move_arm_simple_action arm_ik:=youbot_arm_kinematics/get_constraint_aware_ik arm_fk:=youbot_arm_kinematics/get_fk /trajectory_filter_server/filter_trajectory_with_constraints:=trajectory_filter/filter_trajectory_with_constraints __name:=move_arm __log:=/home/youbot/.ros/log/ac7a1c36-66c8-11e2-9973-742f688386f9/move_arm-9.log]. log file: /home/youbot/.ros/log/ac7a1c36-66c8-11e2-9973-742f688386f9/move_arm-9*.log

My question is: how should I solve this? Why NaNs happens? Maybe I can configure something in the filter chain in order to avoid NaNs? Why move_arm is crashing, anyway? Should I try to avoid this and maybe use the unfiltered trajectory when the filter fails?

Every suggestion is welcome

Thank you

EDIT: additional information

gdb backtrace

0 0xb7e8bdaa in ros::DurationBase<ros::duration>::operator-(ros::Duration const&) const () from /opt/ros/fuerte/lib/librostime.so 1 0x080dd063 in move_arm::MoveArm::filterTrajectory (this=0xbfffe544, trajectory_in=..., trajectory_out=...) at /tmp/buildd/ros-fuerte-arm-navigation-1.1.11/debian/ros-fuerte-arm-navigation/opt/ros/fuerte/stacks/arm_navigation/move_arm/src/move_arm_simple_action.cpp:357 2 0x080e6df5 in move_arm::MoveArm::executeCycle (this=0xbfffe544, req=...) at /tmp/buildd/ros-fuerte-arm-navigation-1.1.11/debian/ros-fuerte-arm-navigation/opt/ros/fuerte/stacks/arm_navigation/move_arm/src/move_arm_simple_action.cpp:945 3 0x080ee78c in move_arm::MoveArm::execute (this=0xbfffe544, goal=...) at /tmp/buildd/ros-fuerte-arm-navigation-1.1.11/debian/ros-fuerte-arm-navigation/opt/ros/fuerte/stacks/arm_navigation/move_arm/src/move_arm_simple_action.cpp:1154 4 0x080c3dd9 in operator() (a0=..., this=<optimized out="">) at /usr/include/boost/function/function_template.hpp:1013 5 actionlib::SimpleActionServer<arm_navigation_msgs::movearmaction_<std::allocator<void>

::executeLoop (this=0x81852a8) at /opt/ros/fuerte/include/actionlib/server/simple_action_server_imp.h:344 6 0xb7c4348c in thread_proxy () from /usr/lib/libboost_thread.so.1.46.1 7 0xb7c24d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 8 0xb7a32d3e in clone () from /lib/i386-linux-gnu/libc.so.6

EDIT:

ok the crashing problem was due to a bug in trajectory_filter_server, that always returned true even when failing. Now move_arm does not crash anymore.

However, what should I do when trajectory filtering fails? Retry filtering? Would it help? Using the unfiltered trajectory seems not a good solution...

UPDATE: try to filter again ... (more)

2013-01-23 03:28:56 -0500 received badge  Popular Question (source)
2013-01-22 12:24:05 -0500 received badge  Popular Question (source)