Hi Domenico, <br><br>It's been our design goal that both experts in a field find ROS useful as well as non-experts.  The experts can take an existing implementation and improve upon them, while non-experts can use existing functionality to enable work in other areas. <br>



<br>Robotics as a field is a very large space and no one knows how to do everything.  For example there are people who spend their entire career working on and developing SLAM algorithms and there are people who spend their entire career working on object recognition.  Both these people are experts in robotics however they do not necessarily have all the expertise required to write all the software to enable the robot they want to do their work on.  However when used on the same robot, the others work is very useful.  <br>



<br>For a concrete statement I know that no single person in the world could have written the code which we run on the PR2.  The reason I know this is that the code base is way to large, especially when you start to consider all the code running down to the level of the linux kernel and hardware drivers running on the robot as well.  <br>



<br>The reason that the system works is because code is organized into libraries(and other tools) which enables other non experts to build on top of the work of the experts within the libraries.  Thus, when I write C++ code, I am not an expert in compiling nor optimization but my code is compiled and optimized based on the work of others.  If I was an expert in the field I might be able to go in and improve the performance of the optimization.  But I'm not and I don't need to be to use the compiler with optimization, I just have to know how to use the compiler.  <br>



<br>I hope I haven't rambled too much.  But to the specific question you asked, it is the hope that people will be able to use the tools written without being an expert in the field.  If you know more about the system you can make better use of it.  Thus it should be useable for both experts and non experts in any given field.  <br>



<br>Tully<br><br><div class="gmail_quote">On Sun, Nov 28, 2010 at 1:47 PM, Domenico G. Sorrenti <span dir="ltr"><<a href="mailto:sorrenti@disco.unimib.it" target="_blank">sorrenti@disco.unimib.it</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
>... cut (the message was speaking about gmapping)<br>
>So at this point, it seems the only decent documentation is the<br>
>academic paper. This is a shame because many people would be unwilling<br>
>to digest it (nor should they have to become a SLAM expert just to<br>
>build a decent map).<br>
>... cut<br>
Sorry for not replying on the topic you were raising, but I think the<br>
sentence above to be raising an interesting question: do you think to<br>
be appropriate for a roboticist to "avoid" SLAM problems? How such a<br>
roboticist will be able survive in his work eco niche? Doesn't this<br>
situation sound similar to a programmer that is beginning to work with<br>
C++ while believing to be appropriate to do it without knowledge about<br>
what pointers are? I'm curious to know your opinion, which is also<br>
relevant to what is the intended audience of ROS.<br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org" target="_blank">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>
</blockquote></div><br><br clear="all"><br>-- <br>Tully Foote<br>Systems Engineer<br>Willow Garage, Inc.<br><a href="mailto:tfoote@willowgarage.com" target="_blank">tfoote@willowgarage.com</a><br>(650) 475-2827<br>