Skip to main content

ROS2学习笔记

1.环境搭建

1. 安装ubuntu 22.04.5

https://mirrors.aliyun.com/ubuntu-releases/22.04/

2. 利用小鱼ROS一键安装

wget http://fishros.com/install -O fishros && . fishros
  • 安装ros2 humble,更换系统源
  • 安装rosdepc
  • 安装docker
  • 安装vscode

3. 安装控制小车的依赖

本项目建图采用 slam-toolbox,导航采用 Navigation 2 ,仿真采用 Gazebo,运动控制采用 ros2-control 实现,构建之前请先安装依赖,指令如下:

  1. 安装 SLAM 和 Navigation 2
sudo apt install ros-$ROS_DISTRO-nav2-bringup ros-$ROS_DISTRO-slam-toolbox
  1. 安装仿真相关功能包
sudo apt install ros-$ROS_DISTRO-robot-state-publisher  ros-$ROS_DISTRO-joint-state-publisher ros-$ROS_DISTRO-gazebo-ros-pkgs ros-$ROS_DISTRO-ros2-controllers ros-$ROS_DISTRO-xacro
  1. 安装语音合成和图像相关功能包
sudo apt install python3-pip  -y
sudo apt install espeak-ng -y
sudo pip3 install espeakng
sudo apt install ros-$ROS_DISTRO-tf-transformations
sudo pip3 install transforms3d
  1. 安装ros2_socketcan
sudo apt install ros-humble-can-msgs
sudo apt install ros-humble-ros2-socketcan

1. ROS2 构建系统

1. colcon build

colcon build是ROS 2的构建系统之一,用于构建和管理多个ROS 2软件包。它是ROS 2中用于构建和管理软件包的主要工具之一。

ROS2使用colcon build进行构建生成的install目录说明:

在ROS 2的构建系统中,当使用colcon build进行构建时,生成的install目录结构中包含多个重要的子目录,每个目录都有其特定用途和内容。这些目录分别是share、lib和include。下面是每个目录的详细解释:

  1. share

share目录主要用于存放与特定项目相关的非二进制文件。这包括但不限于:

配置文件:XML、YAML等配置文件,这些文件通常用于参数配置或节点配置。 启动文件:.launch文件(在ROS 1中)或.launch.py文件(在ROS 2中),用于配置和启动一组节点和/或相关的ROS功能。 资源文件:可能包括图像、地图、描述文件(URDF/XACRO文件)、模型等。 CMake和package配置:包含package.xml和可能的CMake配置文件,这些文件定义了包的元数据和依赖关系。 示例和教程:一些包可能包含示例代码或示例用法的脚本。

  1. lib

lib目录包含了所有的库文件和可执行文件。它主要包括:

二进制可执行文件:编译后的可执行文件,可以直接运行,通常是ROS节点。 动态链接库:.so文件(在Linux上)、.dll文件(在Windows上),用于动态链接。 Python模块:如果包中包含Python代码,这些代码通常会被安装在此目录的某个子目录中,保持Python包的结构。 插件和其他资源:某些用于动态加载的资源,如插件描述文件,也可能位于此目录。

  1. include

include目录用于存放头文件(C/C++的.h或.hpp文件)。这些文件提供了库的接口定义,是进行C/C++编程时用于库集成的必要文件。如果你的包中包含C++库,那么这些库的公共头文件通常会被安装到这里,使得其他项目可以在编译时找到并使用这些库。 总结

这些目录结构提供了一种组织和部署ROS 2软件包的标准方式,确保了软件包可以在不同的环境中以一致的方式找到和使用资源。这种结构也有助于自动化工具(如colcon和ament)管理和定位软件包的各个部分。