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

[Solved] Velodyne stack 'min_range' doesn't change

asked 2014-04-03 17:37:35 -0600

Gariben gravatar image

updated 2016-10-24 09:02:12 -0600

ngrennan gravatar image

Hello, I am a user trying to use the velodyne stack with ROS. I'm studying human interaction, so I would like the minimum distance with the Velodyne HDL-32e to be as small as possible. I understand that it has limits (as stated in the manual), however, when I attempt to change the value of the min_range parameter, nothing happens. Rviz does not update, even when I reinitialize it or anything else. The value definitely changes (as can be seen in my screenshot), but the data still reflects the minimum range as being 2.0 metres. Can someone help me out with this? Is it a possible bug?

[See joq's answer for solution]

edit retag flag offensive close merge delete

Comments

1

How do you change the parameter exactly? I don't see the mentioned screen shot.

demmeln gravatar image demmeln  ( 2014-04-04 01:50:53 -0600 )edit

I don't have the 'karma' to include links, *sigh*. I'll try to get a work around. normal: http://i.imgur.com/J6hgmZU.png altered: http://i.imgur.com/8NO7GFi.png

Gariben gravatar image Gariben  ( 2014-04-06 18:45:13 -0600 )edit

Note that it also does not change as you make the min_range larger either. http://i.imgur.com/DBcWloU.png

Gariben gravatar image Gariben  ( 2014-04-06 19:20:37 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
2

answered 2014-04-04 03:11:42 -0600

joq gravatar image

updated 2014-04-07 06:00:11 -0600

It's probably not a bug.

Setting min_range works for me. Note that the minimum supported in hardware is 0.9 meters.

Update: From your screenshot, it appears that you changed the parameter after the driver was running using a command like:

$ rosparam set /cloud_nodelet/min_range 10.0

The currently-released driver does not re-read parameters once it is running. So, you need to set the desired value while launching the driver. In two separate terminals try this:

$ roslaunch velodyne_driver nodelet_manager.launch model:=32E
$ roslaunch velodyne_pointcloud cloud_nodelet.launch min_range:=0.9

The reason it requires two roslaunch commands is because the 32e_points.launch script does not provide the min_range and max_range arguments. They could easily be added. If that was the root cause of your confusion, please make a comment, and I will add them in some future version, probably for ROS Indigo.

The latest not-yet-released sources support dynamic reconfigure. If you know how to create a catkin workspace, check out the code, and build it, you are welcome to try that version. It should work on Hydro and probably Groovy. Indigo is not supported yet, but should be soon.

edit flag offensive delete link more

Comments

I included screenshots in a reply above. I also reintialized RViz whenever I took them (though I don't think it matters). Any ideas why it would still behave the way it does? I'll give the launch dealie a try though.

Gariben gravatar image Gariben  ( 2014-04-06 18:46:45 -0600 )edit

That update did it. Thanks for your help, joq. Your stack is awesome and your super helpful. Just for reference I'll include pics for reference later. http://i.imgur.com/RCmRDsN.png?1http://i.imgur.com/O0hljAx.png?1 Thanks again. I'll try to [solved] this guy.

Gariben gravatar image Gariben  ( 2014-04-07 19:14:00 -0600 )edit

If this answer solved your problem, it would be great if you marked it as 'accepted' for others to immediately see that this was the working resolution. Thanks.

demmeln gravatar image demmeln  ( 2014-04-08 00:17:16 -0600 )edit

Sorry, new to the forum. I did it.

Gariben gravatar image Gariben  ( 2014-04-08 19:34:01 -0600 )edit

Thank you @Gariben :-)

demmeln gravatar image demmeln  ( 2014-04-09 00:47:58 -0600 )edit
1

answered 2014-04-04 04:13:57 -0600

sai gravatar image

Hey,

You need to go to the Velodyne stack and find the launch file which triggers this parameter and change it in the source file itself.

Go to this location velodyne/velodyne_pointcloud/launch/ and change the value in this file 32e_points.launch to

<arg name="min_range" value="0.0"/>

Then it works.

Good day!

edit flag offensive delete link more

Comments

1

If launch file limitations are indeed the basic problem (we don't know that yet), then a better solution would be to make one's own launch script, or provide a pull request to add any desired extra arguments.

joq gravatar image joq  ( 2014-04-04 04:58:33 -0600 )edit

I gave that a try, unfortunately no avail. http://i.imgur.com/xIOchHC.png I also changed the min_range at every instance I could find, but it still defaults to 2.0. This may have something to do with the problem. Perhaps it's being overidden to 2.0 somewhere.

Gariben gravatar image Gariben  ( 2014-04-06 19:17:10 -0600 )edit

do roscd to velodyne package and change the parameter in that location. I had this issue but was solved by changing the value at teh source. If you already tried this then..i dont know what can be the issue. But later when it gets solved try to post the correct solution!

sai gravatar image sai  ( 2014-04-07 04:57:07 -0600 )edit
1

It is *never* a good idea to edit files in /opt/ros/ directly. Eventually they will get overwritten by an apt-get update.

joq gravatar image joq  ( 2014-04-07 06:03:33 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2014-04-03 17:37:35 -0600

Seen: 1,080 times

Last updated: Apr 07 '14