睿尔曼超轻量仿人机械臂-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

相关文章

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

springboot启动流程过程

《springboot启动流程过程》SpringBoot简化了Spring框架的使用,通过创建`SpringApplication`对象,判断应用类型并设置初始化器和监听器,在`run`方法中,读取配... 目录springboot启动流程springboot程序启动入口1.创建SpringApplicat

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne