比赛记录第一周

ros初步学习

1.学习文件系统工具的使用

1.0Tab补全

总是输入完整的软件包名称感觉比较繁琐,可以使用ROS工具的TAB补全的功能。

试着开始输入:

$ roscd roscpp_tut<<<按TAB键>>>

当按TAB键后,命令行应该会自动补充剩余部分:

$ roscd roscpp_tutorials/

现在试着输入:

$ roscd tur<<<按TAB键>>>

当按TAB键后,命令应该会尽可能地自动补充完整:

$ roscd turtle

然而,在这种情况下有许多软件包都以turtle开头。当再次按TAB键后会列出所有以turtle开头的ROS软件包:

  • turtle_actionlib/  turtlesim/         turtle_tf/

这时在命令行中仍然只输入了:

$ roscd turtle

现在在turtle后面输入s然后按TAB键:

$ roscd turtles<<<按TAB键>>>

因为只有一个软件包的名称以turtles开头,所以你应该会看到:

$ roscd turtlesim/

如果要查看当前安装的所有软件包的列表,你也可以利用TAB补全:

$ rosls <<<双击TAB键>>>

1.1使用rospack

rospack允许你获取软件包的有关信息。

用法:

$ rospack find [package_name]

比如:

$ rospack find roscpp

将会输出:

  • YOUR_INSTALL_PATH/share/roscpp

1.2使用roscd

roscdrosbash命令集的一部分,它允许直接切换目录(cd)到某个软件包或者软件包集当中。

用法:

$ roscd [locationname[/subdir]]

示例:

$ roscd roscpp

使用Unix命令pwd输出工作目录:

$ pwd

会看到:

  • YOUR_INSTALL_PATH/share/roscpp

可以看到YOUR_INSTALL_PATH/share/roscpp和之前使用rospack find输出的路径是一样的。

注意,就像ROS中的其它工具一样,roscd只能切换到那些路径已经包含在ROS_PACKAGE_PATH环境变量中的软件包。要查看 ROS_PACKAGE_PATH中包含的路径,可以输入:

$ echo $ROS_PACKAGE_PATH

ROS_PACKAGE_PATH环境变量应该包含那些保存有ROS软件包的路径,并且每个路径之间用冒号(:)分隔开来。一个典型的ROS_PACKAGE_PATH环境变量如下:

  • /opt/ros/<distro>/base/install/share

跟其他环境变量路径类似,你可以在ROS_PACKAGE_PATH中添加更多的目录,每条路径使用冒号(:)分隔。

1.3子目录

roscd也可以切换到一个软件包或软件包集的子目录中。

执行:

$ roscd roscpp/cmake
$ pwd

应该会看到:

YOUR_INSTALL_PATH/share/roscpp/cmake

1.4roscd log

输入roscd log进入存储ROS日志文件的目录。

rosls 是rosbash命令集的一部分,它允许直接按软件包的名称执行 ls 命令(而不必输入绝对路径)。

用法:

$ rosls [locationname[/subdir]]

示例:

$ rosls roscpp_tutorials

应输出:

cmake launch package.xml  srv

2.了解Catkin软件包

2.0package.xml文件:

这是一个包含软件包元信息的XML文件,提供关于软件包的描述、维护者信息、许可证信息以及依赖关系等。它必须符合Catkin规范。

2.1CMakeLists.txt文件:

这是一个用于构建软件包的CMake配置文件,它描述了如何编译、链接和安装软件包。Catkin软件包需要一个Catkin版本的CMakeLists.txt文件。

2.2目录结构:

每个Catkin软件包都应该有自己的目录,并且在同一个目录下不能有嵌套的或者多个软件包存在。通常,一个Catkin软件包的目录结构包括源代码、资源文件等。

在Catkin工作空间中,这些软件包通常会被组织在一个称为"src"的源文件空间目录中,并由一个顶级CMakeLists.txt文件来管理整个工作空间的构建过程。

要创建一个Catkin软件包,可以使用catkin_create_pkg命令,并指定软件包的名称和它的依赖项。然后,在Catkin工作空间中构建软件包,并确保配置文件已经生效。

总的来说,一个Catkin软件包由描述元信息的package.xml文件、构建配置的CMakeLists.txt文件和合适的目录结构组成。

3.了解如何构建Catkin软件包

要构建一个Catkin软件包,首先确保安装了该软件包的所有系统依赖项。然后,使用catkin_make命令来构建软件包。

  1. 进入Catkin工作空间的根目录:
  $ cd ~/catkin_ws

     2.使用source命令激活ROS环境(如果尚未设置):

  $ source /opt/ros/<distro>/setup.bash

     3.运行catkin_make命令:

  $ catkin_make

这将会在Catkin工作空间中构建src目录下的所有Catkin软件包。在构建过程中,会看到一系列的CMake和make命令的输出信息。

在构建完成后,你可以在工作空间的build目录中找到构建过程的输出,而在devel目录中可以找到可执行文件和库文件。

总的来说,使用catkin_make命令可以方便地构建Catkin软件包,并生成构建所需的目录结构和文件。

4.理解ros节点

节点实际上只是ROS软件包中的一个可执行文件。ROS节点使用ROS客户端库与其他节点通信。节点可以发布或订阅话题,也可以提供或使用服务

4.1roscore

roscore是在运行所有ROS程序前首先要运行的命令。

4.2rosnode

打开一个终端,可以使用rosnode看看roscore运行时干了些什么( 记得要保持以前的终端开着,比如打开一个新的标签页,或者最小化之前的窗口)。

4.3rosrun

rosrun可以让你用包名直接运行软件包内的节点(而不需要知道包的路径)。

乌龟移动模型:

$ rosrun turtlesim turtlesim_node
通过键盘控制乌龟移动:
$ rosrun turtlesim turtle_teleop_key

5.ROS话题

turtlesim_node节点和turtle_teleop_key节点之间是通过一个ROS话题来相互通信的。turtle_teleop_key在话题上发布键盘按下的消息,turtlesim则订阅该话题以接收消息。

5.1rostopic

rostopic命令工具能获取ROS话题的信息。

5.2rostopic echo

rostopic echo可以显示在某个话题上发布的数据。

5.3rostopic list

rostopic list能够列出当前已被订阅和发布的所有话题。

5.4rostopic type

rostopic type命令用来查看所发布话题的消息类型。

5.5rostopic pub

rostopic pub可以把数据发布到当前某个正在广播的话题上。(可以控制乌龟以某种方式进行运动)

用法:

rostopic pub [topic] [msg_type] [args]

5.6rostopic hz

rostopic hz报告数据发布的速率。

5.7rqt_plot

rqt_plot命令可以在滚动时间图上显示发布到某个话题上的数据。这里我们将使用rqt_plot命令来绘制正被发布到/turtle1/pose话题上的数据。

6.理解ROS服务和参数

ROS服务:

服务(Services)是节点之间通讯的另一种方式。服务允许节点发送一个请求(request)并获得一个响应(response)

6.1rosservice list

6.2rosservice type

6.3rosservice call

6.4rosparam list

6.5rosparam set和rosparam get

6.6rosparam dump和rosparam load

7.本周总结以及下周计划

7.1本周总结

本周初步了解ros的执行逻辑和原理,学习到了一些ros基本操作,了解如何使用ros创建一个软件包。

7.2下周计划

1. 搭建好地图,详细了解无人机上的已有代码,并在无人机上执行尝试。

2.继续学习ros相关操作,以便日后可以对ros代码进行调试与修改。

3.完成无人车省赛部分题目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值