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

Install debian dependecies for git source project [closed]

asked 2014-11-16 17:29:38 -0600

l0g1x gravatar image

updated 2014-11-16 17:54:38 -0600

So i have all my source for my custom robot on github, and i only want to have my own custom source in there. I have been looking around everywhere, and am trying to figure out how to make these steps below work:

  • A member from my team does fresh linux install
  • installs ros full desktop indigo through apt-get
  • creates a catkin workspace, and does "git clone [repo url] src"

Now he needs to compile the source, but because he just did a clean install, packages (dependencies in this case) like robot_localization, move_base_msgs, etc, are not installed to his system yet.

What i am trying to figure out is how can i set it up so that when he downloads/compiles the source, the respective debian package dependencies are installed in the easiest way possible (to /opt/ros/indigo). Im trying to minimize the least amount of commands since the new guys in my club are just learning ROS. Since they do not know yet what robot_localization or move_base_msgs is yet, im trying to eliminate having them take additional steps in order to just get our gazebo model with ros plugins, robot_localization, move_base, etc... to start up.

Ive looked at a few packages at tried to see how they do it, but i only found in clearpaths jackal repo that they had a rosinstall file. Someone please correct me if i am wrong: I do not think i want to do rosinstall because it seems as if rosinstall installs the source; looking inside the rosinstall for jackal, it is listing github urls, and branches which is not what i am trying to do)

I obviously tried using rosdep, but it seems like you can only invoke things like "rosdep check [package/stack]" if the package is in the /opt/ros/[distro]/ path. I tried to do it from my catkin workspace (since that was one of the 4 paths rosdep error was giving) and it still didnt work:

ERROR: Rosdep cannot find all required resources to answer your query
Missing resource simulation/scipio_simulation/
ROS path [0]=/opt/ros/indigo/share/ros
ROS path [1]=/home/l0g1x/edt/l0g1x_ws/src
ROS path [2]=/opt/ros/indigo/share
ROS path [3]=/opt/ros/indigo/stacks

So then i tried to add install() to the CMakeLists.txt of one of my packages (so that i can then call rosdep check/install/etc. on it) by adding:

install(DIRECTORY launch/
  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
  FILES_MATCHING PATTERN "*.launch"
  PATTERN ".git" EXCLUDE)

But then i couldnt build the package because catkin picked up that robot_localization was not installed (i listed it as my packages dependency in the CMakeLists.txt in the package() line), so it would not install to the /opt/ros/indigo folder..

Does anybody have any insight on what i should do or how to go about this to make the process of setting up our project as seamless as possible for a new member of my club?

EDIT 1:

I tried this command as ... (more)

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by l0g1x
close date 2015-04-02 21:56:25.393216

1 Answer

Sort by ยป oldest newest most voted
4

answered 2014-11-17 13:49:03 -0600

William gravatar image

Yes, the command you posted is the right thing to do in this case. It allows rosdep to figure out what packages are either not installed from apt-get nor in the current workspace and then try to install those from apt-get.

$ rosdep install --from-paths src --ignore-src --rosdistro indigo

The --from-paths src option tells rosdep to resolve dependencies for packages found in that folder, src, and the --ignore-src option tells rosdep not to try and install packages it finds in the folders given to --from-paths, in this case src. Without this option you get something like the error you got above which resulted because rosdep saw that scipio_simulation was a dependency of some other package so it would try to resolve it (check that it is installed else install it), but since it is not released rosdep cannot handle it and bails out.

One note is that you should do this:

$ mkdir -p /path/to/workspace/src
$ cd /path/to/workspace/src
$ git clone [url]

Rather than cloning the repo directly as src, as you suggested:

creates a catkin workspace, and does "git clone [repo url] src"

edit flag offensive delete link more

Comments

Thanks william. The reason i did git clone [url] src was because if you dont specify a folder at the end of the git command, it creates a folder under the name of the repo: /workspace/src/edt_software/. Is there a REP on this workspace structure?

l0g1x gravatar image l0g1x  ( 2014-11-17 14:10:49 -0600 )edit
2
William gravatar image William  ( 2014-11-18 18:22:50 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2014-11-16 17:29:38 -0600

Seen: 1,047 times

Last updated: Nov 17 '14