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

Ros node does not recognize Haptic device

asked 2015-10-19 07:52:06 -0500

mrslvgg gravatar image

updated 2015-10-20 04:19:58 -0500

I am developing a ros node for reading Force Dimension Omega.x haptic device input. I downloaded the Force Dimension SDK, compiled the libraries and exported them in /usr/local/lib while copied the headers in /usr/local/include. Then I modified CMakeLists.txt and package.xml to link those files. My code is building correctly now, but I can't connect to my haptic device. Since with other non-ros packages (e.g. Chai3D) I had to specify "sudo" for running a bin and for connecting to the haptic device properly, my question is: How I can run a ros node and connect to my device? I am developing my code in QtCreator.

Looking forward for your help. Thanks

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
0

answered 2015-10-20 04:20:13 -0500

mrslvgg gravatar image

updated 2016-05-14 07:19:21 -0500

I finally find out how to access to usb without typing sudo. First of all, I create a new file in /etc/udev/rules.d named 10-mydevice.rules and added this line inside:

ATTRS{idProduct}=="[PRODUCT_ID]", ATTRS{idVendor}=="[VENDOR ID]", MODE="666", GROUP="plugdev"

where VENDOR_ID and PRODUCT_ID are specified by

lsusb -v

Then I simply checked if my user was part of plugdev group by typing

groups USERNAME

Finally I saved and closed my file and entered the following in the terminal window for refreshing the rules:

sudo udevadm trigger

Right now I can run my node by using rosrun without root privileges or run the node from inside QtCreator!!! Hope this could help other people!

edit flag offensive delete link more
0

answered 2016-05-11 08:28:06 -0500

updated 2016-05-12 04:49:00 -0500

gvdhoorn gravatar image

In particular, I added this line

ATTRS{idProduct}=="cb48", ATTRS{idVendor}=="0403", MODE="666", GROUP="plugdev"

Without the "0x" before the number, inverting also idVendor number to the idProduct and it worked.

Thanks.

edit flag offensive delete link more

Comments

I edited my answer, thank you for the suggestion ;)

mrslvgg gravatar image mrslvgg  ( 2016-05-14 07:20:16 -0500 )edit
1

answered 2015-10-19 09:00:05 -0500

gvdhoorn gravatar image

You most likely need to give your user access to the Linux device file that is used to communicate with the haptic device.

See Rosrun as super user and replace /dev/ttyUSB0 with the device file that is used by your haptic device driver.

edit flag offensive delete link more

Comments

Sorry but this does not help me. I changed the owner of the bin file but it does not work with rosrun. In addition, I noticed that I don't have /dev/ttyUSB0.

mrslvgg gravatar image mrslvgg  ( 2015-10-19 10:20:51 -0500 )edit

Did you read the answer I linked to? Cause what you posted as an update to your question is exactly what those answers tell you to do.

gvdhoorn gravatar image gvdhoorn  ( 2015-10-20 03:18:34 -0500 )edit

Yes, I went through your links, but it took a while for understanding udev rules stuff. Anyway, your answer helped a lot. Thanks!!

p.s. Sorry I am new to ros and linux and also to this forum. I edited my post but I cannot accept my answer.

mrslvgg gravatar image mrslvgg  ( 2015-10-20 04:24:58 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2015-10-19 07:52:06 -0500

Seen: 1,216 times

Last updated: May 14 '16