0
$\begingroup$

Rosanswers logo

As a newbie not yet ready to create my own project, I'd like to get a feel for how existing projects are organized and be able to look through their code before embarking on my own. Is there a tutorial that covers this aspect of projects? For instance, how do I go from seeing a project I think I might want to look at, for example, ros_pkg_tutorials, to actually being able to look at it? If there is not already such a page, can someone make one and post a link? Much obliged!

Related to this, something I've wished for while browsing the lists of packages, repositories, and stacks (and still not being clear on the distinctions among them):

The descriptions, if they exist at all, are necessarily very brief (single-line). Is there, or can one be created, a page that attempts to categorize in some way the thousands of projects on the site? How do I know where to start if I eventually want to create my own well-organized project? I can barely afford to examine, say, mere dozens, but certainly not many hundreds of projects! Something like an "Editor's Pick" list, or a server-managed "Most Popular" list, or simply a page whereby non-newbies can weigh in on things for budding ROS users to cut their teeth on?


Originally posted by rubyuser on ROS Answers with karma: 21 on 2011-11-21

Post score: 2


Original comments

Comment by rubyuser on 2011-12-07:
Can somebody give me a hint here? How can I browse a package, or repository, or stack?

Comment by 130s on 2012-03-01:
Just a comment but interesting idea. IMO the more frequent packages are used, the more concise but explanatory descriptions get available. Unless that happens I guess developers might not be able to prioritize much about things like you suggest.

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

I would advise you to:

  1. read the ROS "basic" tutorials as they cover the "technical" aspects,
  2. read the PR2 tutorials as they will cover high quality robotics components, some of them being reusable.

Then, look at widely used components such as urdf, rviz, image_pipeline stack and its associated packages. Be careful: the "tutorials" link is usually on the wiki on the right page of each package page and is not very easy to find.

Googling for ROS videos on YouTube may also help (but some of them may be a bit outdated).

Once you have been through that, it really depends on what you want to achieve with ROS.

As far as I am concerned, it went like this during my PhD:

  • learn basic ROS (roscpp, topics, services, etc.)
  • play with the image_pipeline to achieve image rectification and color space conversion (using camera1394, image_proc, image_calibration)
  • wrap the algorithms I were using at that time into a ROS node (aka the vision_visp stack for object tracking/robot localization and motion_analysis_mocap for integration with our motion capture system)
  • write an URDF model of my robot to have better rviz visualization
  • write a plug-in for our control framework so that I have input/output communication from our control framework to the external world. Useful to get the robot state (force sensor, IMU, encoders data) so that, for instance, rviz can display any information.
  • a bit of system administration to synchronize clocks between the two robot computers and the robot console running the GUIs. It allowed me to reuse robot_pose_ekf (all the sensor data were not acquired on the same board).

I don't know if our situations are similar but at least, there is a couple of interesting packages in the list you might want to look at.


Originally posted by Thomas with karma: 4478 on 2013-02-03

This answer was ACCEPTED on the original site

Post score: 1

$\endgroup$
0
$\begingroup$

Rosanswers logo

The best thing to do is work through some of the Tutorials. The most common packages tend to have the strongest tutorials.


Originally posted by tfoote with karma: 58457 on 2013-02-03

This answer was NOT ACCEPTED on the original site

Post score: 2

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.