【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包

【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包

文章目录

  • 【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包
    • 1.确保你已经安装了moveit2环境
    • 2.配置机械臂功能包
    • Reference

环境信息:

  • ubuntu 22.04
  • ros2 humble
  • moveit2

1.确保你已经安装了moveit2环境

如果没有配置moveit2环境的,可以参考这篇博客:Ubuntu22.04 + ROS2 Humble配置Moveit2环境

可以使用以下的命令来再次安装,确保自己的环境是正确的

sudo apt install  ros-humble-moveit ros-humble-moveit-setup-assistant -y

2.配置机械臂功能包

首先,我们可以新建一个功能空间命名为arms_ws,创建一个panda_robot作为功能包

mkdir -p arms_ws/src
cd arms_ws/src
mkdir panda_robot
cd ..
cd ..

如果你安装过moveit2_tutorials,你可以在你的功能包中找到这个文件夹.../your_workspace/src/moveit_resources/panda_description ,拷贝这个文件夹panda_descriptionarms_ws/src/panda_robot中。如果你没有使用过moveit2_tutorials,你可以在这里找到这个文件夹:https://github.com/ros-planning/moveit_resources/tree/ros2/panda_description,下载这个文件夹然后放置在arms_ws/src/panda_robot中。放置完毕后记得进行构建,然后source

colcon build
source install/setup.bash

这里一定要记得source,不然后面会导致找不到.urdf文件。

然后我们就可以启动moveit_setup_assistant来进行配置了,这里有两种启动方式,任选一种即可:

ros2 launch moveit_setup_assistant setup_assistant.launch.py
ros2 run moveit_setup_assistant moveit_setup_assistant

启动后的界面如下:

Image

选择Create New Moveit Configuration Package,创建一个新的moveit配置功能包。

然后选中机械臂的描述文件,这里应该选择panda_description/urdf/panda.urdf这个文件,然后选择Load Files,就可以看到右边加载出来了机械臂的模型。

Image

然后我们配置Self-Collisions,这个是配置机械臂关节碰撞矩阵的,我们点击Generate Collision Matrix既可自动生成。

Image

然后我们配置Virtual Joints,这是用于配置虚拟的关节,用于指定我们将机械臂放置在哪里,我们这里直接将机械臂放置在world坐标系中,取名为virtual_joints

Image

然后我们需要添加机械臂的Planning Groups,规划组是用来规划机械臂运动的,这里我们主要分为两个组,一个是我们的机械臂的各个关节部分panda_arm,另一个是我们的夹具部分hand,首先添加panda_arm组,动力学求解器Kinematic Solver选择kdl_kinematics_plugin/KDLKinematicsPlugin,然后默认的规划器Group Default Planner随便选就行。然后点击Add Joints为这个规划组添加关节。

Image

panda_arm的关节: 按住shift可以进行多选,然后点击>进行添加

Image

再添加另一个hand规划组,hand规划组不需要选择动力学求解器和默认规划器,直接选择Add Joints即可

Image

hand规划组:

Image

定义好的规划组如下所示:

Image

然后我们定义Robot Poses,为每个规划组定义一些预设的姿态,首先我们为panda_arm定义一个home位姿态,这个姿态可以随意选择,我的设置如下:

Image

然后我们定义hand规划组的预设位姿,首先需要选中已经给panda_arm预设好的位姿,然后点击Add Pose

Image

然后按照类似的方式,我们给hand规划组设定两个位姿,分别为openclose,如下所示:

Image
Image

最终我们预设了三个位姿,如下所示:

Image

然后我们定义我们的End Effectors,末端执行机构,如果没有末端执行机构这一步可以跳过,末端执行机构的规划组为hand,然后默认连接的parent_linkpanda_link8

Image

然后配置ros2_control URDF Modifications,这里使用默认,然后直接Add interfaces即可。

Image

然后我们配置ROS 2 Controllers,为每个规划组配置控制器,我们点击Auto Add JointTrajectoryController Controllers For Each Planning Group即可,然后修改hand组的控制器如下:

Image

同理,配置Moveit Controllers

Image

然后配置Launch Files,这个使用默认配置即可

Image

然后配置一下作者的信息

Image

最后我们就可以生成package了,我们需要选择一个生成的位置,建议在src/panda_robot文件路径下放置一个文件夹panda_configure用于存放我们的配置文件,然后选择生成

Image

生成完毕后的文件目录应该为:

.
├── build
├── install
├── log
└── src└── panda_robot├── panda_configure│   ├── CMakeLists.txt│   ├── config│   │   ├── initial_positions.yaml│   │   ├── joint_limits.yaml│   │   ├── kinematics.yaml│   │   ├── moveit_controllers.yaml│   │   ├── moveit.rviz│   │   ├── panda.ros2_control.xacro│   │   ├── panda.srdf│   │   ├── panda.urdf.xacro│   │   ├── pilz_cartesian_limits.yaml│   │   ├── ros2_controllers.yaml│   │   └── sensors_3d.yaml│   ├── launch│   │   ├── demo.launch.py│   │   ├── move_group.launch.py│   │   ├── moveit_rviz.launch.py│   │   ├── rsp.launch.py│   │   ├── setup_assistant.launch.py│   │   ├── spawn_controllers.launch.py│   │   ├── static_virtual_joint_tfs.launch.py│   │   └── warehouse_db.launch.py│   └── package.xml└── panda_description97 directories, 291 files

其中其他文件夹的内容就省略了。然后我们就能对这个功能包进行构建

colcon build --packages-select panda_configure
source install/setup.bash

然后直接运行我们刚才配置好的包

ros2 launch panda_configure demo.launch.py 

可以实现一些运到到预设位姿的功能

Image
Image

Reference

[1]MoveIt Setup Assistant
[2]动手学Moveit2|使用配置助手创建自己机械臂的功能包
[3]【学习笔记】ROS2纯小白 - MoveIt! (humble) 引入新的机器人模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/650337.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

固态硬盘分区详细指南

引言:随着存储技术的不断进步,固态硬盘(SSD)成为近些年电脑存储的主流选择之一,其性能和耐用性都有显著的优势。不过,对于很多用户来说,如何合理地使用和管理固态硬盘依然存在疑惑。本文将详细介…

为什么选择誉天云服务HCIE课程

誉天云服务HCIE课程亮点: 深度融合云原生 包含原生K8s和docker内容,引入isito和ASM功能进行微服务治理,结合Linux功底设计云上性能优化,和架构设计。师资力量强大 课程由两名5HCIE认证讲师授课,认证辅导由已通过HCIE-C…

Perfect Clear WorkBench 智能修图黑科技,你尽管拍剩下的交给我(v4.6.0.2653)

01 Perfect Clear Perfect Clear WorkBench是EyeQlmaging推出的先进图片处理工具,旨在自动优化和简化图像校正。它通过智能技术提高图片的清晰度、颜色保真度,并增强视觉效果,确保高品质输出。 它的核心优势是利用高级算法和AI技术&#xff…

『精』Sass 核心程序设计指南(这一篇就够了!)

『精』Sass 核心程序设计指南(这一篇就够了!) 文章目录 『精』Sass 核心程序设计指南(这一篇就够了!)一、前言二、基本语句2.1 变量声明2.2 数据类型2.2.1 数字2.2.2 字符串2.2.3 颜色2.2.4 列表/数组2.2.5…

阿斯达年代记三强争霸服务器没反应 安装中发生错误的解决方法

阿斯达年代记三强争霸服务器没反应 安装中发生错误的解决方法 最近刚上线的由影视剧改编的游戏《阿斯达年代记三强争霸》可谓是在游戏圈内引起了轩然大波,这是一款由网石集团与龙工作室联合开发的MMORPG游戏,游戏背景设定在一个名为阿斯大陆的区域&…

高可靠性部署系列(2)--- IPS双机热备

高可靠性部署系列(2)--- IPS双机热备 前言网络拓扑设备选型网络规划组网需求配置思路操作步骤结果验证前言 近期有读者留言:“因华为数通模拟器仅能支持USG6000V的防火墙,无法支持别的安全产品,导致很多网络安全的方案和产品功能无法模拟练习,是否有真机操作的实验或者案…

python flask 假死情况处理+https证书添加

前言 当使用flask编写了后台程序跑在服务器端的时候,有时候虽然后台中显示在运行,但是页面无法访问,出现这个情况可以使用如下方法修改代码,进而防止假死,另外记录下flask下证书的添加。 假死处理 出现进程存在&…

大数据—数据采集DataX

一、DataX介绍 官网: DataX/introduction.md at master alibaba/DataX GitHub DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。 DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、…

一条龙-T检验+绘制boxplot

1.输入文件: 2.代码 #title:boxplot-5utr-cds-3tr-ATCG的百分比分布和T检验_封装函数版 rm(listls(allTRUE)) setwd("E:/R/Rscripts/5UTR_ABD_TE") library(tidyverse) library(ggplot2) # library(RColorBrewer) library(patchwork) library(dplyr) l…

深圳厂房降温水帘墙

深圳厂房降温水帘墙的安装是一个相对复杂的过程,需要综合考虑多个因素,包括安装位置、设备选择、安装步骤以及后续维护等。以下是一个大致的安装流程: 一、安装前的考虑因素 安装位置:根据厂房的空间布局和空气流动特点&#xf…

ContextMenuStrip内容菜单源对象赋值学习笔记(含源码)

一、前言 MetroTileItem属于第三方控件,无法定义ContextMenuStrip属性 想实现某子项点击菜单时,与源控件(按钮metroTileItem)的某值对应,用于动态控制按钮的状态或方法 1.1 效果 二、实现方法 2.1 方法1 (代码,说明见注释) private void metroTileItem_MouseDown(o…

java版微信小程序商城 免 费 搭 建 java版直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销

涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …