ROS的编译和安装还是稍微有点门槛的,这篇文章简单的记录一下。
ROS功能包的安装
https://github.com/TonyRobotics/RoboWare
一个合适的IDE,我看了一下是VSCode的魔改
编译的框图
ROS对CMake进行了扩展,于是便有了Catkin编译系统。
Catkin是基于CMake的编译构建系统,具有以下特点:
- Catkin沿用了包管理的传统像
find_package()
基础结构,pkg-config
- 扩展了CMake,例如
- 软件包编译后无需安装就可使用
- 自动生成
find_package()
代码,pkg-config
文件 - 解决了多个软件包构建顺序问题
一个Catkin的软件包(package)必须要包括两个文件:
- package.xml: 包括了package的描述信息
- CMakeLists.txt: 构建package所需的CMake文件
- 调用Catkin的函数/宏
- 解析
package.xml
- 找到其他依赖的catkin软件包
- 将本软件包添加到环境变量
这个是我手边的一个典型的目录
其中一个功能包的结构
catkin编译的工作流程如下:
- 首先在工作空间
catkin_ws/src/
下递归的查找其中每一个ROS的package。 - package中会有
package.xml
和CMakeLists.txt
文件,Catkin(CMake)编译系统依据CMakeLists.txt
文件,从而生成makefiles
(放在catkin_ws/build/
)。 - 然后
make
刚刚生成的makefiles
等文件,编译链接生成可执行文件(放在catkin_ws/devel
)。
也就是说,Catkin就是将cmake
与make
指令做了一个封装从而完成整个编译过程的工具。catkin有比较突出的优点,主要是:
- 操作更加简单
- 一次配置,多次使用
- 跨依赖项目编译
xml文件是一些项目的基本信息,就是版本号,描述什么的
就是这样
比对的看
一些常见的编译命令
编译流程
编译系统会递归查找
这是常见的ROS命令
因为Cmake是常客,这里也有Cmake的一个常见函数的说明
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
编译系统
+关注
关注
0文章
10浏览量
8862 -
ROS
+关注
关注
1文章
276浏览量
16967 -
CMake
+关注
关注
0文章
28浏览量
1262
发布评论请先 登录
相关推荐
ROS系统是什么?ROS系统主要特点有哪些?创龙RK3568J+Debian的ROS2系统案例
了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。 随着工业智能化的快速发展,智能机器人设备已成为工业自动化体系的佼佼者,而智能机器人设备核心—ROS系统,是
【UT4418申请】移植ubuntu的ROS版本,重新编译基于a8的智能网关到此平台
功的tiny210,但是还是不怎么样,系统本身很多问题,别说运行ROS了&项目描述:<1>学习并且编译安装ubuntu系统,其中包括
发表于 11-02 11:02
如何移植ROS程序到Android
在Android上运行ROS程序一般使用rosjava-android。但是也可以直接利用NDK编译成so文件移植到Android上。当然移植过程也并不简单。 下面是一个简单的例子。安装cmake
发表于 05-16 19:20
ROS与STM32是如何进行通信的
角速度、实际线速度STM32端ROS端之前运行的ROS项目都是在终端编译,用vim或者gedit修改代码,很不方便,函数跳转查看都没办法实现。所以今天先安装一个IDE试试ROS官网上有
发表于 08-11 07:25
RK3308-CC-PLUS板子启用ROS模块后交叉编译,menuconfig中没有ROS选项怎么解决?
RK3308-CC-PLUS板子启用ROS模块后交叉编译,menuconfig中没有ROS选项怎么解决?
发表于 03-09 06:23
怎样通过Arduino IDE直接使用ROS提供的一些特性呢
:可以把jade替换为你安装的版本:如indigo。尝试了上面的指令,没有成功,可能和ROS是编译安装的有关吧,也不是很确定。只能通过源码编译安装。在下面的指令中,代表你的catkin工作空间。注意
发表于 07-06 11:49
在FirePrime开发板上编译安装ROS jade
学习系列 -- 树莓派编译安装完整版本ROS 解决过程如下: 创建新目录,下载并编译这个包。 当checkinstall询问是否改变安装选项时,选择[2],将名字从“collada-dom
发表于 07-07 11:21
ROS在Zedboard上的移植
: Zedboard ARM处理器 : Cortex-A9 ARM操作系统: Linaro 12.11 ROS版本: indigo 移植前提 1. 开发板可以连接网络 2. 使用SSH等对开发板进行远程控制 编译方法
发表于 10-26 11:52
•1082次阅读
ROS与STM32通信
角速度、实际线速度STM32端ROS端之前运行的ROS项目都是在终端编译,用vim或者gedit修改代码,很不方便,函数跳转查看都没办法实现。所以今天先安装一个IDE试试ROS官网上有
发表于 12-24 19:00
•11次下载
如何配置ROS驱动功能包
配置ROS驱动功能包 将WHEELTEC 100N的 ROS_SDK 保存在工作空间的src文件夹下。 通过 catkin_make 进行编译。 刚装的ros环境会报错,如下: Mak
ros的基本概念是什么
基本概念: ROS是一个用于在不同进程间匿名的发布、订阅、传递信息的中间件。 ROS2系统的核心部分是ROS网络(ROS Graph)。 ROS
AI编译器技术剖析
随着人工智能技术的飞速发展,AI编译器作为一种新兴的编译技术逐渐进入人们的视野。AI编译器不仅具备传统编译器的功能,如将高级语言编写的源代码转换为机器可执行的代码,还融入了人工智能技术
评论