ROS学习笔记Word格式.docx

上传人:b****3 文档编号:14809559 上传时间:2022-10-25 格式:DOCX 页数:13 大小:1.41MB
下载 相关 举报
ROS学习笔记Word格式.docx_第1页
第1页 / 共13页
ROS学习笔记Word格式.docx_第2页
第2页 / 共13页
ROS学习笔记Word格式.docx_第3页
第3页 / 共13页
ROS学习笔记Word格式.docx_第4页
第4页 / 共13页
ROS学习笔记Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

ROS学习笔记Word格式.docx

《ROS学习笔记Word格式.docx》由会员分享,可在线阅读,更多相关《ROS学习笔记Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

ROS学习笔记Word格式.docx

6、初始化rosdep

sudorosdepinit

rosdepupdate

7、设置环境,添加环境变量

source/opt/ros/kinetic/setup.bash"

>

~/.bashrc

source~/.bashrc

8、安装rosinstall工具

sudoapt-getinstallpython-rosinstall

9、启动ROS

roscore

第二节配置ROS环境

1、查看是否配置了环境

export|grepROS

若配置成功,输出为:

如果没成功,需要输入:

source/opt/ros/kinetic/setup.bash

在每次打开终端时你都需要先运行上面这条命令后才能运行ros相关的命令,为了避免这一繁琐过程,你可以事先在.bashrc文件(初学者请注意:

该文件是在当前系统用户的home目录下。

)中添加这条命令:

2、创建ROS工作空间

(1)创建一个catkin空间:

mkdir–p~/catkin_ws/src

cd~/catkin_ws/src

(2)工作空间为空,在src目录中没有任何软件包,只有一个CMakeLists.txt文件,仍可以编译这个空间:

cd~/catkin_ws

catkin_make

catkin_make命令在catkin工作空间中是一个非常方便的工具。

如果你查看一下当前目录应该能看到'

build'

和'

devel'

这两个文件夹。

在'

文件夹里面你可以看到几个setup.*sh文件。

source这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层,想了解更多请参考catkin文档。

接下来首先source一下新生成的setup.*sh文件:

sourcedevel/setup.bash

想保证工作空间已配置正确且ROS_PACKAGE_PATH环境变量包含了你的工作目录,查看命令:

echo$ROS_PACKAGE_PATH

显示结果:

第三节ROS文件系统

1、先安装ros-tutorials程序包:

sudoapt-getinstallros-kinetic-ros-tutorials

2、

Packages:

软件包,是ROS应用程序代码的组织单元,每个软件包都可以包含程序库、可执行文件、脚本或者其它手动创建的东西。

Manifest(package.xml):

清单,是对于'

软件包'

相关信息的描述,用于定义软件包相关元信息之间的依赖关系,这些信息包括版本、维护者和许可协议等。

程序代码分布在众多ROS软件包中,ROS提供了专门的命令工具简化操作。

(1)rospack,允许你获取软件包的有关信息

如返回软件包的路径信息:

rospackfindroscpp

(2)roscd,允许你直接切换工作目录到某个软件包或软件包集中。

例如:

roscdroscpp

和ROS中的其他工具一样,roscd只能切换到哪些路径已经包含到ROS_PACKAGE_PATH环境变量中的软件包,查看是否包含:

在ROS_PACKAGE_PATH中添加更多路径:

exportROS_PACKAGE_PATH"

=<

yourworkspace>

:

"

$ROS_PACKAGE_PATH"

(3)rosls,直接按软件包的名称使用ls命令,无须加入绝对路径。

roslsroscpp_tutorials

(4)TAB键补全功能

第四节创建ROS软件包

1、一个catkin程序包应该符合:

l必须包含package.xml文件,提供有关程序包的元信息。

l必须包含CMakeLists.txt文件。

l每个目录下只能有一个程序包。

2、在catkin工作空间里开发catkin程序包。

(1)切换到catkin工作空间下得src目录:

cd~/catkin_ws_src

(2)使用catkin_create_pkg命令创建一个名为‘beginner_tutorials’的程序包,这个程序包依赖于std_msgs、roscpp和rospy。

catkin_create_pkgbeginner_tutorialsstd_msgsrospyroscpp

这样,就会在~/catkin_ws/src下创建一个beginner_tutorials的文件夹,里面包含一个package.xml文件和一个CMakeLists.txt文件。

(3)使用rospackdepends1查看一级依赖包

rospackdepends1beginner_tutorials

这些依赖包随后保存在package.xml文件中。

(4)使用rospackdepends查看间接依赖包。

rospackdependsbeginner_tutorials

第五节编译ROS程序包

1、使用catkin_make编译beginner_tutorials程序包:

第六节理解ROS节点

1、概念:

lNodes:

节点,一个节点就是一个可执行文件,可以通过ROS与其他节点通信。

lMessages:

消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。

lTopics:

话题,节点可以发布消息到话题上,也可以订阅话题以接收消息。

lMaster:

节点管理器。

lrosout:

ROS中相当于stdout/stderr。

lroscore:

主机+rosout+参数服务器。

2、打开ROS

3、打开一个新终端,使用rosnode查看节点信息

rosnodelist

查看当前正在运行的节点

rosnodeinfo/rosout

查看更多关于rosout的信息。

4、rosrun使用包名直接运行一个包内的节点,而不需要直到这个包的路径。

rosrun[package_name][node_name]

打开一个新的终端,运行turtlesim包中的turtlesim_node:

rosrunturtlesimturtlesim_node

5、再查看节点信息

6、改变节点名称

rosrunturtlesimturtlesim_node__name:

=my_turtle

7、测试my_turtle节点

rosnodepingmy_turtle

第七节理解ROS话题

1、确保roscore已经在运行。

2、在新终端运行turtlesim

3、通过键盘远程控制turtle,在新终端运行:

rosrunturtlesimturtle_teleop_key

按下键盘上的方向键就可以控制turtle。

4、turtlesim节点和turtle_teleop_key节点通过话题互相通信,turtle_teleop_key在一个话题上发布按键输入消息,turtlesim订阅该话题以接收该消息。

通过rqt_graph显示当前运行的节点和话题。

(1)安装rqt程序包

sudoapt-getinstallros-kinetic-rqt-common-plugins

(2)在一个新终端运行:

rosrunrqt_graphrqt_graph

可以看到,my_turtle节点和turtle_teleop_key节点通过一个名为/turtle1/cmd_vel的话题互相通信。

5、rostopic介绍

(1)查看rostopic子命令

rostopic–h

(2)rostopicecho可显示在某个话题上发布的数据

rostopicecho/turtle1/cmd_vel

移动turtle后才会显示出发布的数据。

(3)再看一下rqt_graph

可以看到rostopicecho现在也订阅了/turtle/cmd_vel话题。

(4)rostopiclist列出所有当前订阅和发布的话题

rostpoiclist–h

rostopiclist–v显示有关发布和订阅的话题及其类型的详细信息

6、ROS消息

话题之间的通信是通过在节点之间发送ROS消息实现的,发布器(turtle_teleop_key)和订阅器(turtlesim_node)之间的通信必须使用相同类型的消息。

话题的类型是由发布在它上面的消息的类型决定的。

(1)rostopictype查看发布话题的消息类型

rostopictype/turtle1/cmd_vel

(2)rosmsgshow查看消息的详细情况

rosmsgshowgeometry_msgs/Twist

7、rostopicpub把数据发布到当前某个正在广播的话题上

rostopicpub-1/turtle1/cmd_velgeometry_msgs/Twist--'

[2.0,0.0,0.0]'

'

[0.0,0.0,1.8]'

此命令会发送一条消息给turtlesim,告诉它以2.0的线速度和1.8的角速度移动。

解释:

rostopicpub:

将消息发布到某个给定的话题

-1:

(单个破折号)这个参数项是rostopic发布一条消息后马上退出

/turtle1/cmd_vel:

消息发布到的话题名称

geometry_msgs/Twist:

所发布消息的类型

--:

(双破折号)接下来的参数部分都不是命令选项

8、rostopicpub–r发布一个稳定的命令流

rostopicpub/turtle1/cmd_velgeometry_msgs/Twist-r1--'

此时的rqt_graph中的图形为

9、rqt_plot实时显示一个发布到某个话题上的数据变化图形。

rosrunrqt_plotrqt_plot

第八节理解ROS服务和参数

1、服务是节点间通讯的另一种方式,服务允许节点发送请求并获得一个响应。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1