Rosanswers logo

I'm trying to understand the whole velodyne_driver package and I have several doubts.

I configure the network, connect the Velodyne and I check the data and I I see everything is well connected and configured (using rviz):

roslaunch velodyne_pointcloud 32e_points.launch calibration:=/home/user/32db.yaml

rostopic echo /Velodyne_points

But if I run: velodyne_node, I see it is publishing in /velodyne_packets but I can not see the data because I get an error.

rosrun velodyne_driver velodyne_node _model:=32E

rostopic echo /velodyne_packets

Traceback (most recent call last): File "/opt/ros/groovy/bin/rostopic", line 35, in rostopic.rostopicmain() ... IOError: [Errno 13] Permission denied: '/home/vplaza/.ros/rosdep/sources.cache/index'

1. Is it normal not seeing this data with rostopic echo? Is it because /velodyne_packets is an structure instead of integer values as /velodyne_points ? Is it because /home/vplaza/.ros/ does not exist?

Some rostopic works fine:

rostopic bw /velodyne_packets
rostopic hz /diagnostic

But this one returns the same error as before:

rostopic hz /velodyne_packets

2. Is this error normal in /velodyne_packets?

If I try to change the speed of the Velodyne I dont see the device is changing. I have try with 300 rpm and 10 rpm:

rosrun velodyne_driver velodyne_node _model:=32E _rpm:=300

3. What can I do to change the velocity?

Then I try to execute a velodyne test but I get an error:

rostest velodyne_driver pcap_32e_node_hertz.test

... logging to /home/vplaza/.ros/log/rostest-vplaza-PClinux-6466.log Traceback (most recent call last):
File "/opt/ros/groovy/bin/rostest", line 35, in rostestmain()
File "/opt/ros/groovy/lib/python2.7/dist-packages/rostest/init.py", line 268, in rostestmain _main()
File "/opt/ros/groovy/lib/python2.7/dist-packages/rostest/rostest_main.py", line 150, in rostestmain results_file = xmlResultsFile(pkg, outname, is_rostest)
File "/opt/ros/groovy/lib/python2.7/dist-packages/rosunit/core.py", line 102, in xml_results_file raise IOError("cannot create test results directory [%s]. Please check permissions."%(test_dir)) IOError: cannot create test results directory [/home/vplaza/.ros/test_results/velodyne_driver]. Please check permissions.

4. How should I run the test? Is it because /home/vplaza/.ros/ does not exist?

And also the manual "velodyne_driver" said the driverNodelet does the same process as the node velodyne_node.

5. What's the difference between the node and the nodelet? The topic published is the same /velodyne_packets.

6. If the nodelet is executed with roslaunch with the file nodelet_manager.launch , why the nodelet_velodyne.xml (linked in manifest.xml) shows the file lib > libdriver_nodelet.so instead of the launch file? How does it works?

Originally posted by marilia15 on ROS Answers with karma: 104 on 2014-03-12

Post score: 0


1 Answer 1


Rosanswers logo

I am out of town on vacation for the rest of this week.

Will answer what questions I can quickly, and leave the rest until I return, or maybe someone else will assist.

I have not seen that rosdep error and don't know why you are seeing it. Did you run sudo rosdep init and rosdep update?

  1. The /velodyne_packets are binary data packets, rostopic echo is not useful, but rosptopic hz might be.

  2. Not normal.

  3. Try creating the desired test directory. There is probably something wrong with your permissions. Make sure they don't belong to root.

  4. Maybe, or perhaps you used root when you should not have.

  5. The node and nodelet both run the same driver code, but launch it differently. See: http://wiki.ros.org/nodelet

  6. I don't have time to explain all the details of roslaunch and nodelets today. Try reading some tutorials. If you still need help, I'll provide more pointers next week.

Originally posted by joq with karma: 25443 on 2014-03-12

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by marilia15 on 2014-03-13:
I really appreciate your quick response. Here are my feedback and maybe you can clarify more, when you can.

Errors 1-2 correspond to rosdep permissions: My .ros directory (the owner is root) has permissions 777. Rosdep (root owner) rwx rx rx. The owner should be my user? or the permissions should be 777? Should I change it manually with chmod? or with a ros command/configuration?

Error 4 correspond to .ros/testresults permissions. This directory (my user is the owner) is rwx rwx rx. Are these values right?

Question5. I think a nodelet run one or more nodes but without messages passing between them. In this case is just one node, so no internal messages. So what is the purpose of this nodelet? To be used with other nodelets?

Question 6. Also I'm interested in knowing the files including in the behaviour of a nodelet and this is not in the manual :(.

Thanks in advance

Comment by joq on 2014-03-15:
Nothing under your home directory should belong to root. Use sudo to change ownership or to delete and re-create them all with your user ID as owner.

Comment by joq on 2014-03-15:
Running the velodyne_driver and velodyne_pointcloud nodelets in a single nodelet manager process avoids copying large messages unnecessarily. See: http://wiki.ros.org/velodyne_pointcloud#Launch_File_Examples .

Comment by joq on 2014-03-15:
Nodelets are a general and complex topic, not specific to the Velodyne driver. Please work the relevant tutorials (http://wiki.ros.org/nodelet/Tutorials), and open a new question on this forum if you still need more details.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.