Error meta-ros layer using Yocto Project

1,486 views
Skip to first unread message

Cássio Volcan

unread,
Sep 27, 2013, 1:36:33 PM9/27/13
to meta...@googlegroups.com
Hello,

I'm trying to use meta-ros layer and yocto project to my board (http://www.opencontroller.com/modules.html - with a sama5d3 processor)

Let me show you what I'am doing:

1/ Clone yocto/poky git repository

git clone git://git.yoctoproject.org/poky

2/ Checkout dylan-9.0.1 tag

cd poky

git checkout dylan-9.0.1 -b my_branch

3/ Clone meta-atmel layer

git clone http://github.com/linux4sam/meta-atmel

4/ Initialize build directory

source oe-init-build-env build-atmel

5/ Add meta-atmel layer patch to bblayer configuration file
vim conf/bblayers.conf:


# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"


BBPATH = "${TOPDIR}"
BBFILES ?= ""


BBLAYERS ?= " \
/home/cassio/projetos/my_poky/meta-atmel \
/home/cassio/projetos/my_poky/meta \
/home/cassio/projetos/my_poky/meta-yocto \
/home/cassio/projetos/my_poky/meta-yocto-bsp \
/home/cassio/projetos/my_poky/meta-ros \
"
BBLAYERS_NON_REMOVABLE ?= " \
/home/cassio/projetos/my_poky/meta \
/home/cassio/projetos/my_poky/meta-yocto \
"

5/ Edit local.conf to specify the machine, location of source archived, package type (rpm, deb or ipk)

vim conf/local.conf:

[...]

MACHINE ??= "sama5d3xek"

[...]

DL_DIR ?= "default path"

[...]

PACKAGE_CLASSES ?= "package_ipk"


6/ Build core minimal image

bitbake core-image-ros-roscore

So, this error appears:

cassio@Ubuntu12:~/projetos/my_poky/build-atmel$ bitbake core-image-ros-roscore
Loading cache: 100% |#########################################################################################################################| ETA: 00:00:00
Loaded 1240 entries from dependency cache.
Parsing recipes: 100% |#######################################################################################################################| Time: 00:00:11
Parsing of 928 .bb files complete (925 cached, 3 parsed). 1242 targets, 40 skipped, 0 masked, 0 errors.
ERROR: No recipes available for:
/home/cassio/projetos/my_poky/meta-ros/recipes-devtools/python/python-nose_1.2.1.bbappend
/home/cassio/projetos/my_poky/meta-ros/recipes-support/boost/boost_1.54.0.bbappend
ERROR: Command execution failed: Exited with 1


Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Some idea to fix that?

Thanks.

Lukas Bulwahn

unread,
Sep 30, 2013, 1:27:42 AM9/30/13
to Cássio Volcan, meta...@googlegroups.com
On 09/27/2013 07:36 PM, Cássio Volcan wrote:
Hello,

I'm trying to use meta-ros layer and yocto project to my board (http://www.opencontroller.com/modules.html - with a sama5d3 processor)

Dear Cassio,

Nice to see meta-ros on some more hardware --- tell us how you get along and if it works with your board.


6/ Build core minimal image

bitbake core-image-ros-roscore

So, this error appears:

cassio@Ubuntu12:~/projetos/my_poky/build-atmel$ bitbake core-image-ros-roscore
Loading cache: 100% |#########################################################################################################################| ETA: 00:00:00
Loaded 1240 entries from dependency cache.
Parsing recipes: 100% |#######################################################################################################################| Time: 00:00:11
Parsing of 928 .bb files complete (925 cached, 3 parsed). 1242 targets, 40 skipped, 0 masked, 0 errors.
ERROR: No recipes available for:
/home/cassio/projetos/my_poky/meta-ros/recipes-devtools/python/python-nose_1.2.1.bbappend
/home/cassio/projetos/my_poky/meta-ros/recipes-support/boost/boost_1.54.0.bbappend
ERROR: Command execution failed: Exited with 1


Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Some idea to fix that?

The first error "No recipe available for python-nose" is because you have not added the meta-oe layer.
The meta-oe layer is in the directory meta-oe in the git repository at git://git.openembedded.org/meta-openembedded/

The second error "No recipe available for boost_1.54.0.bbappend" is because poky-dylan still provides boost version 1.53, but openembedded-core is already updated to 1.54.0 (and is the version I developed against).
If you do not need the image-transport-plugins, you can simply delete meta-ros/recipes-support/boost/boost_1.54.0.bbappend and everything (but the image-transport-plugins) works fine.


Lukas

Cássio Volcan

unread,
Oct 9, 2013, 9:58:31 AM10/9/13
to meta...@googlegroups.com, Cássio Volcan
Dear Lukas, thank you veru much. 

After doing my BSP and solve some bugs, roscore is working on my board :) 

if everyone has the same problem to connect localhost to run roscore I suggest to increase the _TIMEOUT_MASTER_START from python2.7/site-packages/roslaunch/launch.py, because I get some errors and lost a lot of time to solve it.


I'm attempting to use the simple Publisher and Subscriber example from ros wiki, but I have no rosrun, rosmake and rostopic too, for example.

Another issue: have been you noticed if someone use meta-ros running slam gmapping?

Thank you again.

Regards

Cássio

Lukas Bulwahn

unread,
Oct 9, 2013, 10:59:34 AM10/9/13
to Cássio Volcan, meta...@googlegroups.com
On 10/09/2013 03:58 PM, Cássio Volcan wrote:
Dear Lukas, thank you veru much. 

After doing my BSP and solve some bugs, roscore is working on my board :) 

if everyone has the same problem to connect localhost to run roscore I suggest to increase the _TIMEOUT_MASTER_START from python2.7/site-packages/roslaunch/launch.py, because I get some errors and lost a lot of time to solve it.

Dear Cassio,

Could you give more details what kind of problem occurred (what was the error trace? what was the behavior? what was your setup?) and how did you fix that concretely.




I'm attempting to use the simple Publisher and Subscriber example from ros wiki, but I have no rosrun, rosmake and rostopic too, for example.


Another issue: have been you noticed if someone use meta-ros running slam gmapping?

Nobody is using slam_gmapping yet, but I had an initial look at it and I believe it should be quite simple to provide recipes for that. (there were no obvious showstoppers.)

You simply need a recipe for openslam_gmapping and then a recipe for gmapping in the slam_gmapping repository and you are done. We already provide a recipe for tf, nav_msgs and roscpp.

Maybe, Victor Mayoral can help you with writing a bitbake recipe---he has already some experience with that.


Lukas
 

Víctor Mayoral

unread,
Oct 9, 2013, 11:06:38 AM10/9/13
to meta...@googlegroups.com, Cássio Volcan

Cássio i've been coding recipes this summer so i'm glad to give you a hand.
Start taking a look at diving-meta-ros and come to me if you find any trouble while writting the recipes for openslam_gmapping.

Regards,

Cássio Volcan

unread,
Oct 10, 2013, 7:43:51 AM10/10/13
to meta...@googlegroups.com
Dear Lukas and Víctor


Error ocurred when I tried to run roscore. The process could not contact master,  as can be seen below:

root@at91sam9x5ek:~# roscore 
... logging to /home/root/.ros/log/412f3d34-3103-11e3-b9d9-5162d3e8cd9f/roslaunch-at91sam9x5ek-856.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
2;roscore
started roslaunch server http://at91sam9x5ek:34199/
ros_comm version 1.9.49

SUMMARY
========

PARAMETERS
 * /rosdistro
 * /rosversion

NODES

auto-starting new master
process[master]: started with pid [873]
ERROR: could not contact master [http://at91sam9x5ek:11311/]
[master] killing on exit
Traceback (most recent call last):
  File "/usr/bin/rosmaster", line 35, in <module>
    rosmaster.rosmaster_main()
  File "/usr/lib/python2.7/site-packages/rosmaster/main.py", line 73, in rosmaster_main
    configure_logging()   
  File "/usr/lib/python2.7/site-packages/rosmaster/main.py", line 57, in configure_logging
    _log_filename = rosgraph.roslogging.configure_logging('rosmaster', logging.DEBUG, filename=filename)
  File "/usr/lib/python2.7/site-packages/rosgraph/roslogging.py", line 106, in configure_logging
    logging.config.fileConfig(config_file, disable_existing_loggers=False)
  File "/usr/lib/python2.7/logging/config.py", line 78, in fileConfig
    handlers = _install_handlers(cp, formatters)
  File "/usr/lib/python2.7/logging/config.py", line 156, in _install_handlers
    h = klass(*args)
  File "/usr/lib/python2.7/site-packages/rosgraph/roslogging.py", line 146, in __init__
    from rospy.rostime import get_time, is_wallclock
  File "/usr/lib/python2.7/site-packages/rospy/__init__.py", line 49, in <module>
    from .client import spin, myargv, init_node, \
  File "/usr/lib/python2.7/site-packages/rospy/client.py", line 51, in <module>
    import roslib
  File "/usr/lib/python2.7/site-packages/roslib/__init__.py", line 54, in <module>
    import roslib.stacks
  File "/usr/lib/python2.7/site-packages/roslib/stacks.py", line 46, in <module>
    import roslib.packages
  File "/usr/lib/python2.7/site-packages/roslib/packages.py", line 47, in <module>
    from subprocess import Popen, PIPE
  File "/usr/lib/python2.7/subprocess.py", line 432, in <module>
    import pickle
  File "/usr/lib/python2.7/pickle.py", line 165, in <module>
    __all__.extend([x for x in dir() if re.match("[A-Z][A-Z0-9_]+$",x)])
  File "/usr/lib/python2.7/re.py", line 137, in match
    return _compile(pattern, flags).match(string)
  File "/usr/lib/python2.7/re.py", line 228, in _compile
    cachekey = (type(key[0]),) + key
KeyboardInterrupt 

So I fixed the error increasing  the _TIMEOUT_MASTER_START = 10.0 #seconds from python2.7/site-packages/roslaunch/launch.py to 15.0 seconds.

About the rosrun and rostopic, how can I run some executable like Publisher and Subscriber example without it? Either am I doing something wrong? I've done bitbake core-image-ros-roscore, but there is no rosrun and rostopic, for example. Have you done recipes for that on meta-ros?  

I was taking a look on Víctor's tutorials and attempt do provide a recipe from my issues, but I have no "opkg install *.ipkg" on my board. I was reading how to bitbake some image to be able to use that, but I do not have answers yet

Thank you for answers.

PS: With someone need any help to provide a BSP and kernel configurations to use meta-ros on arm processors, please let me try to help.

Regards,

2013/10/9 Víctor Mayoral <v.may...@gmail.com>



--
Cássio Volcan Pio
Computer Engineer
Control and Automation Engineering major -- FURG
Embedded Systems Developer -- GARTEN Engenharia
NAUTEC - Automation and Intelligent Robotics Group -- FURG

Víctor Mayoral

unread,
Oct 10, 2013, 8:02:53 AM10/10/13
to meta...@googlegroups.com
Dear Cássio,

rosrun is part of the rosbash suite whereas rostopic is part of the ros_comm. You can find the recipes here and here inside of the meta-ros layer source tree. Try bitbaking these recipes and deploying the package to your machine. You should have access to these utilities then.

Furthermore, you don't need rosrun to launch a simple publisher-subscriber example (e.g. chatter). You can launch it running the executable or the script if it's written in python.

I was taking a look on Víctor's tutorials and attempt do provide a recipe from my issues, but I have no "opkg install *.ipkg" on my board. I was reading how to bitbake some image to be able to use that, but I do not have answers yet

Even if your FS is not Angstrom your OE installation should package the cross-compiled recipes in way that you could deploy them to your machine. I'm not so experienced out of Angstrom so maybe Lukas or Stefan can provide some comments regarding this fact.

Lukas Bulwahn

unread,
Oct 11, 2013, 1:39:46 AM10/11/13
to Cássio Volcan, meta...@googlegroups.com
Dear Cassio,

the problem you report looks very similar to Issue 62 [1], which I reported a couple months ago.
This timeout on start up would also explain why the KeyboardInterrupt nondeterministically occurs at different code locations and sometimes occurs not at all.

I will try out your suggestion to see if it also resolves the issue that I reported on the qemu virtual machine.

Thanks for reporting the problem and the solution to it.

To your second point:

The "core-image-ros-roscore" image only provides the packages to start and run roscore.

However, if you have a look at the core-image-ros-roscore.bb file, you can extend that image simply by adding more packages, e.g., rosrun, rosbash and your own ROS packages, to IMAGE_INSTALL.

Then your image should have those packages installed as well. Please report if some of them still have missing runtime dependencies. We have not tested all of the ROS packages in isolation and might have missing some dependencies.

Lukas

[1] https://github.com/bmwcarit/meta-ros/issues/62

Cássio Volcan

unread,
Oct 25, 2013, 12:27:25 PM10/25/13
to meta...@googlegroups.com, Cássio Volcan, meta...@googlegroups.com
Hi,

I'm glad to say that the ros packages I've tried (roscpp_tutorials, ros-comm, chatter and all this communicate very well with other machines) are totally working on my (Arm) board. Thanks so much for the help until now.

So my next step is to record data from Sick LMS 2xx, 5xx and 1xx and provide a map by it.

I was taking a look at [1] and attempting to understand how I would set parameters to it, but I'm not sure about it, yet. Because I keep not able to create a new recipe with my own changes on code, like here [2] even trying to use the Víctor's Tutorials [3]. Any advice?

I was also trying to create a sicktoolbox and sicktoolbox_wrapper [4][5][6] recipes, but It is not working until now. Someone thought to create it?

Please, take a look on my sicktoolbox_git.bb (just trying to create a recipe to LMS1xx [7]):

DESCRIPTION = "Laser drivers for Hokuyo and SICK laser rangefinders."

SECTION = "devel"

LICENSE = "TODO"

LIC_FILES_CHKSUM = "file://package.xml;beginline=16;endline=16;md5=2feaf30a620f46f06a4b016624acf46f"

SRC_URI[md5sum] ="7e8b0cf12770756baff4aec8ed7958df"

DEPENDS = "roscpp roscpp-serialization sensor-msgs"


SRCREV = "${AUTOREV}"

S = "${WORKDIR}/git"

inherit catkin


And this errors appears:

cassio@cassio-Ubuntu:~/projetos/my_poky/build-atmel$ bitbake sicktoolbox
Loading cache: 100% |##############################################| ETA:  00:00:00
Loaded 1908 entries from dependency cache.
Parsing recipes: 100% |############################################| Time: 00:00:01
Parsing of 1461 .bb files complete (1457 cached, 4 parsed). 1867 targets, 45 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.21.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-12.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "at91sam9x5ek"
DISTRO            = "poky"
DISTRO_VERSION    = "1.5+snapshot-20131025"
TUNE_FEATURES     = "armv5 thumb dsp arm926ejs"
TARGET_FPU        = "soft"
meta-atmel        = "master:cf93c5213df976be11416a2857e62738175f8f04"
meta              
meta-yocto        
meta-yocto-bsp    = "master:505114c13d29799a25379f7ce720d632616d8776"
meta-ros          = "master:cc10dee5696e914273a8548f85b0c12043919cac"
meta-oe           = "(nobranch):2a463dddcf76d7fa437e96f6cf0210143e97a904"

NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: Function failed: do_install (log file is located at /home/cassio/projetos/my_poky/build-atmel/tmp/work/arm926ejste-poky-linux-gnueabi/sicktoolbox/git-r0/temp/log.do_install.9578)
ERROR: Logfile of failure stored in: /home/cassio/projetos/my_poky/build-atmel/tmp/work/arm926ejste-poky-linux-gnueabi/sicktoolbox/git-r0/temp/log.do_install.9578
Log data follows:
| DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']
| DEBUG: Executing shell function do_install
| NOTE: make -j 3 DESTDIR=/home/cassio/projetos/my_poky/build-atmel/tmp/work/arm926ejste-poky-linux-gnueabi/sicktoolbox/git-r0/image install
| make: *** No rule to make target `install'.  Stop.
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_install (log file is located at /home/cassio/projetos/my_poky/build-atmel/tmp/work/arm926ejste-poky-linux-gnueabi/sicktoolbox/git-r0/temp/log.do_install.9578)
ERROR: Task 2 (/home/cassio/projetos/my_poky/meta-ros/recipes-ros/sicktoolbox/sicktoolbox_git.bb, do_install) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1244 tasks of which 1243 didn't need to be rerun and 1 failed.
No currently running tasks (919 of 1250)

Summary: 1 task failed:
  /home/cassio/projetos/my_poky/meta-ros/recipes-ros/sicktoolbox/sicktoolbox_git.bb, do_install
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Sorry about so many question in a simple post.

Thanks again!

Lukas Bulwahn

unread,
Oct 25, 2013, 2:44:46 PM10/25/13
to Cássio Volcan, meta...@googlegroups.com
Dear Cassio,

On 10/25/2013 06:27 PM, Cássio Volcan wrote:
>
> Sorry about so many question in a simple post.
>
Please try better to "write for maximum efficiency of reading" [3] on
this mailing list. Various projects [1, 2, 3] have defined guidelines
and rules for efficient communication on project mailing lists, so try
to follow those as far as possible. We have not set up any concrete
guidelines for this mailing list, and I consider it unnecessary to do
so. Nevertheless, following the general guidelines for mailing lists is
indispensable.

When you have split the different questions to separate emails with
distinct subject lines and precise questions, I am happy to help you as
much as I can, and I am sure other readers will then join the
conversions that they are interested in.

Yours sincerely,

Lukas

[1] http://fedoraproject.org/wiki/Mailing_list_guidelines
[2] https://www.freebsd.org/doc/en/articles/mailing-list-faq/etiquette.html
[3] http://www.tux.org/lkml/

Lukas Bulwahn

unread,
Oct 25, 2013, 2:50:32 PM10/25/13
to Cássio Volcan, meta...@googlegroups.com
On 10/25/2013 08:44 PM, Lukas Bulwahn wrote:
> [...] I am sure other readers will then join the conversions that they
> are interested in.
With "conversions", I meant "conversations", of course.

Lukas

Víctor Mayoral

unread,
Oct 25, 2013, 5:30:49 PM10/25/13
to meta...@googlegroups.com, Cássio Volcan
Cassio,

It looks to me like there's something missing in your CMakeLists.txt. I miss the install(...) after this line.
Reply all
Reply to author
Forward
0 new messages