Hi everyone,

below is a discussion I had with Morgan Quigley about the start-up problem issue on the ros-sig-embedded mailing list.

I hope his suggestion works. If anyone has time to try it out, please report what you did and if it was successful or not here.

Cheers,

Lukas


-------- Original Message --------
Subject: Re: [ros-sig-embedded] Experience report from the meta-ros OpenEmbedded layer development
Date:   Sun, 26 Jan 2014 17:47:26 -0800
From:   Morgan Quigley <[email protected]>
Reply-To:       [email protected]
To:     [email protected]



1) meta-ros is awesome! great stuff!

2) Wow, I didn't realize that so much of the startup time was being consumed by rospack. Perhaps we could we set ROSPACK_CACHE_TIMEOUT to a large number, so that rospack basically never crawls automatically after its first crawl? I think it defaults to 60 seconds, which is pretty quick, especially for systems which are intended to be stable (i.e., not creating/installing/removing packages all the time). Perhaps some of these systems don't have a battery-backed clock, so the cache timestamps may be irrelevant. In those cases, perhaps we could use an absurdly high number for ROSPACK_CACHE_TIMEOUT so that it never crawls by itself: I think it's using atof() to parse the environment variable, so we could give it a really big number.

-mq


On Sun, Jan 26, 2014 at 9:59 AM, Lukas Bulwahn <[email protected] <mailto:[email protected]>> wrote:

   Hi everyone,

   As already mentioned in some previous posts [1, 2], we are working on an
   OpenEmbedded layer for ROS packages [3]. In short, the OpenEmbedded
   Layer
   meta-ros features a general cross-compilation tool chain for catkin
   packages, which enables you to define the cross-compilation tool
   chain for
   your ROS packages with just a few lines, and build an embedded Linux
   system
   with your ROS application by typing a one-line shell command.
   Currently, we
   are providing support for close to 200 ROS packages, and there are
   more and
   more packages every day---currently limited by the user's need and the
   current use cases and not the technical work of providing them.

   Also so far, our users' feedback confirms that working with the
   cross-compilation tool chain is practicable, lowering the learning
   curve for
   cross-compilation to a minimal amount of some basic understanding.
   So, you
   might want to give it a try---documentation is also available on the ROS
   wiki [4].

    From our experience, we have made two interesting observations,
   which I'd
   like to share with you:
      - On some slow embedded boards, rosmaster takes some time to
   start and
   roscore assumes it fails within the ten second timelimit. To
   increase the
   timelimit, you must adjust the _TIMEOUT_MASTER_START and
   _TIMEOUT_MASTER_STOP in the roslaunch.py script. More details about
   this,
   you can find in our issue tracker and on our mailing list [5, 6, 7, 8].

      - Starting the system takes so long because at start-up rospack
   searches
   through all directories in ROS_ROOT, on an small embedded device,
   this seems
   to take quite some time (e.g., more than 30 seconds). We are
   discussing in
   our issue tracker [9] to replace this directory search at start-up
   by simply
   loading some files at the startup at some defined fixed location and
   ensuring those files are there through the installation. This change to
   rospack might be helpful for small embedded devices with a small
   IO-bandwidth and if start-up time in your application matters.

   Any thoughts?


   Hope this helps others here.

   Lukas

   [1]
   https://groups.google.com/forum/#!topic/ros-sig-embedded/HTaRYN5QOd0
   <https://groups.google.com/forum/#%21topic/ros-sig-embedded/HTaRYN5QOd0>
   [2]
   http://www.ros.org/news/2013/09/first-release-of-the-openembedded-layer-meta
   -ros-version-01.html
   
<http://www.ros.org/news/2013/09/first-release-of-the-openembedded-layer-meta%0A-ros-version-01.html>
   [3] https://github.com/bmwcarit/meta-ros/
   [4] http://wiki.ros.org/hydro/Installation/OpenEmbedded
   [5] https://github.com/bmwcarit/meta-ros/issues/215
   [6] https://github.com/bmwcarit/meta-ros/issues/62
   [7] http://www.mail-archive.com/[email protected]/msg00027.html
   [8] http://www.mail-archive.com/[email protected]/msg00029.html
   [9] https://github.com/bmwcarit/meta-ros/issues/214

   --
   You received this message because you are subscribed to the Google
   Groups "ros-sig-embedded" group.
   To unsubscribe from this group and stop receiving emails from it,
   send an email to [email protected]
   <mailto:ros-sig-embedded%[email protected]>.
   To post to this group, send email to
   [email protected]
   <mailto:[email protected]>.
   Visit this group at http://groups.google.com/group/ros-sig-embedded.
   For more options, visit https://groups.google.com/groups/opt_out.


--
You received this message because you are subscribed to the Google Groups "ros-sig-embedded" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/ros-sig-embedded.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to