记录本人在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