Robotics StackExchange | Archived questions

remote roscore cant find package

i have a little problem to get my envoirment running.

My setup : A PC running ubuntu 16.04 with ROS installed. This is where i want to develop the code and manage my packages. Here runs everything fine. The scripts are python scripts. And when i run the scripts in seperated terminals, everything is fine.

Next i have a raspberry 3 also running ubuntu. I installed the distro from Ubiquity Robotics. There is ROS already installed. This is the one where roscore is running. Both can see eachother over the net.

Now my problem is, when i try to run a package via rosrun on the raspi it doesn´t find the package. So what must be setuped on the raspi that he finds the package stored on the develop system.

Asked by oligor77 on 2019-02-28 06:49:04 UTC

Comments

Answers

Hi,

I'm not sure, if I understand you question in details, but I think you need to share your packages and scripts over the network.

ROS can communicate over the network but not sharing packages and programs.

You need a mechanism to sharing binaries over the network.

Possible solutions:

  1. central fileserver, with shared binaries (samba or nfs). Clients can mount and use central data (e.g. your catkin_ws.

  2. central development repository like git. Clients can checkout central repository data .

  3. Push central or development data via script to clients, e.g. via scp or rsync.

In the easiest case and you have packages already distributed, you need to set ROS_MASTER_URI=http://roscore:11311

Happy sharing ros data

Cheers Chrimo

ps: please correct me, if I'm wrong.

Asked by ChriMo on 2019-02-28 12:39:44 UTC

Comments

This is correct. I would also add that the raspberry pi is an ARM architecture and different OS. So the packages would need compiling again to work on this system. In this case the OP should probably manually share code via git and recompile on both systems.

Asked by PeteBlackerThe3rd on 2019-03-01 03:48:48 UTC

Yes, this is always true and neccessary, when you use compiler code or local operating system dependencies (libraries and packages).

I saw in the message "python interpreter scripts".

@oligor77, please close your question and rate answers, when happy ;-)

Asked by ChriMo on 2019-03-01 07:21:51 UTC

You are right, that is exactly what i thought. I only saw an example an the ros ( http://wiki.ros.org/ROS/Tutorials/MultipleMachines ) where he sshed on two machines and execute code. But there lack the information that on both machines the same code exists. So i thought it is possible with ros to distibute code over the master. So i have to setup a workspace on all machines which are part of the netowrk.

Thanks

Asked by oligor77 on 2019-03-01 03:41:29 UTC

Comments