ros2 基础

ros2 环境搭建

# 安装 Ubuntu/Debian 系统中用于管理软件源(PPA、仓库等)的工具包.
sudo apt install software-properties-common
# 在 Ubuntu 系统中启用 “universe” 软件源,以安装由社区维护的大量软件包.
sudo add-apt-repository universe

sudo apt update && sudo apt install curl -y

# 从 GitHub 下载 ROS(Robot Operating System)的官方仓库密钥,并保存到系统的 keyring 中,用于验证 ROS 软件包的来源和完整性
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

# 使用 ROS2 官方仓库,当前ubuntu的版本代号,由 $(. /etc/os-release && echo $UBUNTU_CODENAME) 自动获取,使用 main 组件,使用指定的架构和签名密钥.
# [arch=$(dpkg --print-architecture)]: dpkg --print-architecture 会输出你的 CPU 架构.
# signed-by=/usr/share/keyrings/ros-archive-keyring.gpg]: 这个仓库的软件包必须用这个 GPG 密钥验证.
# $(. /etc/os-release && echo $UBUNTU_CODENAME): 读取系统版本信息,输出版本代号.这样可以自动适配不同 Ubuntu 版本.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

#
sudo apt update
sudo apt upgrade

# sudo apt install ros-<distro>-desktop
# 将 <distro> 替换为发行版名(小写).
sudo apt install ros-jazzy-desktop

# 安装 ros 开发工具
sudo apt install ros-dev-tools

# 将 source 行追加到 .bashrc
# 将 <distro> 替换为你的 ROS 发行版名
# echo 'source /opt/ros/<distro>/setup.bash' >> ~/.bashrc
echo 'source /opt/ros/jazzy/setup.bash' >> ~/.bashrc
source ~/.bashrc

# 验证安装
# 启动 turtlesim
ros2 run turtlesim turtlesim_node
# 启动键盘遥控节点
ros2 run turtlesim turtle_teleop_key

ros2环境变量

export RCUTILS_CONSOLE_OUTPUT_FORMAT="[{severity}] {message}"
export RCL_LOGGING_CONSOLE_OUTPUT=stdout

ros2 常用命令

# 启动节点
# <package>: 包名
# <executable>: 可执行程序名
# ros2 run <package> <executable>
# 启动发布者
ros2 run demo_nodes_cpp talker
# 启动订阅者
ros2 run demo_nodes_cpp listener

# 扫描当前 ROS2 网络,找出所有正在运行的节点,找出每个节点发布/订阅的话题,自动绘制一张通信拓扑图.
rqt_graph

ROS2 开发流程

  1. 创建工作空间
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
  1. 创建功能包

ROS2 支持多种构建类型

build-type 适用范围
ament_cmake C++包(最常用)
cmake 纯CMake包(非 ROS2)
python 纯 Python 包(非 ROS2)
c++
python
# 创建一个使用 CMake 构建的 ROS2 C++ 功能包,包名为 my_cpp_pkg
ros2 pkg create --build-type ament_cmake my_cpp_pkg
# 创建一个使用 CMake 构建的 ROS2 python功能包,包名为 my_cpp_pkg
ros2 pkg create --build-type ament_python my_py_pkg
  1. 编写节点

  2. 构建

# 构建整个 ROS2 工作空间,把功能包编译并安装到 install/
colcon build

# 把 install/ 目录加入当前终端的环境变量, 让 ROS2 能找到你的包.
source install/setup.bash
  1. 测试

  2. 启动系统

  3. 部署