Well its on us that you are having trouble finding documentation and information about catkin (but we are working on that).<div><br><div class="gmail_quote">On Fri, Feb 1, 2013 at 12:29 AM, Claudio Carbone <span dir="ltr"><<a href="mailto:cla_carbone@tiscali.it" target="_blank">cla_carbone@tiscali.it</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Maybe an answer from a noob user could be of interest here.<br>
<br>
Context: started with fuerte, wrote some simple nodes, recently tried moving on to groovy.<br>
<br>
The whole catkin thing was a huge blow after the already inexplicable roscreatepkg+rosmake.<br>
I still don't understand why do I have to learn another series of build tools when there is cmake+make.<br></div></blockquote><div><br></div><div>You're in luck, you don't have to learn anything new.  All of the caktin* commands are just wrappers around cmake+make.  You can download any catkin package and build it like you would any cmake package (mkdir build && cd build && cmake .. && make).  An improvement on plain CMake, catkin can build multiple packages together at once using a very light weight workspace.  The workspace is just a folder with catkin packages in it and a special catkin CMakeLists.txt file at the root.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
On fuerte I ended up using cmake most of the times (after one pass of rosmake to generate msgs or services) as I could not get rosmake to update the makefiles if I changed the configuration.<br></div></blockquote><div><br>

</div><div>For rosbuild you can just invoke make in the root of any package to build it, completely circumventing the rosmake tool. The drawback being that your dependencies might not be built yet...</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>
<br>
Now with groovy I totally don't get the workspace thing and the new command.<br></div></blockquote><div><br></div><div>A quick tutorial, without using any special catkin tools, on how to make a catkin workspace:</div>

<div><br></div><div>$ mkdir -p catkin_ws</div><div>$ cd catkin_ws</div><div>... Checkout one or more catkin packages here</div><div>$ ln -s /path/to/catkin/cmake/toplevel.cmake ./CMakeLists.txt</div><div>... you can also use one of our "tools" to do this automagically: `catkin_init_workspace`</div>

<div>$ mkdir build</div><div>$ cd build</div><div>$ cmake .. -DCMAKE_INSTALL_PREFIX=../install</div><div>$ make</div><div>$ make install</div><div><br></div><div>At this point the catkin_ws/install dir contains all of your installed packages.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<br>
Plus at least there are rosmake examples out there, while catkin ones are difficult to come by.<br></div></blockquote><div><br></div><div>catkin is still new, we are working hard to get it documentation and presence on par with rosmake, but as you can imagine that is not easy.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<br>
And on top of this all, I can't see how to integrate catkin in IDEs which to me is a must if you really want to code for ROS.<br></div></blockquote><div><br></div><div>You can use any CMake generator on a catkin workspace.  You could do something like this (extending the previous section):</div>

<div><br></div><div>$ cd catkin_ws/build</div><div>$ cmake ../src -DCMAKE_INSTALL_PREFIX=../install -GXcode</div><div>$ open Project.xcodeproj</div><div><br></div><div>For instance.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>
<br>
Now this is the perspective of a programmer just approaching ROS, not criticizing anyone. But I want to stress that, not being part of the inner circle, some things appear strange and unmotivated (new wheels every time).<br>

</div></blockquote><div><br></div><div>After all of that, if you still don't want to use catkin then just write your stuff in CMake and find_package us:</div><div><br></div><div>find_package(roscpp REQUIRED)</div><div>

<br></div><div>include_directories(${roscpp_INCLUDE_DIRS})</div><div>...</div><div>target_link_libraries(target ${roscpp_LIBRARIES})</div><div><br></div><div>Or use build system you want and find any ROS package with pkg-config:</div>

<div><br></div><div>$ pkg-config --libs roscpp</div><div>-L/Users/william/ros_catkin_ws/install_isolated/lib -lroscpp -l:/usr/local/lib/libboost_signals-mt.dylib -l:/usr/local/lib/libboost_filesystem-mt.dylib -lrosconsole -l:/usr/local/lib/libboost_regex-mt.dylib -l:/usr/local/lib/liblog4cxx.dylib -lxmlrpcpp -lroscpp_serialization -lrostime -l:/usr/local/lib/libboost_date_time-mt.dylib -l:/usr/local/lib/libboost_system-mt.dylib -l:/usr/local/lib/libboost_thread-mt.dylib -lcpp_common</div>

<div><br></div><div>catkin has been our best effort to move all of our build systems to a conventional CMake system, adding tools and custom conventions only where CMake simply doesn't meet our needs.</div><div> </div>

<div>I hope this clears up some of your concerns Claudio and gives everyone else an idea of what processes we intended `catkin_make` simplify.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>
<br>
Best regards<br>
Claudio<br>
-- Inviato dal mio cellulare Android con K-9 Mail.</div><br>_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>William Woodall<div>Willow Garage - Software Engineer</div><div><a href="mailto:wwoodall@willowgarage.com" target="_blank">wwoodall@willowgarage.com</a></div>


</div>