ubuntu20.04安装ros2 galactic

注意:ros2 galactic(2021.5~2022.11) 是ROS2长期支持(LTS)版本之前的临时版本。与之前的 ros2 foxy(2020.5~2023-5)相比,ros2 galactic对基础系统库的版本需求几乎没有变化,主要是c++的最低版本由c++14升级为c++17。同时autoware.universe官方教程中,在20.04上推荐的也是ros2 galactic,因为autoware.universe用到了c++17的语法。

这里建议ubuntu20.04安装ros2 galactic,因为ubuntu22.04对应的ros2长期支持版本humble最低c++版本要求也是c++17,ubuntu24.04对应的ros2 LTS 版本 Jazzy最低c++版本要求也是c++17。ubuntu20.04选择ros2 galactic可以增加代码对后续ros2版本的的兼容性。

Humble

 

上图为foxy,下图为galactic

一、更新时区及语言(需要支持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

二、添加ros2源

sudo apt update && sudo apt install curl gnupg2 lsb-release

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

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

1)     配置ros2源无法地址403时,

解决:手动配置域名映射185.199.108.133 raw.githubusercontent.com

sudo vim /etc/hosts

2)官方源可能很慢,可以改成国内源

deb https://mirrors.aliyun.com/ros2/ubuntu/ focal main  

然后再输入如下命令,信任 ROS 的 GPG Key,并更新索引:

sudo apt install curl gnupg2
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update

三、安装ros2

sudo apt update
sudo apt install ros-galactic-desktop
sudo apt install ros-dev-tools

#如果电脑已有ros1,就不要把下面命令加入.bashrc中
source /opt/ros/galactic/setup.bash

四、新一代包构建工具colcon

colcon独立于ros,没有包含在ros的功能包中,需要我们自己安装

sudo apt install python3-colcon-common-extensions

#添加colcon环境变量到shell
echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc
echo "export _colcon_cd_root=/opt/ros/galatict/" >> ~/.bashrc

#Setup colcon tab completion
echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc

#Tips
#1、如果不想构建特定的包,请在包目录中放置一个名为COLCON_IGNORE的空文件,它将不会被索引。

五、创建功能包及用colcon编译

mkdir -p ros2/src
cd ros2/src

ros2 pkg create --dependencies std_msgs rclcpp --node-name my_node my_package

cd ..
colcon build
#编译指定包
colcon build --packages pkg_name

source install/setup.bash

ros2 run my_package my_node

 

posted @ 2024-05-17 22:28  chenjian688  阅读(209)  评论(0编辑  收藏  举报