MoveIt与RobotStudio

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

一、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 Gazebo 进行连接,通常是为了在 Gazebo 的仿真环境中进行机器人运动规划和控制。以下是实现这一目标的主要步骤和注意事项。 ### 1. 机器人模型准备 在进行 MoveIt Gazebo 联合仿真之前,需要确保机器人模型已经准备好。通常使用 URDF(Unified Robot Description Format)或 XACRO 文件来描述机器人模型。模型中需要包含以下内容: - **关节(Joint)**:定义机器人各个部分之间的连接关系。 - **连杆(Link)**:描述机器人的物理结构。 - **惯性参数(Inertial)**:用于 Gazebo 中的物理仿真。 - **碰撞模型(Collision)**:定义机器人环境的交互方式。 - **视觉模型(Visual)**:定义机器人在仿真中的外观。 ### 2. ROS 控制器配置 在 Gazebo 中,机器人需要通过 `ros_control` 接口 MoveIt 进行通信。为此,需要配置以下内容: - **控制器配置文件**:通常为 `controllers.yaml` 或 `controllers_gazebo.yaml`,定义了控制器的类型和参数。例如: ```yaml arm_controller: type: position_controllers/JointTrajectoryController joints: - joint1 - joint2 - joint3 - joint4 - joint5 - joint6 constraints: goal_time: 0.6 stopped_velocity_tolerance: 0.02 state_publish_rate: 50 action_monitor_rate: 10 ``` - **控制器管理器(Controller Manager)**:在 Gazebo 启动时加载 `ros_control` 插件,并加载上述控制器配置文件。 ### 3. 启动 Gazebo 和 MoveIt 为了同时启动 Gazebo 和 MoveIt,可以编写一个集成的 `launch` 文件。以下是一个典型的 `robot_bringup_moveit.launch` 文件示例: ```xml <launch> <!-- 启动 Gazebo 仿真环境 --> <include file="$(find myrobot_gazebo)/launch/robot_world.launch" /> <!-- 加载机器人状态控制器 --> <include file="$(find myrobot_gazebo)/launch/robot_gazebo_states.launch" /> <!-- 加载轨迹控制器 --> <include file="$(find myrobot_gazebo)/launch/robot_trajectory_controller.launch" /> <!-- 启动 MoveIt 规划执行 --> <include file="$(find myrobot_moveit_config)/launch/moveit_planning_execution.launch" /> </launch> ``` ### 4. 解决常见问题 在集成过程中可能会遇到一些常见问题,以下是解决方案: - **控制器类型不存在**:如果出现类似 “Could not load controller ‘arm_controller’ because controller type ‘position_controllers/JointTrajectoryController’ does not exist.” 的错误,可以通过安装 `joint-trajectory-controller` 包来解决: ```bash sudo apt-get install ros-melodic-joint-trajectory-controller ``` - **Gazebo 进程崩溃**:如果 Gazebo 启动失败并提示 “[gazebo-1] process has died”,可能是由于图形驱动问题。可以尝试在 `~/.bashrc` 中添加以下环境变量: ```bash export SVGA_VGPU10=0 ``` - **控制器无法识别关节**:如果出现 “Unable to identify any set of controllers that can actuate the specified joints” 错误,确保 `controllers.yaml` 和 `MoveIt` 的 `controllers_manager` 配置一致,尤其是控制器名称和关节名称。 ### 5. 运动规划仿真 一旦 Gazebo 和 MoveIt 成功连接,可以通过 MoveIt 的运动规划接口(如 Rviz 中的 `MotionPlanning` 插件)进行路径规划。MoveIt 会将规划好的轨迹发送给 Gazebo 中的控制器,从而驱动机器人在仿真环境中执行动作(如走直线、绕八字等)。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值