我正在尝试让我自己的 ROS 包在 Gumstix Overo 上工作。该项目的最终目标是从 Caspa(相机)获取图像并使用 ROS 进行流式传输。为此,我在 Yocto 项目中取得了最大的成功:Pocky,它使用了 BitBake 交叉编译工具链。为此,我按照此 GitHub 存储库中 README.md 的说明进行操作:https ://github.com/gumstix/Gumstix-YoctoProject-Repo
仅供参考,Gumstix 官方网站上的实际刷写和安装说明更清楚。
我使用以下命令成功编译了包含所有 ROS 元数据和附加内容的 BitBake 项目:
$ bitbake gumstix-console-image
(需要相当长的时间和大量的磁盘空间),然后是闪烁和安装。
这是我试图编译的包:https ://github.com/elikos/groundStationPublic我试图保持文件夹尽可能简单以限制潜在的路径问题,所以一切都在基本目录中......(非常丑陋,我知道)
这是我的 CMakelist.txt:
cmake_minimum_required(VERSION 2.8.3)
project(groundStationPublic)
## Find catkin and any catkin packages
find_package(catkin REQUIRED COMPONENTS cv_bridge image_transport roscpp rospy std_msgs genmsg)
find_package(OpenCV REQUIRED)
## Declare ROS messages and services
#add_message_files(FILES Num.msg)
#add_service_files(FILES AddTwoInts.srv)
## Generate added messages and services
#generate_messages(DEPENDENCIES std_msgs)
## Declare a catkin package
catkin_package()
include_directories(include ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
add_executable(talker talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
#add_dependencies(talker beginner_tutorials_generate_messages_cpp)
add_executable(listener listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
#add_dependencies(listener beginner_tutorials_generate_messages_cpp)
add_executable(cornerDetection main.cpp ConerDetection.cpp LineDetection.cpp ImagePublisher.cpp)
target_link_libraries(cornerDetection ${catkin_LIBRARIES} ${OpenCV_LIBRARIES})
add_executable(bonPublisher bonPublisher.cpp)
target_link_libraries(bonPublisher ${catkin_LIBRARIES} ${OpenCV_LIBRARIES})
这是我的 BitBake 包装食谱:
DESCRIPTION = "Elikos groundstation code."
SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc494f5f793a6690ba5"
DEPENDS = "roscpp rospy catkin std-msgs"
RDEPENDS_${PN} = "roscpp rospy std-msgs"
SRC_URI = "git://github.com/elikos/groundStationPublic.git"
SRCREV = "${AUTOREV}"
PV = "1.0.0+gitr${SRCPV}"
S = "${WORKDIR}/git"
inherit catkin
ROS_SPN = "groundStationPublic"
我把它定位在~/yocto/poky/meta-ros/recipes-ros/groundStationPublic
如果我执行命令bitbake groundStationPublic
,一切都编译得很好。没有错误。(您可能会从 x264_git 收到错误,但正确的 sourcerev 是:SRCREV = "ffc3ad4945da69f3caa2b40e4eed715a9a8d9526")
最后,我的问题是:
- 我的包裹在图片中的什么位置?
- 它
/usr/share/
不像我期望的那样......
- 它
- 如果 rosrun 找不到它,我该如何运行我的包?(可能是因为它根本不存在)
- 我希望它会像
rosrun groundStationPublic talker
- 我希望它会像