MoveIt 机械臂运动 学习 01-MoveIt 初次见面

ROS中有针对机器人进行移动操作的一套工具——MoveIt!。在主页http://moveit.ros.org 上
包含使用MoveIt!的文档、教程、安装说明以及多种机械臂(或机器人)的示例演示,如一些
移动操作任务,包括抓握、拾取和放置,或简单的逆向运动学的运动规划。

这个库包含一个快速的逆运动学解算器(作为运动规划单元的一部分)、先进的操作算
法、三维感知抓握(通常以点云的形式)、运动学、控制和导航等功能。除了后台功能,它还
提供了一个易于使用的图形用户界面(GUI)通过MoveIt!和rviz插件配置新的机械臂,使用户
能以直观的方式进行运动规划任务的开发。

MoveIt!体系结构

MoveIt!的体系结构如图1所示,内容摘自官方文档的概念部分(http://moveit.ros.org/
documentation/concepts/ )。在这里,我们简要介绍主要概念。若想安装MoveIt!,只需要运行这个命令:

sudo apt-get install ros-<distro>-moveit

其中, 是您正在使用的 ROS 版本的名称。例如,如果您正在使用 ROS Kinetic,则应将 替换为“kinetic”。

ROS 版本 查看

rosversion  -d

在这里插入图片描述

sudo apt-get install ros-noetic-moveit-full

另外,也可以通过在它相应的工作空间运行下面的命令来安装本章附带代码的所有依赖

rosdep install --from-paths src -iy

如果上面的找不到包可以用下面的这个方法

复制以下指令到命令行,一键进行配置安装

wget -O $HOME/moveit1_install.sh https://raw.githubusercontent.com/auromix/ros-install-one-click/main/moveit1_install.sh && sudo chmod +x $HOME/moveit1_install.sh && sudo bash $HOME/moveit1_install.sh && rm $HOME/moveit1_install.sh

等待下载包并安装,安装好后提示是否下载tutorial code ,根据个人需要是否决定下载
在这里插入图片描述
我选 输入y 继续

在这里插入图片描述
发现这里有个问题,
所以,只要执行下面这条指令就可以顺利安装ROS Noetic版本的rosdep了

然后,使用以下两条指令,初始化及更新一下rosdep就可以正常使用了

sudo rosdep init

在这里插入图片描述

rosdep update

这个得看你网络情况了,不行就多试几次,或者你连开外网vpn

MoveIt!的体系结构框图

在这里插入图片描述

体系结构的中心是move_group单元。其主要思想是,首先需要定义由关节和其他元件构成
的群组(group),然后使用运动规划算法执行移动操作。这类算法考虑与物体交互的场景以及
该群组关节的特性。

群组使用标准的ROS工具和定义语言进行定义,如YAML、URDF和SDF等。简而言之,我
们必须对关节进行定义,它们是一个群组的部分并包含关节约束。同样,可定义末端执行器的
工具,如一个夹持器和感知传感器。机器人必须开放JointTrajectoryAction控制器,从而使运动
规划的输出可以在机器人的硬件(或仿真器)规划执行。为了监控执行情况,需要通过机器人状态发布者发布/joint_states所有内容都由ROS控制并由特定传感器驱动发布

需要注意的是MoveIt!提供了一个图形用户界面向导去定义给定的机器人关节群组,可以通过下面的命令直接调用:

roslaunch moveit setup assistant setup assistant.launch

当move_group配置正确后,就可以和它连接通信。MoveIt!提供了C++和Python的应用程
序接口(API)以及一个无缝集成的rviz插件来实现此功能,使我们可以向机器人发送运动目
标,规划任务并发送给机器人执行等,如下图所示:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙4.0真机调试踩坑

传言鸿蒙next版本将不再兼容Android&#xff0c;所以领导安排做下鸿蒙开发的调研工作。 鸿蒙开发指南其实已经非常的友好了。但是鸿蒙开发本身还是有些坑要踩&#xff0c;这篇文章主要讲了鸿蒙真机调试问题。 目前手上的真机为华为 nova6&#xff0c;处理器为麒麟990.鸿蒙系统…

AI换脸的一种技术实施例

刚刚看一个帖子的时候发现了AI识别中一个可以利用到其它场景的的一个通用处理步骤&#xff1a;人脸矫正。 人脸识别过程&#xff1a; 1.首先识别到关键的人脸部分&#xff0c;经过一个粗筛过程&#xff0c;把目标物的脸部图样先抓出来。 2.然后&#xff0c;因为人脸的水平&…

vue3基础学习(上)

##以前怎么玩的? ###MVC Model:Bean View:视图 Controller ##vue的ref reactive ref:必须是简单类型 reactive:必须不能是简单类型 ###创建一个Vue项目 npm init vuelatest ###生命周期 ###setup相关 ####Vue2的一些写法 -- options API ####Vue3的写法 组合式API Vu…

好用且强大——JNPF永远的神

一款开源且强大的工具 风流数年&#xff0c;只看今朝&#xff0c;Linux 让我们看到了开源驱动下的生产力&#xff0c;其实低代码和它一样&#xff0c;都是提高效率、降低成本的工具。 近 10 年间&#xff0c;JNPF 低代码平台如火如荼的发展起来&#xff0c;堪称黑马也不为过。这…

借助拧紧曲线高效管理螺栓装配防错——SunTorque智能扭矩系统

拧紧曲线作为拧紧质量的“晴雨表”&#xff0c;在拧紧过程中&#xff0c;能够实时探知到拧紧状态是否存在异常&#xff0c;并根据曲线特质推测出拧紧过程中遇到了什么样的问题&#xff0c;今天SunTorque智能扭矩系统带您了解拧紧曲线在螺栓装配防错管理中如何发挥作用。 合格的…

网络和Linux网络_2(套接字编程)socket+UDP网络通信代码

目录 1. 预备知识 1.1 源IP地址和目的IP地址 1.2 端口号port和套接字socket 1.3 网络通信的本质 1.4 TCP和UDP协议 1.5 网络字节序 2. socket套接字 2.1 socket创建套接字 2.2 bind绑定 2.3 sockaddr结构体 3. UDP网络编程 3.1 server的初始化服务器 3.2 server的…

Java小游戏之——贪吃蛇

今天详细讲解写贪吃蛇的遇到的问题 代码&#xff1a; Main类 GrameStart类 GamePanel类 启动main方法 在写贪吃蛇的时候&#xff0c;我接触到了两个新东西&#xff1a; 1.定时器Timer类。 2.paint&#xff08;&#xff09;绘图方法。第一次出现在java.awt.Component类中&…

云性能监控的五大重要性

在当今数字化时代&#xff0c;企业越来越依赖云服务来支持其IT基础设施和业务运营。为了确保这些云服务的稳定性和性能&#xff0c;云性能监控变得至关重要。本文将探讨云性能监控的重要性。 一、实时可见性 云性能监控提供了对云基础设施和应用程序性能的实时可见性。这意味着…

探索arkui(2)--- 布局(列表)--- 1(列表数据的展示)

前端开发布局是指前端开发人员宣布他们开发的新网站或应用程序正式上线的活动。在前端开发布局中&#xff0c;开发人员通常会展示新网站或应用程序的设计、功能和用户体验&#xff0c;并向公众宣传新产品的特点和优势。前端开发布局通常是前端开发领域的重要事件&#xff0c;吸…

【LeetCode刷题-滑动窗口】--487.最大连续1的个数II

487.最大连续1的个数II 方法&#xff1a;滑动窗口 维护一个区间&#xff0c;使得该区间中只包含一个0 class Solution {public int findMaxConsecutiveOnes(int[] nums) {int n nums.length;int left 0,right 0,sum 0;int zero 0; //计算0的个数while(right < n){if(…

基于JavaWeb+SpringBoot+Vue房屋租赁系统微信小程序系统的设计和实现

基于JavaWebSpringBootVue房屋租赁系统微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 21世纪是信息的时代&#xff0c;是网络的时代&#xff0c;进入信息社会高速…

(C++)把字符串转换成整数

把字符串转换成整数_牛客题霸_牛客网 愿所有美好如期而遇 思路 看到这个题目我们首先应该想到的就是去处理第一个字符&#xff0c;但是第一个字符也可能是数字字符&#xff0c;所以我们需要对他单独处理&#xff0c;如果他不符合条件&#xff0c;直接return&#xff0c;符合条…

java实现钉钉机器人消息推送

项目开发中需要用到钉钉机器人发送任务状态&#xff0c;本来想单独做一个功能就好&#xff0c;但是想着公司用到钉钉机器人发送项目挺多的。所以把这个钉钉机器人抽离成一个组件发布到企业maven仓库&#xff0c;这样可以给其他同事用提高工作效率。 1.目录结构 2.用抽象类&…

C语言加密字符(ZZULIOJ1064:加密字符)

题目描述 从键盘输入一批字符&#xff0c;以结束&#xff0c;按要求加密并输出。 输入&#xff1a;从键盘输入一批字符&#xff0c;占一行&#xff0c;以结束。 输出&#xff1a;输出占一行 加密规则: 1&#xff09;所有字母均转换为小写。 2&#xff09;若是字母a到y&#xff…

系列七、JVM的内存结构【堆(Heap)】

一、概述 一个JVM实例只存在一个堆内存&#xff0c;堆内存的大小是可以手动调节的。类加载器读取了类文件后&#xff0c;需要把类、方法、常变量放到堆内存中&#xff0c;保存所有引用类型的真实信息&#xff0c;以方便执行器执行&#xff0c;堆内存分为三个部分&#xff0c;即…

EtherCAT从站EEPROM组成信息详解(3):字16-63邮箱、EEPROM信息

0 工具准备 1.EtherCAT从站EEPROM数据&#xff08;本文使用DE3E-556步进电机驱动器&#xff09;1 字10-63邮箱、EEPROM信息 1.1 字10-63组成规范 字10-63虽然包含的空间区域很大&#xff0c;但实际上仅包含引导状态下邮箱配置、标准邮箱配置、EEPROM大小、执行的SII标准版本…

相机突然断电,保存的DAT视频文件如何修复

3-7 本文主要解决因相机突然断电导致拍摄的视频文件损坏的问题。 在平常使用相机拍摄视频&#xff0c;比如用单反相机、无人机拍摄视频的时候&#xff0c;如果电池突然断电&#xff0c;或者突然炸机了&#xff0c;就非常有可能会得到一个损坏的视频文件&#xff0c;比如会产生…

网络安全(黑客技术)—高效自学

前言 前几天发布了一篇 网络安全&#xff08;黑客&#xff09;自学 没想到收到了许多人的私信想要学习网安黑客技术&#xff01;却不知道从哪里开始学起&#xff01;怎么学 今天给大家分享一下&#xff0c;很多人上来就说想学习黑客&#xff0c;但是连方向都没搞清楚就开始学习…

udp多点通信-广播-组播

单播 每次只有两个实体相互通信&#xff0c;发送端和接收端都是唯一确定的。 广播 主机之间的一对多的通信所有的主机都可以接收到广播消息(不管你是否需要)广播禁止穿过路由器&#xff08;只能做局域网通信&#xff09;只有UDP可以广播广播地址 有效网络号全是1的主机号 192.1…