一种分层模块化开放式架构的机器人操作系统及方法技术方案

技术编号:38092911 阅读:13 留言:0更新日期:2023-07-06 09:05
本发明专利技术属于机器人技术领域,提供了一种分层模块化开放式架构的机器人操作系统及方法。该系统包括,设备层模块,用于提供机器人所需的硬件设备模块驱动,并进行数据采集;数据处理层模块,用于根据设备层模块采集的数据,进行运动控制、定位、建图和数据标定,得到位姿状态、定位信息、地图和标定结果;逻辑层模块,根据数据处理层模块得到的位姿状态、定位信息、地图和标定结果,进行路径搜索和运动跟踪控制;用户应用层模块,用于为使用者自定义开发任务控制逻辑;其中,所述设备层模块、数据处理层模块、逻辑层模块和用户应用层模块间和/或模块内通过异步订阅者和发布者的通讯机制进行数据交互。行数据交互。行数据交互。

【技术实现步骤摘要】
一种分层模块化开放式架构的机器人操作系统及方法


[0001]本专利技术属于机器人
,具体涉及一种分层模块化开放式架构的机器人操作系统及方法。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]目前在机器人
,部分开发人员采用国外的Ros操作系统作为控制程序的核心架构,其自主可控性较差;部分开发人员直接将所需功能耦合性开发,各个模块间牵连性强,开发周期长且可维护性难度较高;机器人控制程序在实际现场环境运行过程中,控制程序出现崩溃现象时难以定位和排查问题的原因,且会造成不可控的安全性问题,对附近的设备或人员造成危险。

技术实现思路

[0004]本专利技术为了解决上述问题,提出了一种分层模块化开放式架构的机器人操作系统及方法,本专利技术将机器人控制程序分为设备层模块、数据处理层模块、逻辑层模块和用户应用层模块,并将许多通用功能进行模块化封装,如多种型号的雷达、电机驱动器等设备驱动,差速、双舵轮、四舵轮等运行控制模型,建图、定位、标定等算法模型。且该机器人通用操作系统平台(GomROS,句芒)设计集成了故障追踪模块和故障应急动作处理模块,以便开发人员能快速定位问题和异常,且防止机器因为故障对现场造成安全隐患。
[0005]根据一些实施例,本专利技术采用如下技术方案:
[0006]第一个方面,本专利技术提供了一种分层模块化开放式架构的机器人操作系统。
[0007]一种分层模块化开放式架构的机器人操作系统,包括:
[0008]设备层模块,用于提供机器人所需的硬件设备模块驱动,并进行数据采集;
[0009]数据处理层模块,用于根据设备层模块采集的数据,进行运动控制、定位、建图和数据标定,得到位姿状态、定位信息、地图和标定结果;
[0010]逻辑层模块,用于根据数据处理层模块得到的位姿状态、定位信息、地图和标定结果,进行路径搜索和运动跟踪控制;
[0011]用户应用层模块,用于为使用者自定义开发任务控制逻辑;
[0012]其中,所述设备层模块、数据处理层模块、逻辑层模块和用户应用层模块间和/或模块内通过异步订阅者和发布者的通讯机制进行数据交互。
[0013]进一步地,所述设备层模块包括电机模块、IMU模块和雷达模块;
[0014]所述电机模块,用于控制机器人指定部位的运动,并反馈该电机的运行和状态数据;
[0015]所述IMU模块,用于反馈当前机器人在平面位置的实时前向加速度、角速度和角度;
[0016]所述雷达模块,用于反馈当前机器人在当前位置所检测到的环境点云数据。
[0017]进一步地,所述数据处理层模块包括运动模型模块、卡尔曼滤波器模型、运动模型控制模块、定位算法模块、建图算法模块和标定算法模块;
[0018]所述运动模型模块,用于根据机器人的运行数据,得到机器人中心点里程计数据,并将所述里程计数据发送至定位算法模块、建图算法模块和标定算法模块;接收动模型控制模块发送的左轮电机运动参数和右轮电机运动参数,以进行机器人运动控制;其中,运动模型模块包括差速模型模块、双舵轮模型模块和四舵轮模型模块。
[0019]卡尔曼滤波器模型,用于接收IMU模块或雷达模块发送的数据,并进行滤波处理;
[0020]所述建图算法模块,用于根据里程计数据、IMU数据和雷达数据进行建图,并将建好的地图数据向外部发送;
[0021]所述定位算法模块,用于根据里程计数据、IMU数据和雷达数据,结合所述地图数据,确定机器人在地图中的位置和状态信息;
[0022]所述标定算法模块,用于根据里程计数据和雷达数据,对机器人的轮子的直径及轮子到机器人中心位置的距离数据进行标定;
[0023]所述运动模型控制模块,用于根据逻辑层模块输出的控制指令,得到左轮电机运动参数和右轮电机运动参数,所述运动参数包括速度和角速度。
[0024]进一步地,所述逻辑层模块包括避障等级信息模块、指令任务控制及调度模块、Dijkstra路径生成模块、运动控制规划器模块和修正相应参数模块;
[0025]所述避障等级信息模块,用于根据机器人位置状态和地图数据,确定包括障碍物信息和避障等级信息,并发送至Dijkstra路径生成模块和运动控制规划器模块;
[0026]所述指令任务控制及调度模块,用于根据控制指令信息,确定包括机器人运行的起点、机器人运行的终点和运行速度信息,并发送至Dijkstra路径生成模块和运动控制规划器模块;
[0027]所述Dijkstra路径生成模块,用于根据接收的机器人运行的起点、机器人运行的终点、地图数据和障碍物信息和机器人当前的位置信息,规划离散点的行驶轨迹路径,并发送至运动控制规划器模块;
[0028]所述运动控制规划器模块,用于根据接收的机器人运行速度信息、行驶轨迹路径和避障限速或停止信息,生成逻辑输出运动控制指令,向数据处理层模块中的运动模型控制模块发送所述运动控制指令,以控制机器人的运动;
[0029]所述修正相应参数模块,用于根据接收的数据处理层模块中的标定算法模块的标定结果,修正包括机器人的轮子的直径及轮子到机器人中心位置的距离。
[0030]进一步地,所述Dijkstra路径生成模块,还用于若机器人碰到障碍物时,重新规划行驶轨迹路径,以使机器人绕开障碍物。
[0031]进一步地,所述异步订阅者和发布者的通讯机制为:
[0032]发布者将自身信息注册到异步订阅者和发布者通讯机制管理者模块中,声明所要发布的消息X话题;
[0033]订阅者将自身信息注册到异步订阅者和发布者通讯机制管理者模块中,声明所要订阅的消息X话题;
[0034]异步订阅者和发布者通讯机制管理者模块将在异步订阅者和发布者通讯机制消
息通道模块中创建消息X话题通道;
[0035]当发布者发布消息X时,会将消息送入异步订阅者和发布者通讯机制消息通道模块所创建消息X话题通道中;
[0036]异步订阅者和发布者通讯机制管理者模块检测到消息X话题通道中有新消息任务事件时,会将该消息X送给订阅该消息X话题的订阅者;
[0037]订阅者收到消息X。
[0038]进一步地,所述异步订阅者和发布者的通讯机制应用在机器人操作系统的异步通讯子系统中,所述异步通讯子系统包括异步订阅者和发布者通讯机制管理者模块、异步订阅者和发布者通讯机制消息通道模块和动态弹性多线程模型模块。
[0039]进一步地,所述动态弹性多线程模型模块,用于对新消息任务指令进行处理,将得到的任务送到指定线程的任务队列中,完成新消息任务的分配;并从任务队列不为空的多个线程中,选出一个线程去执行。
[0040]进一步地,所述机器人操作系统还包括故障处理模块,包括程序崩溃故障处理模块、故障追踪模块和故障应急动作注册模块,
[0041]所述程序崩溃故障处理模块,用于在程序初始化时启动,并监听当前程序在系统内核本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分层模块化开放式架构的机器人操作系统,其特征在于,包括:设备层模块,用于提供机器人所需的硬件设备模块驱动,并进行数据采集;数据处理层模块,用于根据设备层模块采集的数据,进行运动控制、定位、建图和数据标定,得到位姿状态、定位信息、地图和标定结果;逻辑层模块,用于根据数据处理层模块得到的位姿状态、定位信息、地图和标定结果,进行路径搜索和运动跟踪控制;用户应用层模块,用于为使用者自定义开发任务控制逻辑;其中,所述设备层模块、数据处理层模块、逻辑层模块和用户应用层模块间和/或模块内通过异步订阅者和发布者的通讯机制进行数据交互。2.根据权利要求1所述的分层模块化开放式架构的机器人操作系统,其特征在于,所述设备层模块包括电机模块、IMU模块和雷达模块;所述电机模块,用于控制机器人指定部位的运动,并反馈该电机的运行和状态数据;所述IMU模块,用于反馈当前机器人在平面位置的实时前向加速度、角速度和角度;所述雷达模块,用于反馈当前机器人在当前位置所检测到的环境点云数据。3.根据权利要求1所述的分层模块化开放式架构的机器人操作系统,其特征在于,所述数据处理层模块包括运动模型模块、卡尔曼滤波器模型、运动模型控制模块、定位算法模块、建图算法模块和标定算法模块;所述运动模型模块,用于根据机器人的运行数据,得到机器人中心点里程计数据,并将所述里程计数据发送至定位算法模块、建图算法模块和标定算法模块;接收动模型控制模块发送的左轮电机运动参数和右轮电机运动参数,以进行机器人运动控制;其中,运动模型模块包括差速模型模块、双舵轮模型模块和四舵轮模型模块;卡尔曼滤波器模型,用于接收IMU模块或雷达模块发送的数据,并进行滤波处理;所述建图算法模块,用于根据里程计数据、IMU数据和雷达数据进行建图,并将建好的地图数据向外部发送;所述定位算法模块,用于根据里程计数据、IMU数据和雷达数据,结合所述地图数据,确定机器人在地图中的位置和状态信息;所述标定算法模块,用于根据里程计数据和雷达数据,对机器人的轮子的直径及轮子到机器人中心位置的距离数据进行标定;所述运动模型控制模块,用于根据逻辑层模块输出的控制指令,得到左轮电机运动参数和右轮电机运动参数,所述运动参数包括速度和角速度。4.根据权利要求1所述的分层模块化开放式架构的机器人操作系统,其特征在于,所述逻辑层模块包括避障等级信息模块、指令任务控制及调度模块、Dijkstra路径生成模块、运动控制规划器模块和修正相应参数模块;所述避障等级信息模块,用于根据机器人位置状态和地图数据,确定包括障碍物信息和避障等级信息,并发送至Dijkstra路径生成模块和运动控制规划器模块;所述指令任务控制及调度模块,用于根据控制指令信息,确定包括机器人运行的起点、机器人运行的终点和运行速度信息,并发送至Dijkstra路径生成模块和运动控制规划器模块;所述Dijkstra路径生成模块,用于根据接收的机器人运行的起点、机器人运行的终点、
地图数据和障碍物信息和机器人当前的位置信息,规划离散点的行驶轨迹路径,并发送至运动控制规划器模块;所述运动控制规划器模块,用于根据接收的机器人运行速度信息、行驶轨迹路径和避障限速或停止信息,生成逻辑输出运动控制指令,向数据处理层模块中的运动模型控制模块发送所述运动控制指令,以...

【专利技术属性】
技术研发人员:童汉森孟广辉李建强李超杨桂生
申请(专利权)人:山东亚历山大智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1