2

SLAM从入门到精通(ROS应用开发)

 8 months ago
source link: https://blog.csdn.net/feixiaoxing/article/details/133177655
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们陆陆续续学习了关于ros的一些知识点,比如如何创建包、如何进行消息访问、如何注册服务、如何访问参数等等。那么对于我们使用者来说,应该如何进行ros开发呢?其实就是把之前的功能整合起来,那就是一个基本的ros应用了。

3c4957b082fe4c8e948a5cabeca693c9.png

1、创建头文件book_class.h



newCodeMoreWhite.png

        头文件一般是为了其他模块方便调用而创建的。如果应用比较简单,不创建头文件也是可以的。

2、创建book_class.cpp文件



newCodeMoreWhite.png

        整个应用类名叫RosBasics。初始化的部分主要是构造函数RosBasics(),里面有四个基本动作,分别是initPublish、initServer、initSubscribe、paramTest。除了paramTest是为了验证参数设置的,其他的函数都是为了发布某种信息,或者是订阅某种消息。除了这些函数之外,还有两个函数比较重要,分别是serverCallback和msgCallback,前者是服务响应的时候被调用,后者是消息订阅的时候被响应。

3、添加main函数

4、添加编译脚本

        添加了编译脚本之后,就可以使用catkin_make命令去处理了。

        测试之前首先启动roscore、初始化./devel/setup.sh环境。接着就是启动book_class应用,即,

        针对这个程序,测试一般有三个。第一,通过rosparam增加Age参数,重启book_class,查看param是否发生改变,

        第二,利用rosservice调用pwdcheck,判断是否有对应打印,

        第三,用rostopic发布Topic1消息,查看是否有对应的打印,

6、关于launch文件的小技巧

        经过之前的学习我们知道,如果node节点比较多,那么一个一个起来很麻烦。这个时候,我们就可以通过写一个launch文件,来解决这个问题。如下面脚本所示,有这么一个beginner.launch这个文件,

        这个时候,就可以输入roslaunch beginner.launch文件,就可以直接验证了。如果它发现roscore没有启动,也会帮助我们先把roscore启动起来的。当然,如果launch文件时保存在package下面,那么启动的时候,带上package名字就好了,

rosrun beginner_tutorials beginner.launch

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK