Hey everyone,
I’m adding ros-meta to a Yocto/OpenEmbedded build of a Linux distribution for a custom Xilinx Zynq based camera board and it looks like I’m running into some runtime dependency issues when running roscore.
I’m using the experimental kinetic distribution of ros-meta at:
https://github.com/bulwahn/meta-ros/tree/kinetic-experimental
My bblayers.conf file looks as follows:
BBLAYERS ?= " \
${TOPDIR}/../poky/meta \
${TOPDIR}/../poky/meta-poky \
${TOPDIR}/../poky/meta-yocto-bsp \
${TOPDIR}/../meta-openembedded/meta-oe \
${TOPDIR}/../meta-openembedded/meta-python \
${TOPDIR}/../meta-openembedded/meta-multimedia \
${TOPDIR}/../meta-xilinx \
${TOPDIR}/../meta-ros \
${TOPDIR}/../meta-shadowbox \
"
Added the following line to by core-image.bb file:
IMAGE_INSTALL += "roslaunch"
Used the following command to create my own image.
bitbake core-image
Build completed without any errors. Created an SD card including the kernel
and file system that includes ROS.
On the booted Xilinx Zynq based system running the Linux environment I just built, I’m configuring ROS Kinetic with the
following:
export ROS_ROOT=/opt/ros/kinetic
export ROS_DISTRO=kinetic
export ROS_PACKAGE_PATH=/opt/ros/kinetic/share
export PATH=$PATH:/opt/ros/kinetic/bin
export LD_LIBRARY_PATH=/opt/ros/kinetic/lib
export PYTHONPATH=/opt/ros/kinetic/lib/python2.7/site-packages
export ROS_MASTER_URI=http://localhost:11311
export CMAKE_PREFIX_PATH=/opt/ros/kinetic
touch /opt/ros/kinetic/.catkin
I have the following problems running roscore.
root@microzed-camera:~# roscore
Traceback (most recent call last):
File "/opt/ros/kinetic/bin/roscore", line 36, in <module>
from rosmaster.master_api import NUM_WORKERS
File "/opt/ros/kinetic/lib/python2.7/site-packages/rosmaster/__init__.py", line 35, in <module>
from .main import rosmaster_main
File "/opt/ros/kinetic/lib/python2.7/site-packages/rosmaster/main.py", line 43, in <module>
import rosmaster.master
File "/opt/ros/kinetic/lib/python2.7/site-packages/rosmaster/master.py", line 47, in <module>
import rosmaster.master_api
File "/opt/ros/kinetic/lib/python2.7/site-packages/rosmaster/master_api.py", line 72, in <module>
from rosmaster.util import xmlrpcapi
File "/opt/ros/kinetic/lib/python2.7/site-packages/rosmaster/util.py", line 48, in <module>
from defusedxml.xmlrpc import monkey_patch
ImportError: No module named defusedxml.xmlrpc
root@microzed-camera:~#
From what I can find on ROS Answers, it looks like defusedxml was as a fairly recent dependency added to ROS Kinetic. I assume this dependency probably didn’t make it into the meta-ros dependencies. Any suggestions on how I go about adding it to the Yocto/OpenEmbedded build of the system?
Thanks,
Mike