机器人控制系统(二)——整体设计

19 篇文章 69 订阅
6 篇文章 9 订阅

一、简述

机器人控制系统是一个复杂设计,针对不同功能目标有不同的开发路线,若想开发一个通用的控制系统难度会非常高,因此确定目标需求非常重要,这里所述的目标需求有两种,一种为开发基本的控制系统再根据实际条件进行功能添加开发,另外一种为针对特殊情况开发专门的控制系统。

目标需求设计好后,根据要求可以搭建简单的框架,对于ROS开发来说,一个好的框架是开发的第一步,也是最重要的一步,值得花费大量的时间和精力,因为后续所有功能开发都建立于框架之上,根据框架去设计功能节点和接口,若后期对框架进行大规模调整会对系统整体产生极大影响,这点需要非常注意。

二、目标设计

此处目标为设计一个可实现物体筛选和抓取的机器人控制系统,目标可简单转述为一个基本的机械臂控制系统和一个视觉的添加功能,属于第一种目标需求,具体要求如下:

2.1 机械臂控制系统

  1. 说明

目标控制机械臂为常见的六轴构型,需要实现机械臂的运动控制,可分别采用示教模式和工作模式对机械臂进行控制,控制系统需带交互接口和功能接口。

  1. 基本方案设计
  • 运动控制

    MoveIt!为核心,辅以Service-Client通讯结构构建运动控制系统核心部分,实现机械臂的运动控制,轨迹规划等,集成机械臂相关的所有控制算法。

  • 控制接口

    控制接口分为软件接口和硬件接口,软件接口面向功能模块,硬件接口面向硬件。

    软件接口采用ROS的通讯模式实现,硬件接口可采用ros_controlros_industral或者actionlib,通讯协议根据需要可采用串口或者ethercat。

  • 交互接口

    交互接口为人机界面,面向用户,可采用Qt或者rosbridge+WEB实现。

2.2 视觉功能

  1. 说明

    视觉识别目标为实现特定物体的识别与定位。

  2. 基本方案设计

    相机采用RGBD相机,结合图像数据和点云数据实现物体的识别与定位。

    视觉算法采用OpenCV+TensorFlow+PCL实现,并通过软件接口与机械臂控制系统结合。

三、构建框架

因ROS在设计之初考虑到了诸多方面,冗余较大,因此框架可以采用多种方式实现,不一定要按照某一特定方式进行开发。

3.1 框架参考

  • ROS-Industrial
    在这里插入图片描述
  • Kungfu Arm Architecture
    在这里插入图片描述
  • HRMRP
    在这里插入图片描述
  • ROS-I Interface for COMAU Robots
    在这里插入图片描述

3.2 框架设计

在这里插入图片描述

  • 交互模块
    交互部分不采用ROS提供的rqt实现,独立于ROS,改为通过以下两种思路实现:
    • 采用qt开发,在qt中建立ros节点,实现qt界面与ros通讯(此处采用该方式实现)。
    • 开发交互接口,消息通过rosbridge或者其他通讯接口(蓝牙串口等)与GUI界面通讯。
  • ROS
    之后博文详述。
  • 硬件
    硬件通过TCP/IP与控制系统通讯,数据通过硬件接口转换为通用的ROS数据传输到ROS系统中。

四、工作空间架构

├── robot_description 机械臂相关参数描述
├── robot_bringup 机械臂启动launch
├── robot_control 机械臂控制
├── robot_gazebo gazebo配置
├── robot_gui 控制界面
├── robot_moveit_config moveit配置
├── robot_msgs 自定义消息,服务器
├── robot_vision 视觉
├── robot_driver 机械臂驱动接口
├── robot_ikfast_hand_plugin ikfast逆解pkg
├── trac_ik_kinematics_plugin trac_ik插件
└── trac_ik_lib trac_ik逆解pkg

工作空间各包根据其功能可简单细分如下,实际上部分包功能存在重叠,同时部分包的实际上是可以合并,但为了结构更加清晰和后续的维护所以分开。
上面列出的包为基础框架部分内容,根据需求还会有功能依赖的相关包,如视觉相关的(cv_bridge)和运动规划相关的(descartes)等。

  • 机械臂本体相关

和机械臂本体相关的关节参数,逆解及moveit配置,这部分可以根据控制对象不同而更换,使控制系统可以控制不同的机械臂。

robot_description 机械臂相关参数描述
robot_moveit_config moveit配置
robot_ikfast_hand_plugin ikfast逆解pkg
trac_ik_kinematics_plugin trac_ik插件
trac_ik_lib trac_ik逆解pkg
  • 机械臂控制
robot_control 机械臂控制
robot_gui 控制界面
  • 仿真

仿真包括两部分,一部分为rviz(rviz实际上不包含物理参数,只作显示)

robot_gazebo gazebo配置
  • 驱动

相关包有ros_controlROS-I simple_message

robot_driver 机械臂驱动接口
  • 视觉
robot_vision 视觉
  • 辅助
robot_bringup 机械臂启动launch
robot_msgs 自定义消息,服务器

参考

ROS-Industrial

ROS-I Interface for COMAU Robots

功夫手:一款基于ROS的工业机器人

HRMRP机器人的设计

胡春旭,熊枭,任慰,何顶新. 基于嵌入式系统的室内移动机器人定位与导航[J/OL]. 华中科技大学学报(自然科学版),2013,41(S1):254-257+266. (2014-01-10)[2017-08-15].

  • 7
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器人控制系统设计与MATLAB仿真主要是指利用MATLAB软件进行机器人控制系统设计与仿真。机器人控制系统设计的目标是实现对机器人的精确控制和运动规划,使其能够完成各种任务。 在机器人控制系统设计中,首先需要对机器人模型进行建模和参数化,包括机械结构、惯性参数和传感器模型等。然后,根据机器人的控制要求和任务需求,选择适当的控制策略和算法,例如经典的PID控制、模糊控制、最优控制等。这些算法可以根据机器人的特性进行调整和优化,以达到最佳控制效果。 MATLAB作为一款强大的科学计算软件,提供了丰富的工具箱和函数,可以方便地进行机器人控制系统设计、仿真和分析。在MATLAB中,可以利用Simulink工具进行系统建模和仿真,通过连接各种模块和信号流进行系统的搭建和模拟运行。同时,可以利用MATLAB的控制系统工具箱进行控制器的设计和调整,例如根据系统的频域响应进行控制器的频率域设计,或者利用优化算法进行最优控制器的参数寻优。 通过MATLAB的仿真,可以验证控制系统设计的性能,包括运动轨迹的平滑性、目标追踪的精度、抗干扰能力等。同时,还可以通过仿真分析控制系统的系统稳定性、鲁棒性和鲁棒稳定性等指标。 总之,机器人控制系统设计与MATLAB仿真是一种快速、高效、可靠的设计方法,可以帮助工程师和研究人员实现对机器人控制系统的全面设计和评估。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值