ROS编程基础(一):创建工作空间、功能包、消息文件、服务文件

使用版本:Ubuntu 16.04 ROS Kinetic(已安装)

观前提示,本文主要罗列引用文章,顺便充当自己的参考备份
毕竟这些太基础了,教程还是很多很详细的,照着教程步骤来就好了

安装小乌龟(即ROS Kinetic)教程,如有需要请参考:(假装这里有个链接)

创建工作空间和功能包

参考: ROS学习–第3篇:ROS基础—创建工作空间

工作空间可以简单理解为工程目录
1.通过mkdir创建一个工作空间文件夹
2.再在工作空间里创建一个src文件夹,用于存放代码文件
3.创建后进入src文件夹,执行工作空间初始化
4.最后返回工作空间文件夹,利用catkin_make指令,执行工程项目编译
————————————
编译成功后会生成build、devel目录

创建工作空间效果:
输入该代码正确返回以下信息即代表工作变量配置正确

 echo $ROS_PACKAGE_PATH

/home/用户名/工作空间名/src:/opt/ros/Kinetic(ROS版本)/share

在这里插入图片描述

创建功能包
1.在src文件夹,利用catkin_create_pkg指令创建功能包
2.返回工程目录,重新catkin_make编译
3.添加环境变量,使系统找到工作空间
————————————
成功后能看到 绿色加号和processing catkin package:‘新加的功能包名’

创建并编译功能包效果:

在这里插入图片描述
在这里插入图片描述

添加环境变量:

source devel/setup.bash   //添加环境变量
echo $ROS_PACKAGE_PATH   //检查环境变量,不允许同名功能包在同一个目录下。

创建消息文件和服务文件

参考:ROS教程(十):创建ROS消息和ROS服务

消息文件

1.创建消息目录和消息文件

—— 创建消息目录
在自己创建的功能包下新建msg文件夹
—— 创建消息文件
1.在msg文件下新建msg1.msg(后缀名为msg的文件)
2.在msg1.msg文件中定义消息的字段和类型
————————————
以上2个步骤可直接右键新建,也可使用终端命令执行

命令行新建:

 mkdir ~/catkin_ws/src/功能包名/msg
gedit ~/catkin_ws/src/功能包名/msg/msg1.msg

catkin_ws是ROS工作空间的名称,src是存储包源代码的目录,msg是用于存储消息定义文件的目录

定义消息字段和类型:(记得点保存)
在这里插入图片描述

2.配置package.xml 与 CMakelists.txt

—— 配置package.xml
告诉ROS该包需要使用消息生成器和消息运行时库
—— 配置CMakelists.txt
告诉ROS在构建过程中使用消息生成器,并将自定义消息类型添加到该包的构建中
————————————
说实话我自己也不懂

在功能包内的package.xml 创建以下语句:

<build_depend>message_generation</build_depend> 
<exec_depend>message_runtime</exec_depend>

在构建的时候需要"message_generation",在运行的时候需要"message_runtime"
这两行的作用是确认msg以及后面的srv文件能转成C++或python源码或其他语言
效果如图:在这里插入图片描述

在功能包内的CMakelists.txt 创建以下语句:(建议ctrl+f搜索)

find_package(catkin REQUIRED COMPONENTS 
roscpp 
rospy 
std_msgs 
message_generation
)
add_message_files( 
FILES 
msg1.msg 
) 
generate_messages( 
DEPENDENCIES 
std_msgs
)
catkin_package( 
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime 
)

效果图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.验证效果

返回catkin_ws 工作空间重新编译
输入命令检查终端输出内容

依次输入以下命令进行编译

cd ~/catkin_ws
catkin_make

检查终端输出内容

rosmsg show 功能包名/msg1

在这里插入图片描述

服务文件

1.创建服务目录和服务文件

—— 创建消息目录
在自己创建的功能包下新建srv文件夹
—— 创建消息文件
1.在srv文件下新建srv1.srv(后缀名为srv的文件)
2.在srv1.srv文件中定义服务的字段和类型
————————————
和msg文件类似

命令行新建:

mkdir ~/catkin_ws/src/功能包名/srv
gedit ~/catkin_ws/src/功能包名/srv/srv1.srv

在这里插入图片描述

float32 h
float32 w
---
float32 area
2.配置 CMakelists.txt
add_service_files(
  FILES
  srv1.srv
)

在这里插入图片描述

3.确保已经在新建msg时完成(此处无需操作,按理来说已经做了)

修改package.xml:添加如下代码,注意添加的位置,放在之前。(上一步自定义msg时已完成)

<build_depend>message_generation</build_depend> 
<exec_depend>message_runtime</exec_depend>

修改CMakeLists.txt:
在find_package中添加message_generation(已完成)

find_package(catkin REQUIRED COMPONENTS 
roscpp 
rospy 
std_msgs 
message_generation
)

在catkin_package中添加CATKIN_DEPENDS message_runtime(已完成)

catkin_package( 
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime 
)
4.验证效果

返回catkin_ws 工作空间重新编译
输入命令检查终端输出内容

依次输入以下命令进行编译

cd ~/catkin_ws
catkin_make

检查终端输出内容

rossrv show 功能包名/srv1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值