初步了解学习ros

初步了解学习ros

1、首先我们需要了解ros中的一些概念:

node 节点 独立的可执行文件,其名称必须唯一
rosmaster 控制中心 节点的命名与注册,互相查找,建立联系

节点间的通讯方式分为话题与服务两种
topic 话题 以发布者与订阅者形式,数据通道为话题,通道中数据的数据结构定义为消息(message),消息用来描述传输话题数据里的数据类型,这种通讯方式适用于单向的数据传输
server 服务 以客户端—服务器的形式,客户端发送请求数据,服务器完成处理之后会返回应答数据,srv文件定义请求与应答文件,多用于逻辑处理。

parameter 参数 是全局共享字典,用于存放系统运行的参数,用来存放系统运行的参数,存放静态的、非二进制的配置参数。

了解这些概念之后我们就可以正式地进入ros学习了

2、创建工作空间与功能包
分为四个文件夹:src 代码空间、build 编译空间、devel开发空间、install 安装空间

首先创建工作空间,创建src文件夹,再进入src文件夹输入:

$catkin_init_workspace

将其变为ros工作空间(catkin为工作空间名称)

然后再进入工作空间的根目录输入

$catkin_make

进行编译

再设置环境变量(为了让系统找到可执行文件)

$source devel/setup.bash

检查环境变量

$echo $ROS_PACKAGE_PATH

创建完工作空间后还要创建功能包
在src文件夹中输入代码:

$catkin_create_pkg (package_name) (depend1)(depend2)(depend3)

depend 为ros中其他的功能包,不只三个
最后再编译工作空间,设置环境变量检查环境变量,工作空间创建完成

3、学习过程中的疑问及解决
①在编译一些文件的时候往往会提示找不到相关文件couldn’t find executable named xxx.xx 原因是没有得到授权,找到文件所在的目录并进入,再进行授权就可以解决

②c++文件中的int argc,char** argv
学c++的时候int main()的括号中并没有argc与argv这两个参数
arg指的是参数,argc为整数,用于统计运行程序时送给main函数命令行字串的个数
*argv[]表示字符串数组,用于存放指向字符串参数的指针数组,表示命令行参数的字符串


版权声明:本文为sinastal原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。