< >
Home » ROS2与MoveIt2教程 » ROS2与MoveIt2入门教程-MoveIt2软件安装

ROS2与MoveIt2入门教程-MoveIt2软件安装

说明:

  • 介绍如何通过三种方式进行安装:二进制安装、从源代码编译安装、使用MoveIt2 LXD容器进行安装。

步骤:

  • 二进制安装
    MoveIt2的二进制安装方法最为简单,但目前仅适用于Ubuntu 20.04上的ROS 2 Foxy、ROS 2 Galactic 和 ROS 2 Rolling这三个发行版。如果机器上已经安装好了ROS 2的上述三个发行版之一,则MoveIt2的二进制安装命令为:
sudo apt install ros-foxy-moveit
 
或者

sudo apt install ros-galactic-moveit

或者

sudo apt install ros-rolling-moveit

这样就可以完成MoveIt2二进制软件包的安装。

  • 从源代码编译安装

    目前主要支持在Linux操作系统(具体来说应该是Ubuntu)上从源代码编译安装MoveIt2软件框架

  • 使用MoveIt2 LXD容器进行安装

    对许多ROS用户来说,试用ROS 2的最大障碍之一就是需要付出很多努力来设置一切。MoveIt2 Foxy工作空间要求在Ubuntu 20.04操作系统上安装ros-foxy-desktop,而许多用户恰好没有时间或者能力进行这项工作。LXD镜像moveit2-foxy在Ubuntu 20.04环境中提供了一个预编译好的MoveIt2 Foxy工作空间,允许用户立即开始测试和调试。为此,用户需要做的就是下载该LXD镜像,并使用这个一步一步教你如何做的教程所述的gui配置文件启动该镜像。该镜像下载地址为:https://moveit-lxd-images.s3.us-east-2.amazonaws.com/moveit2-foxy.tar.gz

    • 安装并初始化LXD
sudo snap install lxd
sudo lxd init
 
  • 下载MoveIt2镜像并使用命令行客户端lxc将其导入到您的LXD寄存器中
lxc image import moveit2-foxy.tar.gz --alias moveit2-foxy
  • 验证所有导入的镜像
lxc image list
  • 应用 LXD GUI 配置文件。为了从LXD容器内部运行RViz或任何其他GUI应用程序,需要通过应用LXD启动配置文件来访问主机X11会话。为此,需要使用以下内容创建一个新文件gui.txt:
config:
  environment.DISPLAY: :0
  raw.idmap: both 1000 1000
  user.user-data: |
    #cloud-config
    runcmd:
      - 'sed -i "s/; enable-shm = yes/enable-shm = no/g" /etc/pulse/client.conf'
      - 'echo export PULSE_SERVER=unix:/tmp/.pulse-native | tee --append /home/ubuntu/.profile'
    packages:
      - x11-apps
      - mesa-utils
      - pulseaudio
description: GUI LXD profile
devices:
  PASocket:
    path: /tmp/.pulse-native
    source: /run/user/1000/pulse/native
    type: disk
  X0:
    path: /tmp/.X11-unix/X0
    source: /tmp/.X11-unix/X0
    type: disk
  mygpu:
    type: gpu
name: gui
used_by:
  • 创建一个新的名为gui的容器配置文件:
lxc profile create gui
cat gui.txt | lxc profile edit gui
  • 启动LXD容器。使用默认配置文件和gui将镜像moveit2-foxy作为容器 moveit2-foxy启动:
lxc launch --profile default --profile gui moveit2-foxy moveit2-foxy
  • 具有sudo权限的用户ubuntu在正在运行的容器实例中打开一个bash shell:
lxc exec moveit2-foxy -- sudo --user ubuntu --login
  • 通过运行glxgears来验证GUI是否正常工作。如果glxgears不可用或命令失败,则请参阅下面的“GUI故障排除”部分

  • 登录后,就可以在~/ws_ros2中找到预编译好的和源ROS2工作空间目录。现在已经准备就绪,可以开始运行MoveIt2的演示了(MoveItCpp、MoveGroup、MoveIt Servo),例如:

ros2 launch run_moveit_cpp run_moveit_cpp.launch.py
  • GUI故障排除

    以下是GUI支持不起作用的最可能原因。对于所有修复,可能需要重新启动容器实例,甚至重新应用gui配置文件。

    • 错误的显示设备
      验证主机和容器的$DISPLAY是否设置为相同的值。默认值为“:0”,如果主机使用不同的显示器,则需要将相同的值应用到您的gui 配置文件中。

    • 缺少相关软件包
      在某些情况下,cloud-init无法安装必要的软件包mesa-utils、x11-apps和pulseaudio。可以简单地从容器shell内手动添加它们:

       sudo apt install mesa-utils x11-apps pulseaudio
      
    • 英伟达故障排除

      • 在某些 Nvidia 系统上,容器中可能无法访问OpenGL。在这种情况下,最简单的解决方案是简单地安装与主机系统上安装的NVidia 版本相同的库,如下所示:

      • 在您的主机系统中,检查当前安装的驱动程序版本:

        apt list --installed nvidia-driver-* -> nvidia-driver-440/...

      • 在您的容器实例中安装GL库:

        sudo apt install libnvidia-gl-440

      • 也可以将gl库添加到config/user.user-data/packages下的lxc gui配置文件中,只需要确保始终使用与您的主机系统相匹配的版本。

英语原文地址:https://moveit.ros.org/

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与moveit2入门教程