更新!整理出《ROS机器人编程》第七章ppt讲义版,请对照书籍P148-193页学习。
【说明】目前为止,我们算是学习了ROS的概略,现在开始让我们学习真正的ROS编程吧。之前的内容中出现最多的词是消息、话题、服务、动作和参数。这是因为他们是ROS的核心。作为最小执行单元的节点通过消息通信在节点之间交换I/O消息,此时使用的方法是话题、服务、动作和参数。在本章中,我们通过实例来了解ROS编程。
【说明】对ROS中所使用的消息(message),推荐使用世界上最广泛运用的标准单位 SI。为了确保这一点,REP-01031也明确了各物理量的单位。例如,长度(Length) 使用米(merter)、质量(Mass)使用千克(Kilogram)、时间(Time)使用 秒(Second)、电流(Current)使用安培(Ampere)、角度(Angle)使用弧度(Radian)、频率(Frequency)使用赫兹(Hertz)、力(Force)使用牛顿 (Newton)、功率(Power)使用瓦(Watt)、电压(Voltage)使用伏特(Volt)、 温度(Temperature)使用摄氏度(Celsius)。其他所有单位都是这些单位的组合。
【说明】ROS消息通信中使用的发布者(Publisher)和订阅者(Subscriber)可以被发送和接收所代替。在ROS中,发送端称为发布者,接收端称为订阅者。本节旨在创建一个简单 的msg文件,并创建和运行发布者和订阅者节点。
【说明】以下命令是创建ros_tutorials_topic功能包的命令。这个功能包依赖于message_ generation、std_msgs和roscpp功能包,因此将这些用作依赖选项。第二行命令意味着将使用创建新的功能包时用到的message_generation表示将使用创建新消息的功能包 std_msgs(ROS标准消息功能包)和roscpp(在ROS中使用C/C ++的客户端程序库)必须在创建功能包之前安装。用户可以在创建功能包时指定这些相关的功能包设置,但也可以在创建功能包之后直接在package.xml中修改。
【说明】创建功能包时,将在~/catkin_ws/src目录中创建ros_tutorials_topic功能包目录,并在该功能包目录中创建ROS功能包的默认目录和CMakeLists.txt和package.xml文件。可以使用下面的ls命令检查它,并使用基于GUI的Nautilus(类似Windows资源管理 器)来检查功能包的内部。
【说明】ROS的必备配置文件package.xml是一个包含功能包信息的XML文件,其中包含用于描述功能包名称、作者、许可证和依赖包的信息。使用以下命令,利用编辑器 (gedit、vim、emacs等)打开文件,并修改它以匹配当前节点。
【说明】ROS的构建系统catkin基本上使用CMake,它在功能包目录中的CMakeLists.txt文件中描述了构建环境。该文件设置可执行文件的创建、依赖包优先构建、链接创建等。
原创声明:本篇文档为原创文档。欢迎转发转载引用,请注明出处!
喜欢本文请关注微信公众号“京天机器人”
Donghu Robot Laboratory, 2nd Floor, Baogu Innovation and Entrepreneurship Center,Wuhan City,Hubei Province,China
Tel:027-87522899,027-87522877