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

rosrun "no such file or directory"

asked 2014-07-25 04:41:48 -0500

hee502 gravatar image

updated 2014-07-25 06:17:26 -0500

I've tried to find the answer to my problem looking at previous similar questions but no luck so far.

I've been using ROS Fuerte on Ubuntu 12.04 LTS to control Jaguar Lite robot. However, the executables created in the correct directory cannot be found by rosrun. Please see the screenshot of the error given below. I think the package path cannot be wrong because it looks into the correct package directory. I would appreciate any help.

Edit: I cannot post links because of low karma. But the code is below

robotlab@robotlab-Revo-RL80:~$ rosrun drrobot_jaguar4x4_player drrobot_player 
/opt/ros/fuerte/bin/rosrun: line 73: /home/robotlab/fuerte_workspace/drrobot_jaguar4x4_player/bin/drrobot_player: No such file or directory
robotlab@robotlab-Revo-RL80:~$ ls ~/fuerte_workspace/drrobot_jaguar4x4_player/bin
drrobot_imu              drrobot_keyboard_teleop  drrobot_player
drrobot_joystick_teleop  drrobotMsgTester         drrobot_pointcloud

In addition: There are 6 executables in bin directory. drrobot_imu and drrobotMsgTester runs without problem. But the rest 4 gives no file or directory error.

edit retag flag offensive close merge delete

Comments

Screenshot link is broken. It looks like you haven't uploaded it.

ahendrix gravatar image ahendrix  ( 2014-07-25 04:48:23 -0500 )edit

You could also paste the error as plain text in the code environment.

BennyRe gravatar image BennyRe  ( 2014-07-25 05:44:53 -0500 )edit

I am suspecting that the executable doesn't have permissions to execute... Try chmod +x to that. Or clean the bin folder and build again.

McMurdo gravatar image McMurdo  ( 2014-07-25 06:22:29 -0500 )edit

I've tried chmod. The same result. I've formatted all the drive, reinstalled Ubuntu, ros and packages. The result is the same unfortunately.

hee502 gravatar image hee502  ( 2014-07-25 06:34:54 -0500 )edit

you may have to add fuerte_workspace to your CMakeLists !

ROSkinect gravatar image ROSkinect  ( 2014-07-25 07:35:34 -0500 )edit

But have you made/built the packages again or are they pre-built binaries? @ahendrix's answer describes almost all possibilities.

McMurdo gravatar image McMurdo  ( 2014-07-25 08:46:35 -0500 )edit

i've built the packages myself. The packages are downloaded from https://github.com/gitdrrobot. Second package depends on the first. But after building the first no executable is created. Maybe that's why the second is giving the error?

hee502 gravatar image hee502  ( 2014-07-25 09:04:01 -0500 )edit

1 Answer

Sort by » oldest newest most voted
1

answered 2014-07-25 07:48:18 -0500

ahendrix gravatar image

updated 2014-07-26 14:27:08 -0500

The error you're seeing here is "no such file or directory", and it's reasonably clear that the immediate file in question exists.

If these programs also fail to run when you execute them directly ( cd to bin, ./drrobot_player ), then there are a number of other things that could be causing this:

  • Your node is a python or shell script with a bad #! line at the beginning, or no #! line at all.
  • Your node is a broken symlink - it exists, but the thing it's supposed to point to doesn't.
  • Your node is compiled for a different architecture - perhaps it's a 32-bit binary on a 64-bit machine, and you don't have the 32-bit compatibility libraries installed.
  • Your node is actually a launch file

I took a deeper look into this. It turns out that the drrobot package maintainers were foolish enough to check 32-bit binaries into their repository: https://github.com/gitdrrobot/drrobot... . You can probably convince them to run if you install the ia32-libs package.

edit flag offensive delete link more

Comments

./drrobot_player command in the bin directory also gives the same error. Your second point might be the cause. drrobot_jaguar4x4_player package depends on DrRobotMotionSensorDriver package. I have realized that, although i don't get an error during building the package, no executable or bin directory is created under the directory of this package. So, the problematic node might be trying to point the executable of the other package. I'll post if the problem is solved. Thanks for all the answers.

hee502 gravatar image hee502  ( 2014-07-25 09:02:24 -0500 )edit

Broken symlinks are VERY easy to diagnose - run `ls -l` on a file to determine if that file is a symlink, and where it is pointing.

ahendrix gravatar image ahendrix  ( 2014-07-25 16:29:51 -0500 )edit

Thanks, it only shows the file permissions, therefore not a symlink. Soon, I'll try on a different hardware to see if hw is the problem.

hee502 gravatar image hee502  ( 2014-07-26 05:06:19 -0500 )edit

I've filed an issue for the 32-bit binaries problem here: https://github.com/gitdrrobot/drrobot_jaguar4x4_player/issues/1 but given that the repository has not seen any activity since it was made public a year ago, I'm not optimistic that they're going to fix it.

ahendrix gravatar image ahendrix  ( 2014-07-26 14:39:07 -0500 )edit
1

This fork seems to have cleaned up most of the problems: https://github.com/RaghavendraSriram/drrobot_jaguar4x4_player .

ahendrix gravatar image ahendrix  ( 2014-07-26 14:39:29 -0500 )edit

ahendrix many many thanks. The package you have given fixes the problem. I have informed the company. Hopefully they will modify their package to prevent future problems.

hee502 gravatar image hee502  ( 2014-07-30 05:00:45 -0500 )edit

Question Tools

Stats

Asked: 2014-07-25 04:41:48 -0500

Seen: 3,867 times

Last updated: Jul 26 '14