Mike,

I think this is where the Docker, and the Chef solutions fit in well. At the core of the problem, you are effectively describing a configuration management issue. Docker makes it easy to ship a pre-built and pre-configured set of things -- and the Chef solution allows to abstract the process into a DSL. They both have their pros and cons, but I think they are not mutually exclusive either. I am very interested in this discussion, so if you have a private thread going please loop me in! 

-Ryan H.

On Wed, Mar 4, 2015 at 5:19 AM, Mike Purvis <mpurvis@clearpathrobotics.com> wrote:
As an OEM who ships a lot of robots to first-time ROS users, one of the things I/we have thought about at Clearpath is exactly how to configure the robots for the best combination of ease-of-production on our side, ease-of-getting-started on the user's side, and ease-of-maintenance on the user's side. The current state of affairs is:
  • Everything on the robots is installed from debs, from a combination of packages.ros.org (buildfarm) and packages.clearpathrobotics.com (in-house buildbot-ros builds).
  • An /etc/ros/setup.bash file falls through to /opt/ros/indigo/setup.bash. This is what is sourced for the robot_upstart job which brings up the base software.
  • The homedir is populated with a README file explaining how to create a workspace with a new package in it...
  • ... and further how to change that "master" setup.bash, in the event that your new package contains nodelets, plugins, or things you want to launch as part of the robot_upstart background job.
  • Because all the "system" software is installed from debs, upgrading is a fairly sane update/dist-upgrade story.
  • But, if there's a repo of special customization launchers/URDF/whatever that's specific to that one platform, it is configured as a package and placed in a source workspace in the homedir.
  • The desktop and simulator software is also distributed as debs, and so provide a sane story for getting started on the user's supporting computer (but if the user wants the meshes or other stuff from a customization package, it must be manually copied over, le sigh).
We also resell a number of other vendors' products, and many do not make it any farther than a source workspace for everything— often with a manual apt-get step for dependencies (rather than using rosdep). On the one hand, this is perhaps easier for hacking on and exploring the platform's own software, but it sucks for pretty much everything else.

Anyhow, if anyone's interested in these issues or has thoughts about how to improve the state of affairs for OEMs or users of OEM robots, please get in touch off-list, would love to discuss further; at some point we could also consider establishing a SIG for vendors. In any case, I can be found at mpurvis@clearpathrobotics.com

M.

On 4 March 2015 at 07:42, Jonathan Bohren <jonathan.bohren@gmail.com> wrote:

I think this is a great idea. I can't say the likelihood that this gets added to the wiki, but I'd be happy to accept a PR to add this to http://rosindex.github.io

https://github.com/rosindex/rosindex/issues/142

-j


On Wed, Mar 4, 2015, 03:44 G.A. vd. Hoorn - 3ME <g.a.vanderhoorn@tudelft.nl> wrote:
All,


just wondering whether we should somehow clarify what the current 'best
practices' are for installing packages onto a ROS pc. I see a lot of
people that assume that building from source (after cloning from a
repository) is _the_ way to do things.

Apart from the fact that this is essentially a waste of time and effort,
it also often leads to problems (as they forget to check for and / or
install all dependencies first), which then results in numerous ROS
Answers questions. Having the sources locally also seems to invite some
users to start editing / hard coding parameters (such as IPs / serial
ports) into nodes, which is obviously unwanted.

Somehow I have a feeling that the prominent placing of the repository
URL in the Package Summary contributes to the confusion.

Would it perhaps be an idea to add a one-liner to the 'Package Summary'
on wiki pages of released packages that shows users how to install it
("Installation: sudo apt-get install ros-$release-pkg-name", although
that is distribution specific)? Or a link to a (new) wiki page that
explains how to install packages in general (with the from-source option
shown last)?


Gijs
_______________________________________________
ros-users mailing list
ros-users@lists.ros.org
http://lists.ros.org/mailman/listinfo/ros-users

_______________________________________________
ros-users mailing list
ros-users@lists.ros.org
http://lists.ros.org/mailman/listinfo/ros-users



_______________________________________________
ros-users mailing list
ros-users@lists.ros.org
http://lists.ros.org/mailman/listinfo/ros-users