ROS2 包的使用

一个 ROS2 包可以看作是 ROS2 代码的容器。如果需要安装或者共享代码,那么代码应该组织在一个包中。有了软件包,就更方便的发布 ROS2 代码。 ROS2 包使用 ament 作为构建系

ROS2 基本工具的使用

Workspace Workspace 是 ROS2 的概念,表示我们在系统上进行 ROS2 开发的位置。 ROS2 的核心 Workspace 叫做 underlay ,本地的 Workspace 叫做 overlay 。在开发 ROS2 的时候,一般会有多个 Workspace 并行存在。 结合 Workspace 能够方便的

ros2接口格式

ROS2 通过消息,服务,行为接口进行通信,它们的格式通过 IDL 定义。 消息 消息定义在 ROS 包里面的 msg 目录下,以 .msg 结尾的文本文件描述。 .msg 文件包括两个部分:字段

ros2核心概念

简介 ROS(Robot Operating System) 是软件库和工具的集合,用来构建机器人应用程序。 ROS2 是一个中间层,它通过匿名的发布/订阅机制在不同的 ROS 进程中传递消息。 ROS2 图 图是 ROS2 系统的

正则表达式

基本语法

普通字符组

字符组表示在同一位置可能出现的各种字符,写法是在一对方括号[]之间列出所有的可能字符。如:

1
re.search("[0123456789]", str) != None

Python 使用上面代码判断 str 中是否包含 0-9 数字中的一个,如果有返回 MatchObject 对象,没有返回 None。如果 str=“3fas”,代码返回 MatchObject;如果 str=“lkjl”,代码返回 None。其他语言使用如下:

1
str.matches("[0123456789]");//匹配返回true,否则返回false
1
preg_match("/[0123456789]/", str);//匹配返回1,不匹配返回0
1
/[0123456789]/.test(str);

上面的代码测试 str 的某个子串是否匹配,如果测试整个 str 是否匹配,要在字符组前后加上^和$。 ^表示定位到字符串的起始位置,$表示定位到字符串的结尾位置。如:

1
2
3
4
5
re.search("[0123456789]", "213")
re.search("[0123456789]", "a3467")# 只要字符串中有一个数字,就匹配
re.search("^[0123456789]", "54352fafad")#开始处是一个整数字符
re.search("[0123456789]$", "fada898")#结尾处要是一个整数字符
re.search("^[0123456789]$", "3423432")#整个字符串都是一个整数字符才匹配

字符的排列顺序并不影响字符组的功能。

正则表达式的范围表示法可以用[x-y]表示 x 到 y 整个范围内的字符,范围表示的顺序根据 ASCII 编码。

1
re.search("[0-9]", "3") #匹配

不建议使用[0-z]统一表示数字,小写字母,大写字母。不容易理解。

可是使用\xhex 来表示一个字符,\x 是固定前缀,hex 是十六进制的数字,是字符对应的码值。