突然心血来潮,想在rk1808中跑ros,当前 rk1808跑的是buildroot编译的精简linux系统,也不想换debian9,就开始痛苦的过程…………
在rockchip_rk1808_defconfig文件中增加ros_kinetic.config(这个是按照官方的rk3399编译ros时一样的操作),然后就会遇到经典的问题:
error: option --single-version-externally-managed not recognized
很坑的问题,我卡在这两三天,网上说是安装setuptools,wheel什么的,都没啥用,这个问题是python-empy-3.3.3,在配置时使用setuptools进行安装,但是这个版本的setup.py文件,是使用distutils来安装的,所以要在配置文件python-empy.mk中修改安装方式:
################################################################################
#
# python-empy
#
################################################################################
PYTHON_EMPY_VERSION = 3.3.3
PYTHON_EMPY_SITE = http://www.alcyone.com/software/empy
PYTHON_EMPY_SOURCE = empy-$(PYTHON_EMPY_VERSION).tar.gz
PYTHON_EMPY_LICENSE = LGPL-3.0
PYTHON_EMPY_LICENSE_FILES = LICENSE.txt
#PYTHON_EMPY_SETUP_TYPE = setuptools
PYTHON_EMPY_SETUP_TYPE = distutils
$(eval $(host-python-package))
编译过程中,遇到tinyxml2问题:
[module] calib_xml
In file included from calibdb.cpp:26:0:
/files/tools/rk1808-tb-96aiot-sdk-codes20200605/rk1808gitgithub/buildroot/output/rockchip_rk1808/build/camera_engine_rkisp-1.0/rkisp/ia-engine/calib_xml/../include/calib_xml/calibdb.h:21:22: fatal error: tinyxml2.h: No such file or directory
#include <tinyxml2.h>
提示找不到tinyxml2.h头文件,是由于IS_NEED_COMPILE_TINYXML2为false,不编译tinyxml2组件导致,查找:camera_engine_rkisp.mk文件,
ifeq ($(BR2_PACKAGE_TINYXML2),y)
CAMERA_ENGINE_RKISP_CONF_OPTS = \
IS_NEED_COMPILE_TINYXML2=false
endif
改成:
ifeq ($(BR2_PACKAGE_TINYXML2),y)
CAMERA_ENGINE_RKISP_CONF_OPTS = \
IS_NEED_COMPILE_TINYXML2=true
endif
pyparsing问题,提示如下:
ImportError: "from catkin_pkg.package import parse_package" failed: No module named pyparsing!
Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
CMake Error at cmake/safe_execute_process.cmake:11 (message):
原因是没有安装pyparsing组件至host,解决方式是把pyparsing安装

本文记录了作者在Rockchip RK1808上尝试运行ROS的详细过程,从修改配置文件以支持ROS Kinetic,解决python-empy安装问题,到处理tinyxml2、pyparsing依赖,再到catkin安装路径和Boost库的链接问题,最后解决编译std-msgs时的错误。整个过程耗费了一周时间,涉及到了嵌入式Linux、ROS、Python、CMake等多个技术领域。

587

被折叠的 条评论
为什么被折叠?



