您的位置:首页 > 其它

ROS的初步学习(九)--创建一个简单的文本文件msg

2017-11-04 18:58 1396 查看
msg:这是一个简单的文本文件,他描述了ROS message 的变量(fields,数据)。msg文件是让不同语言编写的源码生成messages.

1 结合前面的学习,首先创建一个工作空间catkin_ws2

zhuoli@zhuoligetu:~$ mkdir -p ~/catkin_ws2/src


进入src先对空间初始化。

zhuoli@zhuoligetu:~/catkin_ws2/src$ catkin_init_workspace


可以看见src下多了一个配置文件

2 建立一个程序包

zhuoli@zhuoligetu:~/catkin_ws2/src$ catkin_create_pkg my_text


这时候在 src 文件下就多了两个文件,一个配置文件,一个清单文件。

3 在my_txxt下建立msg

zhuoli@zhuoligetu:~/catkin_ws2/src/my_text$ mkdir msg


在msg下的文本写入变量

zhuoli@zhuoligetu:~/catkin_ws2/src/my_text$ echo "uint32 string">msg/num.msg


4 接下来对.xml .txt进行配置

在.xml下找到

<build_depend>message_generation</build_depend>


在加一行(报错则删掉)

<run_depend>message_runtime</run_depend>


在构建阶段我们需要 “message_generation”, 而在运行时我们需要 “message_runtime”

1接下来对txt文件进行配置,构建程序需要用的依赖

find_package在linux下非常重要,find_package可以根据cmake内置的.cmake的脚本去找相应的库的模块,当然,内建了很多库的模块变量,调用了find_package之后,会有相应的变量“生成”有效--添加依赖库


find_package(catkin REQUIRED COMPONENTS

roscpp

rospy

std_msgs

message_generation)

5.1
**添加配置数据文本名**


add_message_files(

FILES

num.msg

)

5.2

generate_messages(
DEPENDENCIES
std_msgs
)

**5.3**
调用cmake需要用的依赖(如在调用cmake_make时会报错,删掉括号内容试试?)


catkin_package( CATKIN_DEPENDS roscpp rospy std_msgs message_runtime



**报错内容一般如下**


catkin_package() DEPENDS on the catkin package ‘message_runtime’ which must

therefore be listed as a run dependency in the package.xml

**但是这样就会使配置失去意义,**
所以在catkin_package(  name) 内添加的内容,就要提前在清单文件中添加依赖


name

name

name

**然后使用指令就可以看见你配置的变量**


$rosmsg show my_text/num

**5.4遇到的问题**

一般来讲如果报错内容如下,则.msg配置数据的格式错误


Unable to load msg [my_text/num]:

如果出现很多行报错的内容,以下面代码开头


Unable to load msg [my_text/num]: Cannot locate message [num]: unknown package [my_text] on search path

“`

是告诉你没有source路径,在工作空间下source一下即可

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  语言 工作 数据