Ububtu 20.04.6 LTS 安装ROS2和Gazebo

zhuannnn / 2024-01-24 / 原文

记录本人在Ububtu 20.04.6 LTS系统下安装ROS2和Gazebo的步骤,方便需要时查阅


安装ROS2 Foxy

获取签名

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 $(. /etc/os-release && echo $UBUNTU_CODENAME) main"

替换为国内镜像,速度更快

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/ $(. /etc/os-release && echo $UBUNTU_CODENAME) main"

安装

sudo apt install ros-foxy-desktop python3-argcomplete

安装过程中,若出现如下提示,则使用aptitude指令安装,并修复依赖

下列软件包有未满足的依赖关系:
ros-foxy-desktop :
依赖: ros-foxy-depthimage-to-laserscan 但是它将不会被安装
依赖: ros-foxy-image-tools 但是它将不会被安装
依赖: ros-foxy-intra-process-demo 但是它将不会被安装
依赖: ros-foxy-joy 但是它将不会被安装
依赖: ros-foxy-pcl-conversions 但是它将不会被安装
依赖: ros-foxy-rqt-common-plugins 但是它将不会被安装
依赖: ros-foxy-teleop-twist-joy 但是它将不会被安装

配置环境(可选)

每次运行ros2指令时,需要先在该终端里执行source /opt/ros/foxy/setup.bash,切换终端后失效。
若执行以下语句,后续可直接使用ros2指令。

echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc

测试安装-控制海龟移动

终端输入ros2 run turtlesim turtlesim_node,会出现一个有海龟的窗口。
在另一个终端输入ros2 run turtlesim turtle_teleop_key,按照提示,可以使用键盘控制海龟移动


安装Gazebo

安装

sudo apt install gazebo11
sudo apt install ros-foxy-gazebo-ros-pkgs

建议把其他的包也安装了

sudo apt install ros-foxy-gazebo-*

安装完成后,/opt/ros/foxy/share目录下将有若干gazebo相关文件夹

测试安装

终端输入

gazebo --verbose /opt/ros/foxy/share/gazebo_plugins/worlds/gazebo_ros_diff_drive_demo.world

另一个终端

ros2 topic pub /demo/cmd_demo geometry_msgs/Twist '{linear: {x: 1.0}}' -1

执行效果:小车模型沿直线移动
注:如模型透明,可尝试将World>Scene>Property>shadows改为False,如下图


参考:

  • ROS2 Foxy wiki http://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html
  • Gazebo官方tutorials https://classic.gazebosim.org/tutorials?tut=ros2_installing&cat=connect_ros