ROS2---基础操作

工作空间(workspace)

workspace是一个存放项目开发相关文件的文件夹。例如我们要开发一个机器人,我们可以创建一个工作空间,然后存放这个机器人不同功能的包(感知(雷达,相机等),运动(底盘,云台,发射结构),控制(红外,蓝牙等))。

ros2工作空间的创建

mkdir -p ws00_helloworld/src #创建工作空间以及子级目录 src,工作空间名称可以自定义
cd ws00_helloworld #进入工作空间
colcon build #编译

上述指令执行完毕,将创建ws00_helloworld目录,且该目录下包含build、install、log、src共四个子级目录。

  • src存放我们的代码,编译后会生成一系列我们并不是很需要了解的相关文件,将其存放在build、install、log中。
  • build 编译空间,包含了编译过程中产生的各种中间文件和最终构建产物
  • install 会存放我们生成的可执行文件和库
  • log 存放日志和配置
    工作空间创建完毕后,我么可以在工作空间下的src目录中编写C++或Python程序,且两种语言的实现流程大致一致,主要包含如下步骤:
    1.创建功能包;
ros2 pkg create --build-type<build-type><package_name>
ros2 pkg create pkg01_helloworld_cpp --build-type ament_cmake --dependencies rclcpp --node-name helloworld

执行完毕,在src目录下将生成一个名为pkg01_helloworld_cpp的目录,且目录中已经默认生成了一些子级文件与文件夹。

2.编辑源文件;
3.编辑配置文件;package.xml CMakeList.txt
4.编译;

colcon build

5.执行。

. install/setup.bash
ros2 run pkg01_helloworld_cpp helloworld

ROS 2 包命名规范

  • 首字母必须小写:包名称的第一个字符必须是小写字母。
  • 只能包含小写字母、数字、下划线和连字符:
    1.允许的字符:a-z(小写字母)、0-9(数字)、_(下划线)、-(连字符)。
    2.不允许的字符:大写字母、空格、特殊字符(如 @、#、$ 等)。

ROS 2 要求消息名称必须满足以下规则:

  • 首字母必须大写:消息名称的第一个字符必须是大写字母。

  • 只能包含字母和数字:消息名称只能包含字母(A-Z 和 a-z)和数字(0-9),不能包含其他字符(如下划线 _ 或连字符 -)。

colcon构建进阶之build参数解析

构建指令

colcon build --packages-select  #仅生成选定的包(单个)
colcon build --packages-up-to #构建选定的包,包括其依赖项
colcon build --packages-above #整个工作区,然后对其中一个包进行了更改。此指令将重构此包以及(递归的)依赖于此包的所有包

环境变量的设置

source install/setup.bash

避免每次执行程序时都要重复刷新环境变量
我们可以把环境变量添加到主目录下的.bashrc文件
1.可以直接打开.bashrc进行添加

vim .bashrc
source /home/.../workspace_name/install/setup.bash 

2.echo添加

echo "source ~/.../workspace_name/install/setup.bash">>~/.bashrc

节点

  • 执行具体任务的进程
  • 独立运行的可执行文件
  • 可使用不同的编程语言
  • 可分布式运行在不同主机
  • 通过节点名称进行管理

常见报错

命名不符合规则

  rosidl_adapter.parser.InvalidResourceName: 'student' is an invalid message
  name.  It should have the pattern '^[A-Z][A-Za-z0-9]*$'

你可能感兴趣的:(ROS2,ROS2,C++)