睿尔曼超轻量仿人机械臂-ROS第一篇 启动机械臂的Moveit

2023-11-04 07:30

本文主要是介绍睿尔曼超轻量仿人机械臂-ROS第一篇 启动机械臂的Moveit,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文主要讲述了睿尔曼六轴机械臂在ROS中的功能包配置,及如何根据文件启动Moveit做仿真。文中涉及的机械臂ROS包已存放网盘,链接如下:

链接:https://pan.baidu.com/s/1LC0SsoRJ-HOHcFXkN0I1cQ?pwd=xk8f 
提取码:xk8f

目录

1. 机械臂ROS包介绍

2. 使用前环境准备

3. 源码的安装编译

4.在rviz中显示机械臂模型

4.1 机器人描述功能包

4.2在rviz中显示模型

5.启动MoveIt!

5.1 MoveIt!简介

5.2安装MoveIt!

5.3运行RM65-B机械臂的MoveIt!演示demo

5.3.1 拖动规划

5.3.2 选择目标姿态规划


1. 机械臂ROS包介绍

序号

名称

作用

1

rm_65_description

RM65-B机器人描述功能包,其中有创建好的机器人模型和配置文件

rm_65.urdf.xacro:不带手爪的RM65-B机器人模型文件

2

rm_65_moveit_config

使用Setup Assistant工具根据机械臂URDF模型rm_65.urdf.xacro创建生成的一个MoveIt!配置的功能包,它包含了大部分MoveIt!启动所需的配置文件和启动文件,以及包含一个简单的演示demo

3

rm_gazebo

gazebo仿真机器人所用到参数和文件配置

4

rm_65_demo

MoveIt!编程示例,包括场景规划、避障规划和pick and place

5

rm_msgs

RM65-B所用到的所有控制消息和状态消息

6

rm_control

机器人控制器,将Moveit规划的机械臂轨迹,通过三次样条插值细分,按照20ms的控制周期发给rm_driver节点,周期可调,但是应大于10ms

7

rm_driver

(1)与机械臂通过以太网口建立socket连接,机器人IP地址:192.168.1.18,请保证上位机的IP在同一局域网内,使用ROS控制机械臂,请务必确认机械臂处于以太网口通信模式;                                                                         (2)订阅各topic数据,更新RVIZ内机械臂各关节角度

8

rm_bringup

启动机器人,运行对应的launch文件后,可自动运行rm_driver,rm_control和moveit交互RVIZ界面,直接在仿真界面中拖拽机器人即可控制真实机器人运动

2. 使用前环境准备

系统:Ubuntu 18.04或Ubuntu 20.04

ROS版本:melodic或noetic

其余软件:Moveit!已安装;Gazebo可用;ros_control插件可用

3. 源码的安装编译

        新建名称为ws_rmrobot的工作空间,执行如下命令:

mkdir -p ~/ws_rmrobot/src
cd ~/ws_rmrobot/src/

        然后将提供的rm_robot源码包拷贝到ws_rmrobot工作空间的src目录下或将源码包拷贝到自己创建的其他工作空间的src目录下:

图3-1 将rm_robot源码包拷贝到ws_rmrobot/src下 

        通过rosdep安装源码包依赖,执行以下命令(若为ROS Noetic版本则将命令中的melodic改为noetic):

rosdep install -y --from-paths . --ignore-src --rosdistro melodic -r

        使用catkin工具配置工作空间并进行编译,执行如下命令:

cd ~/ws_rmrobot
catkin init
catkin build rm_msgs
catkin build

        编译完成之后如下图所示:

图3-2 rm_robot源码包编译成功 

4.在rviz中显示机械臂模型

4.1 机器人描述功能包

        在rm_robot源码包中包含了rm_65_description功能包,其中有创建好的机器人模型和配置文件。

        rm_65_description功能包中主要包含urdf、meshes、launch和config四个文件夹。

  • urdf:用于存放机器人模型的URDF或xacro文件。
  • meshes:用于放置URDF中引用的模型渲染文件。
  • launch:用于存放相关启动文件。
  • config:用于保存rviz的配置文件。

4.2在rviz中显示模型

        在rm_65_description功能包launch文件夹中已经创建用于显示rm_65模型的launch文件rm_65_description/launch/display_rm65.launch。

        打开终端进入工作空间执行以下命令运行该launch文件:

cd ~/ws_rmrobot
source devel/setup.bash
roslaunch rm_65_description display.launch

        如果一切正常,可以在打开的rviz中看到如图4-1所示的机器人模型。

图4-1 在rviz中显示RM65-B机械臂模型 

        运行成功后,不仅启动了rviz,而且出现了一个名为“joint_state_publisher”的UI。这是因为我们在启动文件中启动了joint_state_publisher节点,该节点可以发布每个joint(除fixed类型)的状态,而且可以通过UI对joint进行控制。所以在控制界面中用鼠标滑动控制条,rviz中对应的机械臂关节就会转动。

        如果rviz中未显示模型,则手动修改“Fixed Frame”为“base_link”,然后点击左侧下方的Add按钮在弹出的界面中找到“RobotModel”添加即可,如图4-2~4-3所示:

图4-2 修改FixedFrame为base_link 

图4-3 rviz中添加RobotModel 

5.启动MoveIt!

5.1 MoveIt!简介

        在实现机械臂的自主抓取中机械臂的运动规划是其中最重要的一部分,其中包含运动学正逆解算、碰撞检测、环境感知和动作规划等。常见机械臂的运动规划大都采用的是ROS系统提供的MoveIt! 规划。

        MoveIt! 是ROS系统中集合了与移动操作相关的组件包的运动规划库。它包含了运动规划中所需要的大部分功能,同时其提供友好的配置和调试界面便于完成机器人在ROS系统上的初始化及调试。

        官方网站:MoveIt Motion Planning Framework,上边有MoveIt!的教程和API说明。

5.2安装MoveIt!

        MoveIt!需要安装才能使用,如果未安装,请执行如下命令进行安装(若为ROS Noetic版本则将命令中的melodic改为noetic)。

sudo apt install ros-melodic-moveit
sudo apt install ros-melodic-moveit-*

5.3运行RM65-B机械臂的MoveIt!演示demo

        在rm_robot源码包中包含了rm_65_moveit_config功能包,它是使用Setup Assistant工具根据机械臂URDF模型创建生成的一个MoveIt!配置的功能包,它包含了大部分MoveIt!启动所需的配置文件和启动文件,以及包含一个简单的演示demo。

        打开终端进入工作空间执行以下命令运行RM65-B机械臂的MoveIt!演示demo:

cd ~/ws_rmrobot
source devel/setup.bash
roslaunch rm_65_moveit_config demo.launch

启动成功后,可以看到如图5-1所示的界面。

图5-1 MoveIt! demo的启动界面 

5.3.1 拖动规划

        拖动机械臂的前端,可以改变机械臂的姿态。然后在Planning标签页中点击“Plan & Execute”按钮,MoveIt!开始规划路径,并且控制机器人向目标位置移动,从右侧界面可以看到机器人运动的全部过程(见图5-2)。

图5-2 拖动规划的运动效果 

5.3.2 选择目标姿态规划

        在Planning标签页中点击Goal State的下拉列表可以选择机械臂的目标姿态,然后点击“Plan & Execute”按钮,MoveIt!开始规划路径,并且控制机器人向目标位置移动,从右侧界面可以看到机器人运动的全部过程(见图5-3)。

图5-3 选择目标姿态规划的运动效果 

这篇关于睿尔曼超轻量仿人机械臂-ROS第一篇 启动机械臂的Moveit的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/344209

相关文章

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test问题

《解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException:org.junit.Test问题》:本文主要介绍解决tomcat启动时报Junit相... 目录tomcat启动时报Junit相关错误Java.lang.ClassNotFoundException

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe