MoveIt与RobotStudio

本文对比了MoveIt与RobotStudio的功能与应用,MoveIt专长于运动规划,而RobotStudio则侧重于路径仿真实验。文章还介绍了MoveIt中的五种运动规划器及其参数配置的重要性,并提及了noether刀具路径规划包在工业过程中的应用,以及ROS与ABB机器人控制器接口的相关细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MoveIt与RobotStudio

MoveIt主要用于运动规划,RobotStudio主要用于对规划后的路径进行仿真。两者用途不同,不具有相互替代性。 使用MoveIt可以规划出避免碰撞的笛卡尔路径,但是对于某一个路径点,MoveIt选择的轴配置与RobotStudio选择的轴配置可能会不一样(不清楚有没有办法可以避免),这样就可能存在MoveIt避障规划的路径,在RobotStudio下仿真时出现机械臂连杆与周围环境(比如筛盘,高的零件)碰撞的问题。  

MoveIt进行运动规划可以认为是事前避免(碰撞、不可达、奇异点等)

RobotStudio仿真后矫正,可以认为是事后修改(碰撞,不可达,奇异点等)。

MoveIt进行运动规划有很大可能是可以用的(需要ABB机器人控制器关闭轴配置功能)。MoveIt整合了最新的研究成果,世界各地名校的科研人员和各地工程师一起来迭代这款软件,做工程还是应该尽可能选这类软件。

二、MoveIt 圆弧设置接口

MoveIt中目前包含了5中运动规划器或者优化器。

  1. Open Motion Planning Library (OMPL)
  2. Pilz Industrial Motion Planner
  3. Stochastic Trajectory Optimization for Motion Planning (STOMP)
  4. Search-Based Planning Library (SBPL)
  5. Covariant Hamiltonian Optimization for Motion Planning (CHOMP)

  1. 除了pilz运动规划器没有明确的包含参数的构造函数之外,其他四种规划器(下图仅以CHOMP源码为例)在初始化时都需要输入规划或者优化参数。我不确定这些参数能否满足我们的圆弧调整需要。 对于这类规划算法的参数,调参是一项很重要的工作。调参也就是怎么配置参数能够满足我们的工程需要。  Pilz虽然没有参数设置,但是可以看到它的源码目录下包含轨迹生成圆弧,轨迹生产直线的类。具体怎么使用,能达到什么效果需要我们实践才能知道。

Pilz Industrial Motion Planner

CHOMP 运动规划器 具有参数设置接口

三、noether刀具路径规划(ROS-Industrial)

这个ROS-I包中包含了Advancing Front Meshing Algorithm,可以用于网格表面等值线生成。Add Advancing Front Meshing Algorithm to PCL · Issue #1946 · PointCloudLibrary/pcl (github.com)

该软件包依赖于 PCL 1.9.1+ 和 VTK 7.1+。 如果您使用的是 Ubuntu 系统版本 20.04+ (ROS Noetic/Foxy),您应该已经拥有这些并且可以跳到构建说明。 否则继续安装自定义 PCL 和 VTK 版本。

noether涵盖了一个框架的开发,用于从 3D 几何形状自动生成用于工业过程(例如喷漆或打磨)的高效刀具路径规划。 这项工作被组织成三个主要的软件模块。 第一个模块分析 3D 数据以提取对所需过程而言显着的特征。 第二个模块处理这些特征以生成刀具路径,以最佳地对各个特征执行过程。 最后一个模块,序列规划,确定处理整个零件的最佳顺序。

四、ROS与ABB机器人控制器接口

可以通过下面的接口实现与控制器的数据交互。

ABB机器人驱动接口:

ros-industrial/abb_robot_driver_interfaces: ROS message and service definitions for a ROS driver for ABB robots (github.com)

请注意,所包含的软件包尚未产品化,学术界是目标受众。

软件包按“原样”提供,因此只能获得有限的支持。

### 使用MoveIt思灵机械臂集成 为了实现MoveIt思灵(Siling)机械臂的成功集成,需遵循一系列配置流程以确保两者能够协同工作。此过程涉及创建适配于特定硬件的工作环境以及利用MoveIt的功能来执行路径规划和其他高级操作。 #### 准备工作空间并安装必要软件包 建立专门用于开发和测试的工作目录是第一步,在终端中输入命令`mkdir -p ~/siling_ws/src`可完成此项任务[^4]。接着,获取支持该品牌机器人的ROS节点及其他资源文件,这通常意味着要克隆官方提供的Git仓库到上述新建的源代码位置下;对于某些型号来说,可能还需要额外下载对应的固件或者驱动程序[^2]。 #### 导入URDF模型 URDF(统一机器人描述格式)是用来定义物理属性如关节类型、链接尺寸等的重要组成部分之一。针对思灵机械臂而言,应当先准备好精确反映其结构特性的XML文档,并将其放置在适当的地方以便后续处理工具读取。如果制造商提供了现成版本,则可以直接采用;反之则考虑借助第三方建模工具比如SolidWorks来进行转换[^3]。 #### 设置MoveIt配置向导 启动MoveIt Setup Assistant图形界面应用程序之后,加载之前准备好的URDF文件作为基础数据源。在此基础上按照提示逐步完善各项参数设定,包括但不限于碰撞检测范围划定、末端效应器指定等方面的内容。值得注意的是,当涉及到具体品牌的特性设置时,务必参照产品手册中的说明进行调整优化[^1]。 #### 编写自定义动作脚本 一旦完成了前期准备工作,就可以着手编写Python/C++形式的动作控制逻辑了。下面给出了一段简单的例子演示如何调用MoveGroupInterface API发送目标姿态给定指令: ```cpp // C++ example to control a robotic arm using MoveIt and ROS. #include <moveit/move_group_interface/move_group_interface.h> int main(int argc, char **argv){ ros::init(argc, argv, "motion_planning"); moveit::planning_interface::MoveGroupInterface group("manipulator"); geometry_msgs::Pose target_pose; // Set the desired pose for end-effector here... group.setPoseTarget(target_pose); auto success = (bool)group.move(); } ``` 以上代码片段展示了怎样初始化一个名为“manipulator”的控制器实例,并为其分配期望达到的空间坐标系下的位姿信息。最后尝试触发一次完整的移动序列直至结束状态被确认为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值