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 实现,构建之前请先安装依赖,指令如下:
- 安装 SLAM 和 Navigation 2
sudo apt install ros-$ROS_DISTRO-nav2-bringup ros-$ROS_DISTRO-slam-toolbox
- 安装仿真相关功能包
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
- 安装语音合成和图像相关功能包
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
- 安装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。下面是每个目录的详细解释:
- share
share目录主要用于存放与特定项目相关的非二进制文件。这包括但不限于:
配置文件:XML、YAML等配置文件,这些文件通常用于参数配置或节点配置。 启动文件:.launch文件(在ROS 1中)或.launch.py文件(在ROS 2中),用于配置和启动一组节点和/或相关的ROS功能。 资源文件:可能包括图像、地图、描述文件(URDF/XACRO文件)、模型等。 CMake和package配置:包含package.xml和可能的CMake配置文件,这些文件定义了包的元数据和依赖关系。 示例和教程:一些包可能包含示例代码或示例用法的脚本。
- lib
lib目录包含了所有的库文件和可执行文件。它主要包括:
二进制可执行文件:编译后的可执行文件,可以直接运行,通常是ROS节点。 动态链接库:.so文件(在Linux上)、.dll文件(在Windows上),用于动态链接。 Python模块:如果包中包含Python代码,这些代码通常会被安装在此目录的某个子目录中,保持Python包的结构。 插件和其他资源:某些用于动态加载的资源,如插件描述文件,也可能位于此目录。
- include
include目录用于存放头文件(C/C++的.h或.hpp文件)。这些文件提供了库的接口定义,是进行C/C++编程时用于库集成的必要文件。如果你的包中包含C++库,那么这些库的公共头文件通常会被安装到这里,使得其他项目可以在编译时找到并使用这些库。 总结
这些目录结构提供了一种组织和部署ROS 2软件包的标准方式,确保了软件包可以在不同的环境中以一致的方式找到和使用资源。这种结构也有助于自动化工具(如colcon和ament)管理和定位软件包的各个部分。