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.