在使用ABB机器人与ROS2通讯时,需要一些必要的通讯和基础功能包。
步骤1:新建工作空间
mkdir -p irb1200_5_90_2026/src
步骤2:安装VCS工具
sudo apt install python3-vcstool
步骤3:下载通讯和基础功能包到工作空间中
进入src路径
cd irb1200_5_90_2026/src/
sudo apt update
sudo apt dist-upgrade
与sudo apt upgrade的区别:sudo apt upgrade仅升级已安装的软件包,不处理依赖关系的重大变化, 而sudo apt dist-upgrade在upgrade的基础上,增加了 "依赖关系智能调整" 的能力,适合系统整体更新、或安装 / 升级对依赖有较大变动的软件(如 ROS 2 相关包),能避免依赖冲突导致的更新失败。
sudo rosdep init
rosdep update
更新 ROS 专属的依赖映射数据库,为后续rosdep install提供准确的依赖信息(ROS 工具层面准备)。
是 ROS 生态专属命令,核心功能是从 ROS 官方服务器下载 / 更新一份最新的 "ROS 包 ↔ 系统级依赖包" 的映射数据库文件(俗称rosdep数据库) ,这份数据库记录了不同 ROS 发行版(如 Humble、Iron)中,每个 ROS 包对应的 Ubuntu 系统apt依赖包信息。rosdep update会下载 / 更新 包含所有支持的 ROS 发行版(包括 Humble、Iron、Jazzy、Noetic 等 ROS 1/2 版本)的完整依赖映射数据库。
注意:在使用rosdep update命令时,容易出现超时的错误。
解决方法:更换国内源
方案1:可能会出现第4步以后的错误
(1)备份原有rosdep源配置文件
备份默认的sources.list.d目录
sudo cp -r /etc/ros/rosdep/sources.list.d /etc/ros/rosdep/sources.list.d.bak
备份用户目录下的rosdep相关文件
sudo cp -r /etc/ros/rosdep /etc/ros/rosdep.bak
这个路径是在执行 sudo rosdep init时建立的。

(2)修改rosdep的核心源配置文件
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
将文件中的所有内容替换为以下清华大学镜像源内容:
# os-specific listings first
yaml https://mirrors.tuna.tsinghua.edu.cn/rosdistro/master/rosdep/osx-homebrew.yaml osx
# generic
yaml https://mirrors.tuna.tsinghua.edu.cn/rosdistro/master/rosdep/base.yaml
yaml https://mirrors.tuna.tsinghua.edu.cn/rosdistro/master/rosdep/python.yaml
yaml https://mirrors.tuna.tsinghua.edu.cn/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://mirrors.tuna.tsinghua.edu.cn/rosdistro/master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
(3)修改rosdistro的默认地址
编辑rosdistro的配置文件
sudo gedit /usr/lib/python3/dist-packages/rosdistro/init.py
将DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'改为
DEFAULT_INDEX_URL = 'https://mirrors.tuna.tsinghua.edu.cn/rosdistro/master/index-v4.yaml'
(4)清除原有缓存并重新执行rosdep update
rm -rf ~/.ros/rosdep/cache/*
rosdep update

原因是镜像源地址格式已过时,对应的文件路径不存在。
方案2:使用rosdepc(国内专用rosdep替代工具)
sudo apt install python3-pip -y
pip3 install rosdepc -i https://pypi.tuna.tsinghua.edu.cn/simple
gedit ~/.bashrc
在文件末尾添加export PATH=HOME/.local/bin:PATH
source ~/.bashrc
rosdepc update
将github下载的abb_ros2文件夹中的abb.repos文件拷贝到工作空间的src路径下。
安装git工具
sudo apt update && sudo apt install git -y
克隆仓库
vcs import < abb_ros2/abb.repos
因为abb.repos文件是通讯和基础功能包的地址,所以上面步骤就是将abb_libegm/abb_librws等4个功能包复制到src路径下。

安装系统级依赖,在src路径下执行下面的指令
rosdepc install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y
执行后会出现下面错误:

解决方法:手工安装依赖项
sudo apt update
sudo apt install libprotobuf-dev libpoco-dev libboost-all-dev protobuf-compiler -y
步骤4:编译
在工作空间路径,执行colcon build