一种分层模块化开放式架构的机器人操作系统及方法与流程

文档序号:34685129发布日期:2023-07-05 22:20阅读:51来源:国知局
一种分层模块化开放式架构的机器人操作系统及方法与流程

本发明属于机器人,具体涉及一种分层模块化开放式架构的机器人操作系统及方法。


背景技术:

1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。

2、目前在机器人技术领域,部分开发人员采用国外的ros操作系统作为控制程序的核心架构,其自主可控性较差;部分开发人员直接将所需功能耦合性开发,各个模块间牵连性强,开发周期长且可维护性难度较高;机器人控制程序在实际现场环境运行过程中,控制程序出现崩溃现象时难以定位和排查问题的原因,且会造成不可控的安全性问题,对附近的设备或人员造成危险。


技术实现思路

1、本发明为了解决上述问题,提出了一种分层模块化开放式架构的机器人操作系统及方法,本发明将机器人控制程序分为设备层模块、数据处理层模块、逻辑层模块和用户应用层模块,并将许多通用功能进行模块化封装,如多种型号的雷达、电机驱动器等设备驱动,差速、双舵轮、四舵轮等运行控制模型,建图、定位、标定等算法模型。且该机器人通用操作系统平台(gomros,句芒)设计集成了故障追踪模块和故障应急动作处理模块,以便开发人员能快速定位问题和异常,且防止机器因为故障对现场造成安全隐患。

2、根据一些实施例,本发明采用如下技术方案:

3、第一个方面,本发明提供了一种分层模块化开放式架构的机器人操作系统。

4、一种分层模块化开放式架构的机器人操作系统,包括:

5、设备层模块,用于提供机器人所需的硬件设备模块驱动,并进行数据采集;

6、数据处理层模块,用于根据设备层模块采集的数据,进行运动控制、定位、建图和数据标定,得到位姿状态、定位信息、地图和标定结果;

7、逻辑层模块,用于根据数据处理层模块得到的位姿状态、定位信息、地图和标定结果,进行路径搜索和运动跟踪控制;

8、用户应用层模块,用于为使用者自定义开发任务控制逻辑;

9、其中,所述设备层模块、数据处理层模块、逻辑层模块和用户应用层模块间和/或模块内通过异步订阅者和发布者的通讯机制进行数据交互。

10、进一步地,所述设备层模块包括电机模块、imu模块和雷达模块;

11、所述电机模块,用于控制机器人指定部位的运动,并反馈该电机的运行和状态数据;

12、所述imu模块,用于反馈当前机器人在平面位置的实时前向加速度、角速度和角度;

13、所述雷达模块,用于反馈当前机器人在当前位置所检测到的环境点云数据。

14、进一步地,所述数据处理层模块包括运动模型模块、卡尔曼滤波器模型、运动模型控制模块、定位算法模块、建图算法模块和标定算法模块;

15、所述运动模型模块,用于根据机器人的运行数据,得到机器人中心点里程计数据,并将所述里程计数据发送至定位算法模块、建图算法模块和标定算法模块;接收动模型控制模块发送的左轮电机运动参数和右轮电机运动参数,以进行机器人运动控制;其中,运动模型模块包括差速模型模块、双舵轮模型模块和四舵轮模型模块。

16、卡尔曼滤波器模型,用于接收imu模块或雷达模块发送的数据,并进行滤波处理;

17、所述建图算法模块,用于根据里程计数据、imu数据和雷达数据进行建图,并将建好的地图数据向外部发送;

18、所述定位算法模块,用于根据里程计数据、imu数据和雷达数据,结合所述地图数据,确定机器人在地图中的位置和状态信息;

19、所述标定算法模块,用于根据里程计数据和雷达数据,对机器人的轮子的直径及轮子到机器人中心位置的距离数据进行标定;

20、所述运动模型控制模块,用于根据逻辑层模块输出的控制指令,得到左轮电机运动参数和右轮电机运动参数,所述运动参数包括速度和角速度。

21、进一步地,所述逻辑层模块包括避障等级信息模块、指令任务控制及调度模块、dijkstra路径生成模块、运动控制规划器模块和修正相应参数模块;

22、所述避障等级信息模块,用于根据机器人位置状态和地图数据,确定包括障碍物信息和避障等级信息,并发送至dijkstra路径生成模块和运动控制规划器模块;

23、所述指令任务控制及调度模块,用于根据控制指令信息,确定包括机器人运行的起点、机器人运行的终点和运行速度信息,并发送至dijkstra路径生成模块和运动控制规划器模块;

24、所述dijkstra路径生成模块,用于根据接收的机器人运行的起点、机器人运行的终点、地图数据和障碍物信息和机器人当前的位置信息,规划离散点的行驶轨迹路径,并发送至运动控制规划器模块;

25、所述运动控制规划器模块,用于根据接收的机器人运行速度信息、行驶轨迹路径和避障限速或停止信息,生成逻辑输出运动控制指令,向数据处理层模块中的运动模型控制模块发送所述运动控制指令,以控制机器人的运动;

26、所述修正相应参数模块,用于根据接收的数据处理层模块中的标定算法模块的标定结果,修正包括机器人的轮子的直径及轮子到机器人中心位置的距离。

27、进一步地,所述dijkstra路径生成模块,还用于若机器人碰到障碍物时,重新规划行驶轨迹路径,以使机器人绕开障碍物。

28、进一步地,所述异步订阅者和发布者的通讯机制为:

29、发布者将自身信息注册到异步订阅者和发布者通讯机制管理者模块中,声明所要发布的消息x话题;

30、订阅者将自身信息注册到异步订阅者和发布者通讯机制管理者模块中,声明所要订阅的消息x话题;

31、异步订阅者和发布者通讯机制管理者模块将在异步订阅者和发布者通讯机制消息通道模块中创建消息x话题通道;

32、当发布者发布消息x时,会将消息送入异步订阅者和发布者通讯机制消息通道模块所创建消息x话题通道中;

33、异步订阅者和发布者通讯机制管理者模块检测到消息x话题通道中有新消息任务事件时,会将该消息x送给订阅该消息x话题的订阅者;

34、订阅者收到消息x。

35、进一步地,所述异步订阅者和发布者的通讯机制应用在机器人操作系统的异步通讯子系统中,所述异步通讯子系统包括异步订阅者和发布者通讯机制管理者模块、异步订阅者和发布者通讯机制消息通道模块和动态弹性多线程模型模块。

36、进一步地,所述动态弹性多线程模型模块,用于对新消息任务指令进行处理,将得到的任务送到指定线程的任务队列中,完成新消息任务的分配;并从任务队列不为空的多个线程中,选出一个线程去执行。

37、进一步地,所述机器人操作系统还包括故障处理模块,包括程序崩溃故障处理模块、故障追踪模块和故障应急动作注册模块,

38、所述程序崩溃故障处理模块,用于在程序初始化时启动,并监听当前程序在系统内核中所产生的信号量;当监听到系统内核信号量时,会对该信号量进行判断;判断所监听到系统内核信号量是否是程序崩溃,若否,继续监听等待;若是,中断当前运行程序,处理该故障信号量;记录该信号量出现时该程序在内存中的堆栈地址信息;解析该堆栈地址信息,并判断程序崩溃是在哪个动态库里进行的;再根据所找到的动态库,继续解析该堆栈地址信息,并判断程序崩溃位置在动态库里所属函数空间;

39、所述故障追踪模块,用于根据程序崩溃位置,进行故障追踪;

40、所述故障应急动作注册模块,用于根据设定的故障应急动作,通过故障应急动作注册模块接口注册进去。

41、第二个方面,本发明提供了一种分层模块化开放式架构的机器人操作方法。

42、一种分层模块化开放式架构的机器人操作方法,包括:

43、设备层模块提供机器人所需的硬件设备模块驱动,并进行数据采集;

44、数据处理层模块根据设备层模块采集的数据,进行运动控制、定位、建图和数据标定,得到位姿状态、定位信息、地图和标定结果;

45、逻辑层模块根据数据处理层模块得到的位姿状态、定位信息、地图和标定结果,进行路径搜索和运动跟踪控制;

46、用户应用层模块为使用者自定义开发任务控制逻辑;

47、其中,所述设备层模块、数据处理层模块、逻辑层模块和用户应用层模块间和/或模块内通过异步订阅者和发布者的通讯机制进行数据交互。

48、与现有技术相比,本发明的有益效果为:

49、1、本发明中设计了异步订阅者和发布者通讯机制,并构建了动态弹性多线程模型对消息事件进行处理,使得每个消息事件能够得到及时处理,提高了系统的响应速度,节约了cpu、内存等资源。

50、2、本发明设计了分层模块化开放式架构的机器人操作系统,将机器人控制程序分为设备层模块、数据处理层模块、逻辑层模块和用户应用层模块,并将许多通用功能进行模块化封装,如多种型号的雷达、电机驱动器等设备驱动,差速、双舵轮、四舵轮等运行控制模型,建图、定位、标定等算法模型,降低了模块之间的耦合关系,方便开发人员进行二次利用开发。

51、3、本发明中设计集成了故障追踪模块(errorbacktrace)和故障应急动作注册模块(deathactionregister),以便机器在现场运作发生故障时,可记录现场环境下机器人程序崩溃时的相关故障信息,以便开发人员能通过记录下来的信息快速定位问题和异常,且可通过预先设定一些应急动作,防止机器因为故障对现场造成安全隐患。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1