README.md: Drop old text, provide links to [thud-draft] and [legacy]
This commit is contained in:
parent
4cf2454e9d
commit
5a1542d41a
299
README.md
299
README.md
|
@ -8,300 +8,7 @@ Bouncy Bolson) from recipes generated by
|
|||
[superflore](https://github.com/ros-infrastructure/superflore/) and might not be
|
||||
usable for a little while. Please see this
|
||||
[wiki page](https://github.com/ros/meta-ros/wiki/Superflore-OE-Recipe-Generation-Scheme)
|
||||
for details of what is being done.
|
||||
for details of what is being done. Draft versions of these changes are in the
|
||||
[`thud-draft`](https://github.com/ros/meta-ros/tree/thud-draft) branch.
|
||||
|
||||
# Contents of Previous README
|
||||
|
||||
This is a layer to provide ROS Indigo Igloo in an OpenEmbedded Linux system.
|
||||
It provides a stable cross-compilation build system for many common ROS packages.
|
||||
Currently, this layer is still under continuous development.
|
||||
|
||||
## IMPORTANT RESOURCES ##
|
||||
|
||||
* Source Code Repository: https://github.com/bmwcarit/meta-ros.git
|
||||
* Issue Tracker: https://github.com/bmwcarit/meta-ros/issues
|
||||
* Discussion Forum: http://discourse.ros.org/c/openembedded
|
||||
* Installation Guide: http://wiki.ros.org/hydro/Installation/OpenEmbedded
|
||||
* Development Guides:
|
||||
* https://github.com/bmwcarit/meta-ros/wiki/Guidelines-for-ROS-recipes
|
||||
* https://github.com/bmwcarit/meta-ros/wiki/Developer-Guidelines
|
||||
|
||||
Note: In October 2016, the mailing list at
|
||||
https://groups.google.com/forum/#!forum/meta-ros has been discontinued and
|
||||
discussion has moved to http://discourse.ros.org/c/openembedded.
|
||||
However, the mailing list is still a good resource on issues that have been
|
||||
resolved in the past.
|
||||
|
||||
|
||||
## MAINTAINERS ##
|
||||
|
||||
* Lukas Bulwahn, BMW Car IT GmbH <lukas.bulwahn@oss.bmw-carit.de>
|
||||
* Stefan Herbrechtsmeier, Bielefeld University <stefan@herbrechtsmeier.net>
|
||||
* Kristof Robot <krirobo@gmail.com>
|
||||
* Dmitry Rozhkov, Intel <dmitry.rozhkov@linux.intel.com>
|
||||
|
||||
|
||||
## CONTRIBUTORS ##
|
||||
|
||||
* Lukas Bulwahn, BMW Car IT GmbH <lukas.bulwahn@oss.bmw-carit.de>
|
||||
* Stefan Herbrechtsmeier, Bielefeld University <stefan@herbrechtsmeier.net>
|
||||
* Tobias Weigl, BMW Car IT GmbH <tobias.weigl@bmw-carit.de>
|
||||
* Kartik Mohta <kartikmohta@gmail.com>
|
||||
* Koen Kooi <koen@dominion.thruhere.net>
|
||||
* Victor Mayoral Vilches <v.mayoralv@gmail.com>
|
||||
* Sergey 'Jin' Bostandzhyan <jin@dev.digitalstrom.org>
|
||||
* Andreas Hildisch, BMW Car IT GmbH <andreas.hildisch@bmw-carit.de>
|
||||
* William <william@friedcircuits.us>
|
||||
* Kristof Robot <krirobo@gmail.com>
|
||||
* Khem Raj <raj.khem@gmail.com>
|
||||
* Esteve Fernandez <esteve@apache.org>
|
||||
* Jonas Sticha <jonas.sticha@bmw-carit.de>
|
||||
* Pascal Bach <pascal.bach@siemens.com>
|
||||
* Andreas Galauner <andreas@galauner.de>
|
||||
* Peter S. Housel <housel@acm.org>
|
||||
* Gauthier Monserand <simkim@simkim.net>
|
||||
* Timo Mueller <timo.mueller@bmw-carit.de>
|
||||
* Andreas Baak <andreas.baak@bmw-carit.de>
|
||||
* Dmitry Rozhkov, Intel <dmitry.rozhkov@linux.intel.com>
|
||||
|
||||
|
||||
## HOW TO CONTRIBUTE ##
|
||||
|
||||
We are still working on this development and are interested in other use cases.
|
||||
If you are interested in this project, please contact us via email.
|
||||
The more people are interested, the more we will be pushing this project.
|
||||
If you want to contribute, please contact us and we can discuss open issues
|
||||
and how to join forces.
|
||||
|
||||
|
||||
## DEPENDENCIES ##
|
||||
|
||||
This layer depends on:
|
||||
|
||||
**openembedded-core**
|
||||
URI: git://git.openembedded.org/openembedded-core
|
||||
subdirectory: meta
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
**meta-openembedded (meta-oe)**
|
||||
URI: git://git.openembedded.org/meta-openembedded
|
||||
subdirectory: meta-oe
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
**meta-python** (since a6d7ba92645a112af358efd94ff3aa0c74985a51@meta-openembedded)
|
||||
URI: git://git.openembedded.org/meta-openembedded
|
||||
subdirectory: meta-python
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
**meta-multimedia** (since fe44ac167a2a76531af3519f3889fce92024567b@meta-openembedded)
|
||||
URI: git://git.openembedded.org/meta-openembedded
|
||||
subdirectory: meta-multimedia
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
**meta-intel-realsense** (since 4a5ba0f20094dd3d07c0a0c1dede2ba40e9d6abf)
|
||||
URI: https://github.com/IntelRealSense/meta-intel-realsense
|
||||
branch: master
|
||||
revision: HEAD
|
||||
This layer is required only if you need to build realsense-camera driver.
|
||||
|
||||
**bitbake** > 1.20
|
||||
|
||||
|
||||
## DEPENDENCIES ON RECENT COMMITS ##
|
||||
|
||||
Here, we list which parts of this layer depend on recent commits in the
|
||||
bitbake, openembedded-core and meta-openembedded repositories. Using
|
||||
`git blame` on the lines below, you can find the commits in meta-ros that
|
||||
rely on the remote commits. In case of porting to other versions, you must
|
||||
possibly revert some of those commits.
|
||||
|
||||
ament-cmake-core depends on python3-pyparsing which is available in
|
||||
meta-python since pyro
|
||||
1a373a033f482981eb59ff8d9eb7a9437fa18cd4@meta-openembedded and native
|
||||
version since rocko
|
||||
06eb9d658e71b6a61f2589d9618ae2ca35eaaf8b@meta-openembedded
|
||||
python3-pyparsing-native depends on python3-datetime-native,
|
||||
python3-debugger-native and python3-stringold-native which were added
|
||||
in oe-core python3-native in pyro:
|
||||
462ccb35a5de32b52ddb733d1868df6ac5426f20@openembedded-core and
|
||||
800753069f667cd1664d70b3779150c467e3b3fe@openembedded-core simple
|
||||
bbappend as shown in:
|
||||
https://github.com/bmwcarit/meta-ros/pull/607#pullrequestreview-143981126
|
||||
is enough to resolve this if you're using old pyro unsupported
|
||||
release.
|
||||
|
||||
ros2topic (and few more recipes when ROS_USE_PYTHON3 is set to yes)
|
||||
depends on python3-pyyaml which was added in
|
||||
1161ab8f8dda272eb5d09917446cc5b971be1335@meta-openembedded.
|
||||
|
||||
cv-bridge and dependent recipes, e.g., the image-transport recipes, depend on
|
||||
7568bfdd114597956a1da68746f207ec7f93a48d@openembedded-core.
|
||||
For native python-numpy support, these recipes also depend on
|
||||
c13c5f40160d289bb62538a16900fed30621cb22@meta-openembedded or on
|
||||
9bf355cceaec6ebacdcbcc35f9713ff73e1c85da@openembedded-core.
|
||||
|
||||
Some recipes that need the Eigen library, e.g., the pcl-ros recipe, depend on
|
||||
424e3c1b930c0103c2cedfd4df1671e84a5256d5@meta-openembedded.
|
||||
|
||||
Using wildcards in bbappend versions part in name depends on
|
||||
31bc9af9cd56e7b318924869970e850993fafc5f@bitbake and
|
||||
991cbeedbde8bd25ce08c669b1bfac8b99e33149@bitbake.
|
||||
|
||||
octomap-ros and collada-urdf depend on
|
||||
43073569cb67d98c11aa71211d77b566b64f9145@openembedded-core and
|
||||
783fb88f476c94d5d4f4b954f7053464d9a6dff5@openembedded-core.
|
||||
|
||||
urdfdom-py depends on the meta-python layer since
|
||||
a6d7ba92645a112af358efd94ff3aa0c74985a51@meta-openembedded.
|
||||
|
||||
Since 3edf08b38b0af93cef0933b061349264dc86d54c@openembedded-core,
|
||||
recipes relying on opencv need to activate the DISTRO\_FEATURE
|
||||
opengl.
|
||||
|
||||
rosbridge-library depends on python-six, which is provided in meta-python
|
||||
since a36869c700bed940f7f0aa4b9703ae630dc84eac@meta-openembedded.
|
||||
|
||||
## INSTALLATION ##
|
||||
|
||||
The repository contains a layer for ROS that builds on top of the
|
||||
OpenEmbedded Core layer and the meta-oe layer.
|
||||
|
||||
We try our best to keep up with the development of the current HEAD
|
||||
of the layers mentioned above. If you notice any problems with the
|
||||
current HEAD, please report this in our issue tracker.
|
||||
|
||||
You can use this layer with earlier versions of the layers mentioned above
|
||||
and their release branches, dora and daisy, with a few minor adjustments.
|
||||
The section "dependencies on recent commits" in this file provides a few
|
||||
pointers to adjust this layer for other versions.
|
||||
|
||||
|
||||
## USAGE ##
|
||||
|
||||
Initialize the build environment:
|
||||
|
||||
source oe-init-build-env
|
||||
|
||||
Add the required layers (see **DEPENDENCIES**) by modifying ``./conf/bblayers.conf`` (adjust ``/home/me/devel`` as necessary):
|
||||
|
||||
BBLAYERS ?= " \
|
||||
/home/me/devel/openembedded-core/meta \
|
||||
/home/me/devel/meta-openembedded/meta-oe \
|
||||
/home/me/devel/meta-openembedded/meta-python \
|
||||
/home/me/devel/meta-openembedded/meta-multimedia \
|
||||
/home/me/devel/meta-ros \
|
||||
"
|
||||
|
||||
By default meta-ros uses python2 in all its recipes. If you want ROS packages
|
||||
to use python3 then add the following line in your `./conf/local.conf` file:
|
||||
|
||||
ROS_USE_PYTHON3 = "yes"
|
||||
|
||||
Compile package:
|
||||
|
||||
bitbake <package-name>
|
||||
|
||||
The recipe core-image-ros-roscore provides a minimal Linux system that runs
|
||||
roscore.
|
||||
|
||||
You can compile the minimal Linux system with
|
||||
|
||||
bitbake core-image-ros-roscore
|
||||
|
||||
Then for example, you start this system in the qemu virtual machine with
|
||||
|
||||
runqemu <MACHINE> core-image-ros-roscore
|
||||
|
||||
On the Linux system, ensure that the own host's name in resolved by adding
|
||||
|
||||
127.0.0.1 <HOSTNAME>.localdomain <HOSTNAME>
|
||||
|
||||
to the /etc/hosts file, and set up the environment with
|
||||
|
||||
export ROS_ROOT=/opt/ros
|
||||
export ROS_DISTRO=indigo
|
||||
export ROS_PACKAGE_PATH=/opt/ros/indigo/share
|
||||
export PATH=$PATH:/opt/ros/indigo/bin
|
||||
export LD_LIBRARY_PATH=/opt/ros/indigo/lib
|
||||
export PYTHONPATH=/opt/ros/indigo/lib/python2.7/site-packages
|
||||
export ROS_MASTER_URI=http://localhost:11311
|
||||
export CMAKE_PREFIX_PATH=/opt/ros/indigo
|
||||
touch /opt/ros/indigo/.catkin
|
||||
|
||||
Finally, you can start roscore with
|
||||
|
||||
roscore
|
||||
|
||||
If you want to use the roswtf utility for diagnostics and experience an
|
||||
exception like
|
||||
|
||||
rospkg.os_detect.OsNotDetected: Could not detect OS, tried ['windows', 'ubuntu', 'slackware', 'rhel', 'qnx', 'osx', 'opensuse', 'opensuse', 'mint', 'linaro', 'gentoo', 'funtoo', 'freebsd', 'fedora', 'elementary', 'debian', 'cygwin', 'centos', 'arch']
|
||||
|
||||
then you need to set `ROS_OS_OVERRIDE` to one of the listed OS names, e.g.
|
||||
|
||||
export ROS_OS_OVERRIDE=ubuntu
|
||||
|
||||
And since Yocto-based distributions are not supported by the `rospkg`
|
||||
library you have to interpret roswtf's output by translating Ubuntu
|
||||
package names manually to their corresponding package/recipe names that
|
||||
were chosen in the meta-ros layer.
|
||||
|
||||
|
||||
## CROSS-COMPILING ALL ROS PACKAGES IN meta-ros
|
||||
|
||||
The meta-ros layers only includes a subset of the officially released ROS
|
||||
packages, available from packages.ros.org. The here provided ROS packages
|
||||
are mainly driven by the current users' needs.
|
||||
|
||||
For ROS packages that depend on cv-bridge, the commercial license flag
|
||||
must be whitelisted, as cv-bridge depends on opencv, and opencv by
|
||||
default depends on libav that has special terms and conditions when used
|
||||
commercially.
|
||||
This can be done by adding to the local.conf the line:
|
||||
|
||||
LICENSE_FLAGS_WHITELIST = "commercial"
|
||||
|
||||
Alternatively, the dependency from opencv on libav can be explicit excluded
|
||||
by modifying the PACKAGECONFIG setting.
|
||||
|
||||
|
||||
## LICENSE ##
|
||||
|
||||
All metadata is MIT licensed unless otherwise stated. Source code included
|
||||
in tree for individual recipes is under the LICENSE stated in each recipe
|
||||
(.bb file) unless otherwise stated.
|
||||
The descriptions in the recipes of ROS packages have been extracted from
|
||||
the ROS wiki (http://www.ros.org/wiki/) and are licensed under
|
||||
Creative Commons Attribution 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
||||
unless otherwise noted.
|
||||
|
||||
This README document is Copyright (C) 2012 BMW Car IT GmbH.
|
||||
|
||||
|
||||
## REDISTRIBUTIONS ##
|
||||
|
||||
The log4cxx recipe originated from the recipe in the OpenEmbedded (Classic) Development
|
||||
(cf. http://cgit.openembedded.org/openembedded/tree/recipes/log4cxx)
|
||||
licensed with the MIT License.
|
||||
|
||||
The yaml-cpp recipe originated from the recipe in Kartik Mohta's OpenEmbedded layer
|
||||
(cf. https://github.com/kartikmohta/meta-km/blob/master/recipes-devtools/yaml-cpp/yaml-cpp_0.3.0.bb)
|
||||
licensed with the MIT License.
|
||||
|
||||
The python-ecdsa recipe originated from the recipe in the OpenStack Yocto layer
|
||||
(cf. http://git.yoctoproject.org/clean/cgit.cgi/meta-cloud-services/tree/meta-openstack/recipes-devtools/python/python-ecdsa_0.13.bb?id=38973e8bc393a4ca36090c58c8b6eb6d093ea69a)
|
||||
licensed with the MIT License.
|
||||
|
||||
The python-pbr recipe originated from the recipe in the meta-python layer
|
||||
(cf. http://git.openembedded.org/meta-openembedded/tree/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb?id=b3eb3c647dc86306d9346bea621fb4b6994ec461)
|
||||
licensed with the MIT License.
|
||||
|
||||
The core-image-ros-* recipes originated from the core-image-minimal recipe in OpenEmbedded Core
|
||||
(cf. http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/images/core-image-minimal.bb)
|
||||
licensed with the MIT License.
|
||||
|
||||
The original or modified files are redistributed here under the same MIT License.
|
||||
The original implementation has been retained in the [`legacy`](https://github.com/ros/meta-ros/tree/legacy) branch.
|
||||
|
|
Loading…
Reference in New Issue