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 well from my catkin_ws/ folder:
rosdep install --from-paths src --ignore-src --rosdistro indigo
And i think this does the trick.. Can someone confirm this is the CORRECT way to do what i am trying to do? Dont want to learn bad habits
↧