RoboWare Studio入门教程(一)

部分参考:https://blog.csdn.net/qq_41450811/article/details/80305846

应该从ROS的通信机制开始说起,话题通信机制和服务通信机制,还有一种参数管理机制本次不予展开。

本次先以服务通信机制为例子。

服务(Service)是节点之间同步通信的一种方式,允许客户端(Client)节点发布请求(Request),由服务端(Server)节点处理后反馈应答(Response)。

那么如何在RoboWare中自定义服务数据呢?

1、打开RoboWare Studio软件,文件->新建工作区(注意需要在全屏状态下才能看到菜单栏),我这儿工作区命名为test_ws

RoboWare Studio入门教程(一)_第1张图片

自动生成src文件夹,和在src文件夹目录下的一个CMakeList.txt文件。

之后选则小锤子后面为Release,选择菜单栏中的ROS->构建

构建完成后会发现刚才的工作空间test_ws目录下多了一个catkin_workspace的文件

此时可以使用Ctrl键+~ 召唤出终端,输入roscore检测ROS环境,使用Ctrl+C打断

之后就是在src文件下右键,新建ROS包,命名

然后会出现一个以刚才命名的文件夹,我的是server_package,此文件夹下面此时会有一个CMakeList.txt和package.xml两个文件。其中CMakeList.txt记录了功能包的编译规则,package.xml文件描述功能包属性的信息。

一般就是要修改package.xml文件的,修改一下里面的维护者信息什么的

之后就是在刚才那个test_package上面右键选择 编辑依赖的ROS包列表 以空格为分隔输入所依赖的包

输入后你会发现在test_package下中的CMakeList.txt居然自动更新了,哈哈哈,真牛逼

调出终端,输入catkin_make来编译一下刚才我们自己新建的包

 

创建一个Srv空文件夹:
srv文件分为请求和响应两部分,由'---'分隔。下面是srv的一个样例:
int64 A
int64 B
---
int64 Sum
其中 A 和 B 是请求, 而Sum 是响应。

同样的CMakeLists.txt 自动添加:

下面通过rossrv show命令,检查ROS是否能够识该服务

重新编译我们的package:

编译完成!
所有在msg路径下的.msg文件都将转换为ROS所支持语言的源代码。
生成的C++头文件将会放置在:
~/catkin_ws/devel/include/lee_package/
Python脚本语言会在:
~/catkin_ws/devel/lib/python2.7/distpackages/lee_package/msg 目录下创建。
lisp文件会出现在:
~/catkin_ws/devel/share/commonlisp/ros/lee_package/msg/ 路径下.

 

 

 

你可能感兴趣的:(ROS)