【ROS2 自动驾驶学习】02-安装ROS2及其配套工具

目录

一、设置语言环境

二、添加存储库

三、添加软件源

四、安装ROS2

五、配置环境

六、测试ROS2

七、安装一些工具

[7.1 terminator](#7.1 terminator)

[7.2 colcon工具](#7.2 colcon工具)

[7.3 tf工具](#7.3 tf工具)

[7.4 joint-state-publisher工具](#7.4 joint-state-publisher工具)

[7.5 urdf](#7.5 urdf)

八、安装三方库

[8.1 Eigen](#8.1 Eigen)

[8.2 yaml-cpp](#8.2 yaml-cpp)

[8.3 matplotlib](#8.3 matplotlib)

[8.4 osqp和osqp-eigen](#8.4 osqp和osqp-eigen)


一、设置语言环境

检查本地语言环境是否支持UTF-8编码,在控制台输入如下命令检查

bash 复制代码
locale

如下图,每1条都含有"UTF-8"就表示支持UTF-8编码

如果没有上图的输出,就需要输入如下指令使得系统支持UTF-8编码

二、添加存储库

打开"软件和更新",勾选"社区维护的自由和开源软件"

三、添加软件源

  1. 在控制台中输入如下指令,更新软件源
bash 复制代码
sudo apt update
  1. 输入如下指令来利用apt工具从 Ubuntu 的官方软件源中下载并安装curl软件包
bash 复制代码
sudo apt install curl -y
  1. 输入如下指令来安全地从 ROS 官方 GitHub 仓库获取 GPG 密钥,并将其保存到系统的密钥环目录中。
bash 复制代码
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
  1. 输入如下指令,将ROS2的阿里云镜像源配置添加到系统的软件源列表中,同时指定架构、密钥验证和当前 Ubuntu 版本代号,确保后续apt命令能从正确的源下载适合当前系统的 ROS 2 软件包
bash 复制代码
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \
https://mirrors.aliyun.com/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | \
sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

输入上面的命令后可以在"/etc/apt/sources.list.d/"中找到"ros2.list"

打开"ros2.list"可以看到ROS2下载的源已经设置了

四、安装ROS2

输入如下3个指令,从已配置的软件源(之前添加的阿里云 ROS 2 镜像源)中下载并安装ROS2 Humble版本的桌面完整版

bash 复制代码
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop

五、配置环境

输入如下指令,可以帮助让用户在打开终端后,把ROS2的环境会自动配置好,用户可以直接使用ros2命令以及相关工具

bash 复制代码
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

输入如下指令,Bash 会重新读取并执行.bashrc文件中的所有命令 ,可以使修改立即生效

bash 复制代码
source ~/.bashrc

执行后可以在主页按下Ctrl+H显示主页隐藏的文件夹,然后打开".bashrc"

可以看到已经进行了配置。这样每次打开新的终端窗口时,系统自动执行".bashrc"中的每一条命令,也就把"source /opt/ros/humble/setup.bash"一起执行了。

六、测试ROS2

输入如下指令,运行turtlesim软件包中的turtlesim_node节点,从而启动海龟仿真器。这个仿真器会创建一个图形界面,界面中有一只海龟,用户可以通过发布指令控制海龟在画布上移动。

bash 复制代码
ros2 run turtlesim turtlesim_node 

如下图,表示我们已经成功安装了ROS2

此时我们再重新打开一个终端窗口,输入如下指令,就可以通过键盘的前后左右键来控制小乌龟移动了。

bash 复制代码
ros2 run turtlesim turtle_teleop_key 

七、安装一些工具

7.1 terminator

输入如下指令来安装terminator

bash 复制代码
sudo apt install terminator

安装terminator后,再次打开终端后,我们就可以对终端进行水平、垂直分割,方便看到多个窗口的内容。

水平和垂直分割后如下所示。

7.2 colcon工具

输入如下指令来安装colcon工具。colcon 是 ROS 2 中官方推荐的构建工具,用于编译和管理 ROS 2 工作空间中的软件包。它集成了 CMake 和 Python 的构建系统,提供了更高效、更灵活的工作流。

bash 复制代码
sudo apt install python3 && sudo apt install python3-colcon-common-extensions

7.3 tf工具

输入如下指令。

第1条指令用于安装tf工具。TF2 是 ROS 2 中用于管理和处理坐标系变换的核心框架,它能够跟踪机器人各部分(如传感器、关节、末端执行器等)之间的空间关系,并在不同坐标系之间进行实时转换。TF2 在机器人导航、定位、运动规划等任务中起着至关重要的作用。

第2条指令用于安装pip。通过python3-pip,用户可以方便地管理 Python 包,为后续开发或使用 Python 应用程序奠定基础。

第3条指令用于安装transform3d。这是一个专注于三维空间变换的 Python 库,提供了各种坐标变换、旋转矩阵、四元数等计算功能。

bash 复制代码
sudo apt install ros-humble-tf2-tools ros-humble-tf-transformations
sudo apt install python3-pip
pip3 install transforms3d

7.4 joint-state-publisher工具

输入如下指令来安装"joint-state-publisher"和"joint-state-publisher-gui"软件包。

joint-state-publisher:

自动生成机器人各关节的控制值(如角度)。

通过/joint_states话题发布这些值,供其他节点(如 RViz、控制器)使用。

适用于没有真实硬件的仿真环境,或需要手动控制关节的场景。

joint-state-publisher-gui是joint-state-publisher的图形化扩展,提供:

滑块界面:通过拖动滑块实时调整关节角度。

关节分组:可折叠 / 展开不同部位的关节(如手臂、腿部)。

自动生成:基于机器人模型自动识别可活动关节,并创建对应的控制滑块。

bash 复制代码
sudo apt install ros-humble-joint-state-publisher
sudo apt install ros-humble-joint-state-publisher-gui

7.5 urdf

输入如下指令来安装urdf。Xacro 是 ROS 中用于简化机器人模型描述的工具,它基于 XML 语法,允许使用变量、宏定义、条件语句等编程元素来创建更简洁、更易维护的机器人模型文件。Xacro 文件通常具有.xacro.urdf.xacro扩展名,最终会被编译成标准的 URDF(Unified Robot Description Format)文件。

bash 复制代码
sudo apt install ros-humble-xacro

八、安装三方库

8.1 Eigen

访问"https://eigen.tuxfamily.org/",点击"Eigen 3.4.0 released!"

点击链接

这里下载第1个

在Windows系统下载该压缩包后,这里通过共享文件夹的方式将压缩包共享到Ubuntu中。

提取压缩包

在"/home/chaochao/下载/"中打开终端窗口,然后输入如下指令将提取后文件夹移动到系统软件安装的位置"/usr/local/include/"

bash 复制代码
sudo mv eigen-3.4.0/ /usr/local/include/

8.2 yaml-cpp

可以通过访问https://github.com/jbeder/yaml-cpp下载源码。或通过输入如下指令安装:

bash 复制代码
sudo apt update
sudo apt install libyaml-cpp-dev

8.3 matplotlib

可以通过访问官网"Matplotlib --- Visualization with Python"下载。或通过如下指令下载:

bash 复制代码
# 方式1:(apt安装)
sudo apt update
sudo apt install python3-matplotlib

# 方式2:(pip安装)
pip3 install matplotlib

8.4 osqp和osqp-eigen

通过如下指令先确认gcc和cmake已经安装了。

bash 复制代码
gcc --version
cmake --version

在"主目录"中打开终端窗口,输入如下指令来安装git

bash 复制代码
sudo apt install git

再通过git克隆V1.0.0的osqp

bash 复制代码
git clone -b v1.0.0 https://github.com/osqp/osqp.git

通过git克隆V0.10.0的osqp-eigen

bash 复制代码
git clone -b v0.10.0 https://github.com/robotology/osqp-eigen.git

此时可以看到主目录中已经有"osqp"和"osqp-eigen"

输入如下指令 进入"osqp"目录并创建"build"文件夹再进入"build"

bash 复制代码
cd osqp && mkdir build && cd build

输入如下指令。通过该指令开发者可以将项目的源代码转换为可编译的构建文件,为后续的编译和安装步骤做好准备。

bash 复制代码
cmake ..

输入如下指令,该指令用于加速编译过程的命令,它通过(nproc)获取系统可用CPU核心数,并利用make -j 选项开启并行编译,让编译器同时执行多个任务,显著缩短项目的构建时间。

bash 复制代码
make -j$(nproc)

编译后可以看到build目录中包含很多文件

输入如下指令,该指令会依据 Makefile 中的规则将程序文件、库文件和配置文件复制到指定的系统目录( /usr/local/

bash 复制代码
sudo make install

执行后可以看到在"/usr/local/include/osqp/"中包含如下头文件

在 "/usr/local/lib/"中包含库"libosqp.so"

输入如下指令来更新库的链接关系

bash 复制代码
sudo ldconfig

再输入"source ~/.bashrc"

此时"osqp"就安装完成了。下面同样的步骤安装"osqp-eigen"。

退回主目录

依次输入如下指令

bash 复制代码
cd osqp-eigen && mkdir build && cd build
cmake .. make -j$(nproc)
sudo make install
sudo ldconfig
source ~/.bashrc

安装后可以检查一下

相关推荐
mit6.82436 分钟前
[vroom] docs | 输入与问题定义 | 任务与运输工具 | json
c++·自动驾驶
Mr.Winter`5 小时前
轨迹优化 | 基于激光雷达的欧氏距离场ESDF地图构建(附ROS C++仿真)
c++·人工智能·机器人·自动驾驶·ros·ros2·具身智能
LCG元17 小时前
自动驾驶感知模块的多模态数据融合:时序同步与空间对齐的框架解析
人工智能·机器学习·自动驾驶
Mr.Winter`3 天前
障碍感知 | 基于3D激光雷达的三维膨胀栅格地图构建(附ROS C++仿真)
人工智能·机器人·自动驾驶·ros·具身智能·环境感知
超喜欢下雨天3 天前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
曹勖之14 天前
simuilink和ROS2数据联通,Run后一直卡在Initializting
windows·matlab·simulink·ros2
数字芯片实验室15 天前
特斯拉HW5要上3nm工艺,自动驾驶芯片的军备竞赛
人工智能·机器学习·自动驾驶
小虎卫远程打卡app15 天前
自动驾驶避障思考
人工智能·chatgpt·自动驾驶
点云SLAM15 天前
PyTorch 中torch.clamp函数使用详解和实战示例
人工智能·pytorch·python·自动驾驶·slam·3d深度学习·张量操作