Moveit笔记

本文详细介绍了Moveit在ROS中的应用,包括RobotModel和RobotState类的作用,Setup Assistant的使用,配置文件的解析,两种不同的控制方式,以及Rviz中的Moveit插件设置。重点讨论了如何设置和管理机器人的运动规划,以及如何通过Rviz进行视觉反馈和路径规划。

概述

RobotModel类和RobotState类是表示机器人运动学关键的两个类

  • RobotModel

从URDF文件中读到的机器人各个link的关系,joint的属性
从SRDF(Semantic Robot Description Format)得到的 由link和joint组成的 planning group

  • RobotState

机器人某一个时刻下的关节信息(位置,速度,加速度),执行器末端的雅克比矩阵
经常用于设置配置轨迹的函数 和 计算笛卡尔轨迹的函数

Setup Assistant

setup assistant用于生成新的和编辑已有的SRDF文件,规定放到robot_moveit_config文件夹中
终端输入

$ roslaunch moveit_setup_assistant setup_assistant.launch
  • self-collison martix 检测自身运动过程中是否会与自身碰撞,控制采样密度可以控制计算时间 SRDF
  • virtual joint 用于将机器人坐标系与其他坐标系(移动基座)连接,如果是静止的机械臂则不需要设置虚拟关节
  • planning group 里面会包含OMPL默认的planning方法;还可以设置 求解最大时长以及最大尝试次数
  • passive joint 不能被直接控制运动的关节
  • ros control
<think>嗯,用户想了解MoveIt2的安装方法,我得根据提供的引用资料整理一个清晰的指南。首先需要确认系统环境要求。引用[2]提到需要Ubuntu 22.04和ROS2 Humble版本,这是基础前提。用户如果系统版本不对,后续步骤都会出问题,这点必须放在最前面强调。 接下来是安装ROS2和编译工具。引用[2]明确说要先安装ROS2 Humble和Colcon。这里需要提醒用户确认安装完成,可以通过运行ros2命令来验证。编译工具链的完整性很重要,否则后续源码编译容易失败。 然后是创建工作空间和源码下载。引用[1]指出要在moveit2_ws/src目录下执行vcs import命令获取tutorials仓库。但引用[3]提到git拉取失败的问题,需要准备备用方案。比如网络问题时的代理方案(ghproxy镜像)和深度克隆参数--depth 1,这些能有效避免仓库过大导致的超时。 编译环节要注意性能问题。引用[2]警告说渣机可能需要几个小时,甚至推荐Docker但认为更麻烦。这里要提醒用户预留足够时间,并在性能不足时考虑调整编译线程数。常见编译错误如二进制版本冲突(引用[3]第二条)需要特别提示,避免用户重复安装。 最后的环境配置容易被忽略,特别是source install/setup.bash这一步。测试部分建议用官方教程验证核心功能,这样用户能确认安装是否真正成功。 用户可能遇到的坑基本都覆盖了:网络问题用镜像代理,编译用--parallel-workers减负,冲突检测二进制安装。不同用户设备差异大,所以网络方案和性能提示都得给到位。 用户的问题很明确——需要安装MoveIt2的详细方法。结合三个引用资料,我来梳理步骤: 第一步是环境准备。引用[2]明确指出需要Ubuntu 22.04和ROS2 Humble。用户如果跳过这一步直接装MoveIt2肯定会失败,所以必须前置强调。建议用户用命令验证ros2是否安装成功,避免后续踩坑。 接着处理源码获取。引用[1]的vcs import命令是标准流程,但引用[3]揭示国内用户可能卡在git clone。需要准备Plan B:ghproxy镜像加速和--depth 1参数缩减体积。这里要解释原理——镜像地址能绕过github连接问题,浅层克隆避免耗时太长。 编译阶段有三个关键点。一是时间预警(引用[2]说渣机需几小时),二是线程优化(--parallel-workers减轻内存压力),三是冲突检查(引用[3]强调卸载二进制版本)。尤其第三点容易被忽略,用户可能奇怪为什么编译报错。 最后的环境加载和测试是闭环操作。source命令激活工作空间后,必须验证moveit_core能否被检测。测试用例选择引用[1]提到的moveit2_tutorials最直观,能同时检验安装和教程数据完整性。 整个过程要突出避坑指南:网络用镜像、编译调参数、卸载旧版本。特别是虚拟机用户,编译前分配足够内存和CPU核心数能救命。用户如果晚上开始编译,引用[2]的警告提示可能避免他次日发现卡死的尴尬。 </think>好的,根据您提供的引用资料,以下是安装 MoveIt2 的详细方法总结(基于 Ubuntu 22.04 和 ROS 2 Humble 版本): **MoveIt2 安装步骤** 1. **满足前提条件:** * **操作系统:** Ubuntu 22.04 (Jammy Jellyfish)。 * **ROS 2 版本:** 必须安装 **ROS 2 Humble Hawksbill**。确保您的 ROS 2 Humble 安装完整且工作正常(例如,运行 `ros2 doctor` 检查或启动一个示例节点)。如果没有安装,请先按照官方文档安装 ROS 2 Humble。 * **编译工具:** 确保已安装 ROS 2 的编译工具链,主要是 `colcon` 和 `rosdep`。通常安装 `ros-humble-desktop` 或 `ros-humble-desktop-full` 会包含这些工具。如果未安装,可以通过 `sudo apt install python3-colcon-common-extensions python3-rosdep` 安装[^2]。 2. **创建工作空间并获取源代码:** * 创建一个新的工作空间目录并进入其 `src` 子目录: ```bash mkdir -p ~/moveit2_ws/src cd ~/moveit2_ws/src ``` * **核心方法:使用 `vcs` 工具导入教程仓库(推荐)** * 在 `~/moveit2_ws/src` 目录下运行以下命令(引用[1]): ```bash vcs import < moveit2_tutorials/moveit2_tutorials.repos ``` * 这个命令会使用 `vcs`(一个用于管理多个仓库的工具)根据 `moveit2_tutorials.repos` 文件自动克隆 MoveIt2 的核心仓库(`moveit2`)、教程仓库(`moveit2_tutorials`)以及所有必要的依赖仓库到 `src` 目录下。 * **备选方法:手动克隆(遇到网络问题时)** * 如果 `vcs import` 因网络问题(如无法访问 GitHub)失败,可以尝试手动克隆关键仓库。优先尝试 `moveit2_tutorials` 教程仓库,因为它包含了 `.repos` 文件: ```bash git clone https://ghproxy.com/https://github.com/ros-planning/moveit2_tutorials -b humble --depth 1 ``` * `https://ghproxy.com/...` 是一个常用的 GitHub 加速镜像(引用[3])。 * `-b humble` 指定克隆 humble 分支。 * `--depth 1` 进行浅克隆(只获取最新提交历史),可以大大加快克隆速度并减少数据量(引用[3])。 * 克隆成功后,进入 `moveit2_tutorials` 目录,*然后* 再运行 `vcs import` 命令获取其他依赖: ```bash cd moveit2_tutorials vcs import < moveit2_tutorials.repos ``` * 或者,也可以手动克隆 `moveit2` 核心仓库: ```bash git clone https://ghproxy.com/https://github.com/ros-planning/moveit2 -b humble --depth 1 ``` * 注意:手动克隆核心仓库可能还需要手动克隆其他依赖项,不如使用 `vcs import` 方便完整。 3. **安装依赖:** * 回到工作空间的根目录 (`~/moveit2_ws`)。 * 运行 `rosdep` 安装所有系统依赖项: ```bash rosdep install -r --from-paths . --ignore-src --rosdistro humble -y ``` * `-r`:即使遇到错误也继续安装(非强制,但有时有用)。 * `--from-paths .`:在当前目录(工作空间)下查找需要依赖的包。 * `--ignore-src`:跳过已经存在于工作空间 `src` 目录中的包(即我们刚刚克隆的那些)。 * `--rosdistro humble`:指定针对 ROS 2 Humble 安装依赖。 * `-y`:对所有的提示自动回答 `yes`。 4. **编译工作空间:** * 确保仍在工作空间根目录 (`~/moveit2_ws`)。 * 使用 `colcon` 进行编译: ```bash colcon build --event-handlers desktop_notification- status- --cmake-args -DCMAKE_BUILD_TYPE=Release ``` * **重要编译说明:** * **耗时警告:** 编译整个 MoveIt2 及其依赖是一个**非常耗时的过程**。在性能中等的计算机上可能需要 **20-30分钟**,在性能较低的计算机上(如虚拟机、资源受限的笔记本)可能需要**几小时**(引用[2])。请确保您的计算机接通电源,并有充足的时间和耐心。 * **性能优化:** * 使用 `-DCMAKE_BUILD_TYPE=Release` 进行优化编译(建议)。 * 可以使用 `--parallel-workers N` 参数(`N` 是您想要使用的 CPU 核心数)来并行编译以加快速度(例如 `--parallel-workers 4`)。但请注意,这会占用更多内存。如果内存不足导致编译失败,请减少 `N` 或不使用此参数(即默认行为)。 * **冲突解决:** 如果在编译中出现奇怪的错误,请检查是否曾经尝试过通过 `apt` 安装过二进制版本的 MoveIt2(例如 `ros-humble-moveit*`)。如果安装过,请卸载它们(例如 `sudo apt remove ros-humble-moveit*`),**只保留从源码编译的版本**(引用[3])。 5. **加载环境:** * 编译完成后,**每次**打开新的终端想要使用这个工作空间中的 MoveIt2 时,都需要加载其环境: ```bash source ~/moveit2_ws/install/setup.bash ``` * 可以将此 `source` 命令添加到您的 `~/.bashrc` 文件中,使其在每次打开终端时自动加载(但要注意与其他工作空间的潜在冲突)。 6. **验证安装:** * 运行一个简单的命令检查核心组件是否可被找到: ```bash ros2 pkg executables | grep moveit_core # 应该能看到一些可执行文件列表 ``` * 尝试运行教程中的示例(例如,根据 `moveit2_tutorials` 中的文档)。最简单的可能是启动演示规划场景: ```bash ros2 launch moveit2_tutorials demo.launch.py ``` * 如果安装成功,应该能看到 RViz 窗口打开,展示一个 Panda 机器人模型。 **关键要点总结与提示:** 1. **环境匹配:** `Ubuntu 22.04` + `ROS 2 Humble` 是硬性要求。 2. **`vcs import` 是首选:** 在 `~/moveit2_ws/src` 下运行 `vcs import < moveit2_tutorials/moveit2_tutorials.repos` 是最标准、最完整获取源码的方式(引用[1])。 3. **网络问题对策:** 如果克隆失败,尝试: * 使用 GitHub 镜像(如 `https://ghproxy.com/https://github.com/...`)(引用[3])。 * 使用 `--depth 1` 进行浅克隆(引用[3])。 * 检查网络连接和代理设置。 4. **编译非常耗时:** 做好长时间等待的准备,尤其是在性能较弱的机器上(引用[2])。考虑使用 `--parallel-workers N` 但注意内存限制。 5. **避免二进制与源码冲突:** 确保只使用一种安装方式(推荐源码编译),如果之前 `apt` 安装过 MoveIt2 二进制包,务必卸载(引用[3])。 6. **加载环境:** 使用编译后的 MoveIt2 前必须 `source ~/moveit2_ws/install/setup.bash`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值