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/
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号