《ROS机器人编程》第七章_ROS编程基础
2020-09-21

更新!整理出《ROS机器人编程》第七章ppt讲义版,请对照书籍P148-193页学习。

1.jpg

【说明】目前为止,我们算是学习了ROS的概略,现在开始让我们学习真正的ROS编程吧。之前的内容中出现最多的词是消息、话题、服务、动作和参数。这是因为他们是ROS的核心。作为最小执行单元的节点通过消息通信在节点之间交换I/O消息,此时使用的方法是话题、服务、动作和参数。在本章中,我们通过实例来了解ROS编程。


2.jpg


3.jpg

4.jpg

【说明】对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)。其他所有单位都是这些单位的组合。


5.jpg

【说明】ROS消息通信中使用的发布者(Publisher)和订阅者(Subscriber)可以被发送和接收所代替。在ROS中,发送端称为发布者,接收端称为订阅者。本节旨在创建一个简单 的msg文件,并创建和运行发布者和订阅者节点。


6.jpg


7.jpg


8.jpg


9.jpg


10.jpg


11.jpg


12.jpg

【说明】以下命令是创建ros_tutorials_topic功能包的命令。这个功能包依赖于message_ generation、std_msgs和roscpp功能包,因此将这些用作依赖选项。第二行命令意味着将使用创建新的功能包时用到的message_generation表示将使用创建新消息的功能包 std_msgs(ROS标准消息功能包)和roscpp(在ROS中使用C/C ++的客户端程序库)必须在创建功能包之前安装。用户可以在创建功能包时指定这些相关的功能包设置,但也可以在创建功能包之后直接在package.xml中修改。


13.jpg

【说明】创建功能包时,将在~/catkin_ws/src目录中创建ros_tutorials_topic功能包目录,并在该功能包目录中创建ROS功能包的默认目录和CMakeLists.txt和package.xml文件。可以使用下面的ls命令检查它,并使用基于GUI的Nautilus(类似Windows资源管理 器)来检查功能包的内部。


14.jpg

【说明】ROS的必备配置文件package.xml是一个包含功能包信息的XML文件,其中包含用于描述功能包名称、作者、许可证和依赖包的信息。使用以下命令,利用编辑器 (gedit、vim、emacs等)打开文件,并修改它以匹配当前节点。


15.jpg


16.jpg

【说明】ROS的构建系统catkin基本上使用CMake,它在功能包目录中的CMakeLists.txt文件中描述了构建环境。该文件设置可执行文件的创建、依赖包优先构建、链接创建等。

17.jpg


18.jpg


19.jpg


20.jpg


21.jpg


22.jpg


23.jpg


24.jpg


25.jpg


26.jpg


27.jpg


28.jpg


29.jpg


30.jpg


31.jpg


32.jpg


33.jpg


34.jpg


35.jpg


36.jpg


37.jpg


38.jpg


39.jpg


40.jpg


41.jpg


42.jpg


43.jpg


44.jpg


45.jpg


46.jpg


47.jpg


48.jpg


49.jpg


50.jpg


51.jpg


52.jpg


53.jpg


54.jpg


55.jpg


56.jpg


57.jpg


58.jpg


59.jpg


60.jpg


61.jpg


62.jpg


63.jpg


64.jpg


65.jpg


66.jpg


67.jpg


68.jpg


69.jpg


70.jpg


71.jpg


72.jpg


73.jpg


74.jpg


75.jpg


76.jpg


77.jpg


78.jpg


79.jpg


80.jpg


原创声明:本篇文档为原创文档。欢迎转发转载引用,请注明出处!

喜欢本文请关注微信公众号“京天机器人”

No.1908 Building A,Optics Valley Times Square,Wuhan City,Hubei Province,China
Tel:027-87522899,027-87522877

合作与咨询

商务合作:

amy@jingtianrobots.com

渠道合作:
lxw@jingtianrobots.com

网站备案号:鄂ICP备17004685号-1 | 技术支持 | 联系我们 | 服务条款与隐私权 | 网站地图