ros入门笔记2

ROS workspace (工作空间)就是统一存放 ROS 文件的地方,比如一个项目的所有 ROS 文件最好都放在一个 workspace 中,便于统一管理、编译和调用。
   工作空间(workspace)就是一个存放工程开发相关文件的文件夹(相当于编写c时的新建工程)。Fuerte版本后ROS默认的编译系统就是Catkin,一个典型的Catkin编译系统下的工作空间包括以下四个目录空间。
        src:代码空间(Source Space),开发过程中最常用的文件夹,用来存储所有ROS功能包的源码文件。
        build:编译空间(Build Space),用来存储工作空间编译过程中产生的缓存信息和中间文件(二进制文件,基本用不到)。
        devel:开发空间(Development Space),用来放置编译生成的可执行文件(和install功能类似只不过是在开发中,install是在开发后)。
        install:安装空间(Install Space),编译成功后,可以使用make install命令将可执行文件安装到该空间中,运行该空间中的环境变量脚本,即可在终端中运行这些可执行文件。安装空间并不是必需的,很多工作空间中可能并没有该文件夹。

创建工作空间

mkdir -p ~/catkin_ws/src  //catkin_ws是工作空间的名字可以随意定义
cd ~/catkin_ws/src
catkin_init_workspace

编译工作空间

cd ~/catkin_ws/
catkin_made

设置环境变量

source devel/setup.bash

检查环境变量

echo$ROS_PACKAGE_PATH

创建代码的时候一定要创建功能包,源码一定要放在功能包里面

创建功能包指令

catkin_create_pkg<package_name>[depend1][depend2][depend3]
<package_name>是功能包的名字
[depend]是在编译时需要的依赖,哪些功能包。需要哪些库,就在后面添加哪些依赖

创建功能包

cd ~/catkin_ws/src  转到工作空间catkin_ws的src目录下面
catkin_create_pkg test_pkg roscpp rospy std_msgs  
  在工作空间的src下面创建一个名为test_pkg的功能包
  这个新的功能包下面有 include src CMkeLists.txt package.xml这几个文件
  src 是用来放置功能包代码
  include 是用来放置头文件
  CMkeLists.txt package.xml 这两个文件是功能包必须存在的两个文件,这两个文件标志着这个test_pkg这个件 夹叫做功能包。
    package.xml描述了一些和功能包相关的信息,开源许可证,功能包的依赖信息(如果在创建包时依赖信息没有完整,可以在此处手动添加依赖信息)
    CMkeLists.txt 描述功能包的编译规则,编译的设置

编译功能包

cd ~/catkin_ws 编译功能包一定要回到这个功能包所在的工作空间中去
catkin_make 编译工作空间
source ~/catkin_ws/devel/setup.bash 设置工作空间中的环境变量,只有设置之后系统才能找到工作空间
echo $ROS_PACKAGE_PATH 这是ros本身的环境变量,通过这个环境变量查找所有功能包的路径

同一个工作空间下,不允许存在同名的功能包
不同的工作空间下,允许存在同名功能包


记录使用过的命令

rogbag record -a -o cmd_record
   保存命令
  rosbag record
  -a 表示全部保存
  -o 以压缩包形式保存
  cmd_record 是保存的名字
输入以上指令后,就可以将自己的命令输入,然后ctrl+c 终止保存rosbag以后输入的命令将会保存

rosbag play cmd_record.bag

将刚才保存的命令复现出来


catkin 是目前 ROS 的编译系统,自 ROS Groovy 版本开始使用,取代了之前的 rosbuild 编译系统。


catkin软件包
这个包必须有一个符合catkin规范的package.xml文件
    这个package.xml文件提供有关该软件包的元信息
这个包必须有一个catkin版本的CMakeLists.txt文件
    如果它是个Catkin元包的话,则需要有一个CMakeList.txt文件的相关样板

存放launch文件的目录不一定非要命名为launch,事实上都不用非得放在目录中,roslaunch命令会自动查找经过的包并检测可用的启动文件。然而,这种推荐的标准做法被认为是“最佳实践”
创建roslaunch文件


rosed是rosbash套件的一部分。利用它可以直接通过软件包名编辑包中的文件,而无需键入完整路径。
 rosed [package_name] [filename]
之前打开文件需要输入路径
打开节点需要 rosrun 包名 节点名
下载打开文件需要 rosed 包名 文件名

msg文件存放在软件包的msg目录下,srv文件则存放在srv目录下。
msg(消息):msg文件就是文本文件,用于描述ROS消息的字段。它们用于为不同编程语言编写的消息生成源代码。
srv(服务):一个srv文件描述一个服务。它由两部分组成:请求(request)和响应(response)。
msg文件就是简单的文本文件,每行都有一个字段类型和字段名称。
特殊的数据类型:Header,它含有时间戳和ROS中广泛使用的坐标帧信息。在msg文件的第一行经常可以看到Header header。
srv文件和msg文件一样,只是它们包含两个部分:请求和响应。这两部分用一条---线隔开。
int64 A
int64 B
---
int64 Sum

如果roscd提示类似于roscd: No such package/stack 'beginner_tutorials'的话,你需要按照创建catkin工作空间后面的步骤使环境变量生效:
cd ~/catkin_ws
source devel/setup.bash
roscd beginner_tutorials

关键的一步:我们要确保msg文件能被转换为C++、Python和其他语言的源代码
打开package.xml, 确保它包含以下两行且没有被注释。如果没有,添加进去:
 <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
古月居ROS入门21课笔记主要涵盖了ROS的安装和基本使用方法,以下是我的总结: 1. 安装ROS:首先要安装ROS操作系统,根据教程可以选择安装适合自己系统的版本,如ROS Kinetic或ROS Melodic等。 2. 创建工作空间:使用catkin工具创建ROS工作空间,可以将所有的ROS相关文件放在这个空间中。 3. 创建包:在工作空间内创建一个ROS包,这个包是ROS项目的基本单元。可以使用catkin_create_pkg命令来创建包,并指定包的依赖项。 4. 编写节点代码:节点是ROS中最基本的执行单元,可以通过编写节点来实现各种功能。可以使用C++或Python编写节点代码。 5. 编译代码:使用catkin_make命令编译ROS代码,编译后会生成可执行文件。编译成功后,可以在工作空间中的bin目录下找到生成的可执行文件。 6. 运行节点:使用rosrun命令来运行编译好的节点。节点运行后会执行相应的功能。 7. 使用消息通信:ROS中的节点通过发布和订阅消息来进行通信。可以编写发布节点和订阅节点代码,通过话题的方式进行消息传递。 8. 使用服务通信:除了消息通信,ROS还提供了服务通信的机制。可以编写服务端和客户端代码,进行服务调用和响应。 9. 使用参数服务器:ROS提供了参数服务器来存储和共享参数。可以将特定的参数存储在参数服务器上,并在节点中进行访问和修改。 10. 使用RViz可视化:RViz是ROS环境下的可视化工具,可以将机器人模型和传感器数据等进行可视化展示,方便调试和分析。 通过学习古月居ROS入门21课,我对ROS的基本使用方法和常用功能有了初步了解。在实践中,我将进一步深入学习和应用ROS,提高自己在机器人开发和控制方面的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值