2024年2月29日:Ubuntu(wsl2)从源码安装ros2(Humble)

官网教程网址:

https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html

具体过程及我安装过程中遇到的一些bug及解决方法:

  1. 设置语言:确保支持UTF-8
    在命令行中执行:
locale  # check for UTF-8

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

locale  # verify settings
  1. 添加ros2 apt仓库
    先确保 Ubuntu Universe repository(Ubuntu软件库)可用,即在命令行执行:
sudo apt install software-properties-common
sudo add-apt-repository universe

用apt添加ROS 2 GPG key,即在命令行执行:

sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

把ros2的仓库添加到sources list,即在命令行执行:

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
  1. 下载开发包和ros工具
    命令行执行:
sudo apt update && sudo apt install -y \
  python3-flake8-docstrings \
  python3-pip \
  python3-pytest-cov \
  ros-dev-tools

根据ubuntu版本下载包(应该都是22.04 LTS及以上),命令行执行:

sudo apt install -y \
   python3-flake8-blind-except \
   python3-flake8-builtins \
   python3-flake8-class-newline \
   python3-flake8-comprehensions \
   python3-flake8-deprecated \
   python3-flake8-import-order \
   python3-flake8-quotes \
   python3-pytest-repeat \
   python3-pytest-rerunfailures
  1. 获取ros2源码
    先建好工作区,并cd:
mkdir -p ~/ros2_humble/src
cd ~/ros2_humble

根据自己想要的版本下载源码,这里是下载的humble,先下载repos:

vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src
  1. 用rosdep来下载依赖
    先更新apt:
sudo apt upgrade

初始化rosdep,并更新:

sudo rosdep init
rosdep update

用rosdep下载依赖:

rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"
  1. 用colcon来build源码
    确保在工作区:
cd ~/ros2_humble/

build:

colcon build --symlink-install
  1. 设置环境
# 用你自己的shell替换 ".bash"
. ~/ros2_humble/install/local_setup.bash

运行实例

. ~/ros2_humble/install/local_setup.bash
ros2 run demo_nodes_cpp talker

再开一个终端:

. ~/ros2_humble/install/local_setup.bash
ros2 run demo_nodes_py listener

遇到的bug及解决方法

  1. 遇到最多的问题是,挂上vpn有时也连不上需要下东西的那几个网站.
    上这个网站(https://sites.ipaddress.com/raw.githubusercontent.com/)查询对应的ip地址,然后添加到hosts文件:
sudo vi /etc/hosts

添加后效果
有的网站关联多个ip,挨个ping试试,用能ping通的那个ip就行了。

如果发现常用网站比如baidu.com ping不通,就在resolv.conf文件中添加谷歌的DNS服务器地址

sudo vi etc/resolv.conf

在这里插入图片描述

  1. 有时能访问网站,但下不了repos:
    建议通过浏览器下好repos再移到工作区。

  2. colcon build出错:
    可能是rosdep没下好,rosdep那一步一定要成功。
    也有可能提示你文件系统只读,这是文件系统出错后的保护机制,我这里是因为盘空间用完了,清出足够的空间就能build好。

  3. stderr : SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
    这是由于humble里面用的python setup版本比较低,降低setup版本即可。
    先检查setup tool版本(要降到58.2.0):
    在这里插入图片描述
    如果高了,终端输入:

pip install setuptools==58.2.0
  1. 内存爆了:
    在这里插入图片描述
    可以降低使用的cpu core数量:
colcon build --parallel-workers 1 --cmake-args -DCMAKE_CXX_FLAGS="--param ggc-min-expand=20"

如果是使用的虚拟机(我的是wsl2),可以改wsl2配置文件:
Windows + R 键,

输入 %UserProfile% 并运行进入用户文件夹,

新建文件 .wslconfig,文件内容如下:

#.wslconfig
[wsl2]
memory=54G    # 限制最大使用内存,不使用64G,是为了为Windows保存一些内存,不这么卡
swap=10G         # 限制最大使用虚拟内存
# 限制最大使用cpu个数,如果不设置,默认是使用全部的核心
# processors=16

  1. 虽然添加了ros2的仓库,但还是建议添加国内的源(网上搜Ubuntu换源),会快很多。

最后

安装过程要耐心,我用了很长时间才弄好,中途经历多次断联、崩溃、重启。。。。。
在这里插入图片描述
(这是最后完整的源码build成功之后的截图)

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WSL2(Windows Subsystem for Linux 2)是微软开发的一种在Windows操作系统上运行Linux环境的技术。ROS(Robot Operating System)是一个用于构建机器人应用程序的开源框架。在WSL2安装ROS可以让你在Windows系统上进行ROS开发和测试。 以下是在WSL2安装ROS的步骤: 1. 安装WSL2: - 打开PowerShell并以管理员身份运行。 - 运行以下命令启用WSL功能:`wsl --install` - 重启计算机。 2. 安装Ubuntu: - 打开Microsoft Store并搜索Ubuntu。 - 选择适合你的版本(如Ubuntu 20.04 LTS)并点击安装。 - 启动Ubuntu并按照提示进行初始化设置。 3. 更新Ubuntu: - 在Ubuntu终端中运行以下命令更新软件包列表:`sudo apt update` - 运行以下命令升级已安装的软件包:`sudo apt upgrade` 4. 安装ROS: - 在Ubuntu终端中运行以下命令以添加ROS软件源:`sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'` - 运行以下命令以添加ROS密钥:`curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -` - 运行以下命令以安装ROS:`sudo apt update && sudo apt install ros-<distro>-desktop`(将`<distro>`替换为你想要安装ROS版本,如`melodic`或`noetic`) - 运行以下命令以初始化ROS环境:`echo "source /opt/ros/<distro>/setup.bash" >> ~/.bashrc`(将`<distro>`替换为你安装ROS版本) - 运行以下命令以使初始化脚本生效:`source ~/.bashrc` 5. 配置工作空间: - 创建一个ROS工作空间目录:`mkdir -p ~/catkin_ws/src` - 进入工作空间目录:`cd ~/catkin_ws` - 运行以下命令以构建工作空间:`catkin_make` 现在,你已经成功在WSL2安装ROS。你可以在工作空间的`src`目录下创建ROS包并进行开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值