![](https://i-blog.csdnimg.cn/direct/4f961f3806f643eb9b5aad81692342b1.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MoveIt 2机器人运动规划
欢迎来到我们的MoveIt 2机器人运动规划专栏,这里我们深入探讨机器人运动规划的世界,从基础概念到实际应用案例。MoveIt 2作为一个强大的开源框架,为ROS 2环境下的机器人提供运动规划的能力。
阿白机器人
RoboticRhapsody
展开
-
一、第一个C++MoveIt2项目,控制机械臂到固定位姿
安装ubuntu22.04系统与ROS2 humble、MoveIt2功能包。原创 2024-08-10 06:51:18 · 286 阅读 · 0 评论 -
二、RVIZ中可视化执行过程-moveit_visual_tools
moveit_visual_tools工具可以在rviz中显示可视化效果来了解程序执行的操作。原创 2024-08-12 08:59:16 · 405 阅读 · 0 评论 -
三、使用MoveIt Task Constructor完成机械臂拾取与放置
定义MTCTaskNode类,并在类中声明成员函数包括构造函数public:private:成员函数实现,定义 getter 函数来获取节点基础接口使用指定的选项初始化节点此类方法用于设置规划场景,创建一个圆柱体,并设置尺寸和位置。如果放置在工作空间外,规划将失败doTask函数与MTC对象交互。首先创建一个任务,包括设置属性和添加阶段。接下来初始化任务并生成规划,找到5个成功的解后规划停止。原创 2024-08-13 23:44:40 · 1091 阅读 · 0 评论 -
四、使用MoveGroup C++接口——运行案例(一)
本章分别介绍运动学、运动规划、混合规划、节点move_group规划场景监视器和轨迹处理内容, 本节使用MoveGroup类组件对机器人操作仿真,执行教程代码并在RViz中输出结果。原创 2024-08-16 05:29:27 · 632 阅读 · 0 评论 -
四、使用MoveGroup C++接口——运动学(二)
如果ACM中两个物体对应的值被设置为true,则指定这两个物体之间的碰撞检查是不需要的,即“总是处于碰撞状态”或“永远不会碰撞”的状态。例如,可以复制当前的 ACM 和状态,修改它们,然后将它们传递给碰撞检查函数,以实现对特定碰撞对的忽略。自动生成时,工具会分析每个连杆对,并将其分类为“总是处于碰撞状态”、“永远不会碰撞”、“默认处于碰撞状态”、“禁用相邻连杆”和“有时处于碰撞状态”,并相应地禁用碰撞检测。在MoveIt中,碰撞检测是在规划场景(Planning Scene)中配置的。原创 2024-08-16 11:40:57 · 1043 阅读 · 0 评论 -
四、使用MoveGroup C++接口——运动规划(三)
本节介绍MoveIt中的运动规划及其相关组件。原创 2024-08-17 14:05:52 · 780 阅读 · 0 评论 -
四、使用MoveGroup C++接口——混合规划(四)
全局规划器完成计算后,新的全局解决方案被发布到局部规划器,局部规划器的轨迹操作插件将更新融合到参考轨迹中。全局规划器的任务是解决一个全局运动规划问题,这与“感知-规划-行动”应用中使用的规划器非常相似。为了规划和执行动作,首先需要感知环境和机器人状态(“感知”),然后由规划器计算机器人的轨迹(“规划”),最后使用轨迹控制器一次性执行(“行动”)。规划逻辑插件的自定义实现支持将通用事件映射到架构提供的各种动作上,例如“启动全局规划”、“停止轨迹执行”或“切换到局部规划器的约束x”。原创 2024-08-18 22:46:22 · 561 阅读 · 0 评论 -
四、使用MoveGroup C++接口——节点move_group(五)
在机器人运动控制领域,MoveIt 2作为一个先进的框架,为开发者提供了一套强大的工具和接口。move_group 节点,作为MoveIt 2中的一个核心ROS 2节点,扮演着至关重要的角色。它不仅简化了运动规划和执行的过程,而且通过其高度集成的架构,为用户提供了与机器人进行交互的高级接口。本文将详细介绍move_group 节点的架构、功能以及如何通过ROS 2 API与之交互,进而实现机器人运动的精确控制。1.move_group介绍。原创 2024-08-19 09:46:29 · 537 阅读 · 0 评论