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

Installing rosdep performance improvements

asked 2019-10-20 04:17:02 -0500

Tal Ma gravatar image

updated 2022-06-11 08:52:06 -0500

lucasw gravatar image

I'm using docker run.sh cmd run build ros ci packages. On docker file I have

  RUN rosdep init
  RUN rosdep fix-permissions

On entry point run

rosdep update

On cmd run.sh I run

rosdep install --from-paths src --ignore-src -r -y

The rosdep command install all ros dependencies based on a cloned git repo with ros packages and takes about 10 minutes on standard laptop with ~60Mb/s connection speed.

Can you suggest faster way of doing the same? Assuming the dependencies of the cloned repo can be changed (added or removed) on every clone.

Thanks a lot, Tal

edit retag flag offensive close merge delete

Comments

What are the specs of the machine you are running this on? Does it have an SSD, or a spinning disk?

gvdhoorn gravatar image gvdhoorn  ( 2019-10-20 05:41:25 -0500 )edit
RUN rosdep fix-permissions

there's no point in running this from within a Docker build sequence. Unless you run it after switching to a non-root user.

gvdhoorn gravatar image gvdhoorn  ( 2019-10-20 05:41:51 -0500 )edit

Ok. My laptop is quite new and has SSD Disk with 12 8th gen i7 CPUs.

Tal Ma gravatar image Tal Ma  ( 2019-10-20 10:29:37 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2019-10-20 04:44:07 -0500

Orhan gravatar image

updated 2019-10-20 09:33:26 -0500

Connection speed depends on the server too. You might have a fast connection but if those packages are hosted on servers which are slow, you don't have anything to do.

You can use a mirror for your ros packages, example here: How do I set up a ROS mirror?

(Also you can use an existing mirror depending on your location during ROS installation, if you see that one of these mirrors will be as fast as your custom mirror)

You can try changing your Ubuntu update servers to install packages faster, example here.

And also you can try to host those dependency repositories on a mirror server which you'd access faster if this is the case.

edit flag offensive delete link more

Comments

re: package mirror: running a local one could speed things up, but it may also be a lot of work/overhead. Perhaps OP could already benefit from using an existing mirror that is (geographically) closer to him/her.

gvdhoorn gravatar image gvdhoorn  ( 2019-10-20 05:43:37 -0500 )edit

True, forgot to mention. Updating my answer now. Thanks a lot.

Orhan gravatar image Orhan  ( 2019-10-20 09:27:55 -0500 )edit

Currently I don't have an access to a testing environment, from the question, I assumed that rosdep is able to clone repositories too. I didn't see such functionality before. Is it available?

Orhan gravatar image Orhan  ( 2019-10-20 09:36:10 -0500 )edit
1

No. rosdep does not deal with source dependencies. It only installs dependencies resolvable through package managers (see #q215059 for a general overview of what it does).

This is not entirely true btw, as something called "rosdep manifests" is still supported, but I would not use those (see #q255238).

For source-based dependencies, use wstool or vcstool.

gvdhoorn gravatar image gvdhoorn  ( 2019-10-20 11:43:12 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2019-10-20 04:17:02 -0500

Seen: 832 times

Last updated: Oct 20 '19