清洁机器人规划控制方案

作者 联系方式
Forrest 709335543@qq.com

文章目录

  • 清洁机器人规划控制方案
    • 方案简介
    • 方案设计
      • 模块链路
      • 坐标变换
      • 算法框架
    • 功能设计
      • 定点自主导航
      • 固定路线清洁
      • 区域覆盖清洁
      • 贴边沿墙清洁
      • 自主返航回充
    • 仿真测试
      • 仿真测试准备
      • 定点自主导航测试
      • 固定路线清洁测试
      • 区域覆盖清洁测试
      • 贴边沿墙清洁测试

方案简介

室内商用扫地/洗地机器人规划控制(PNC)方案。有以下功能包组成:

  • clean_msg:功能消息定义
  • clean_pnc:规划控制算法
  • clean_rviz:rviz仿真测试插件

目前PNC方案支持以下功能:

  • 定点自主导航
  • 固定路线清洁
  • 区域覆盖清洁
  • 贴边沿墙清洁
  • 自主返航回充

PNC方案在满足清洁机器人常见场景需求,除此之外,还支持以下特性:

  • 断点续接清洁
  • 清洁区域补漏
  • 虚拟墙设置
  • 禁止清洁区域设置
  • 动/静态覆盖清洁设置
  • 左/右沿墙清扫设置
  • 动态调节速度(根据距离障碍物远近调节)
  • 清洁数据统计(清洁轨迹、清洁率、面积、耗时等)
  • 不同底盘形状碰撞支持
  • 扫地/洗地清洁设备控制支持

方案设计

模块链路














































lidar/camera/odom







lidar/camera/odom



















robot pose







clean task







clean report







ctrl vel







clean ctrl










sensor









localization









pnc







map









application









robot







PNC模块相关输出/输出关系如上图所示:

  • 输入

    • 传感器数据、如lidar、camera等
    • 定位位姿
    • 地图数据
    • TF变化
  • 输出
    • 机器人控制指令
    • 清洁设备控制指令
    • 清洁任务数据,如状态、报告等

坐标变换

整体方案运行,需要相关TF支持,相关TF关系定义如下:


















10hz mapping or lolicazation module






30hz chassis module






30hz static tf






30hz static tf






30hz static tf






30hz static tf









map







odom







odom_link







base_link







lidar







camera







imu






注意:这里引入odom_linkframe主要是有些底盘运动电机没有安装在底盘中心

算法框架

















tasker







task







pnc







task_manager




















































































decider











global_plan_decider







local_plan_decider







path_follow_decider











planner











astar_path_planner







dwa_path_planner







clean_path_planner







contours_path_planner









planners







deciders







navi_logic







pose_navigator







path_follower







area_cleaner







wall_follower







auto_charger









clean_system











sweep_clean_system







wash_clean_system











function_map











forbidden_clean_area







task_cleaned_area











cost_map











footprint_model







global_cost_map







local_cost_map









task_list







clean_tasks






  • task_manager:清洁任务执行管理器。接收上层发过来的任务队列,挨个进行执行。

    • task:导航任务定义描述,现支持以下五个导航任务:

      • pose_navigator:定点自主导航任务。可实现A到B点功能。
      • path_follower:固定路线清洁任务。可用于预定义路线清洁。
      • area_cleaner:区域覆盖清洁任务。可用于固定区域覆盖式清洁。
      • wall_follower:贴边沿墙清洁任务。可用于沿墙贴边清洁。
      • auto_charger:自主返航回充任务。机器人低电量时自主返航回充。
    • tasker:导航任务实现抽象。上述每个导航任务都是一个tasker,一般每个tasker由以下三部分组成:
      • planner:规划器。一个tasker可根据要实现的功能搭配多个planner,比如实现pose_navigator要搭配astar_path_planner和dwa_path_planner。现支持的planner有:

        • astar_path_planner:A*全局路径规划算法。用于A到B点路径生成
        • dwa_path_planner:DWA局部路径规划算法。用于路径跟踪。
        • clean_path_planner:覆盖路径规划算法。用于区域覆盖清洁路线生成。
        • contours_path_planner:沿墙路径规划算法。用于沿墙贴边清洁路径生成。
      • decider:决策器。一个tasker可根据要实现的功能搭配多个decider,比如实现pose_navigator要搭配global_plan_decider和local_plan_decider。现支持的decider有:
        • global_plan_decider:全局规划决策器。用于判断是否需要进行全局路径重规划。
        • local_plan_decider:局部规划决策器。用于局部路径规划失败处理。
        • path_follow_decider:路径跟踪决策器。用于路径跟踪停障等待和绕障处理。
      • navi_logic:导航逻辑。一个tasker可根据要实现的功能配合planner和decider进行调用逻辑组合,从而实现对应功能。
  • cost_map:代价地图。用于障碍物碰撞检测。
    • footprint_model:机器人碰撞模型描述。可根据机器人形状进行定义。
    • global_cost_map:全局代价地图。可用于全局规划路径和清洁规划路径生成。
    • local_cost_map:局部代价地图。可用于局部规划路径生成。
  • fuction_map:功能地图。用于相关清洁功能实现,比如禁止清洁区域。
    • forbidden_clean_area:禁止清洁区域。限定清洁环境中,某些区域只允许经过,不可以清洁。
    • task_cleaned_area:已清洁区域。用于清洁任务中,已经清洁区域统计,生成相关清洁报告。
  • clean_system:清洁设备控制器。用于扫地/洗地清洁设备开关控制。

功能设计

定点自主导航

定点自主导航任务,可实现A到B点功能。功能设计如下图所示:

















pose_navigator







pnc







task_manager

















































decider











global_plan_decider







local_plan_decider











planner











astar_path_planner







dwa_path_planner









planners







deciders







navi_logic







navi_goal







cost_map







clean_task






  • 由astar_path_planner生成机器人当前位置到导航目标点全局路径。
  • 得到全局路径后,dwa_path_planner则进行跟踪控制。
  • 在导航过程中,global_plan_decider会判断全局路径可达性,如果当前全局路径不可达,则重新进行全局路径规划。
  • 在导航过程中,local_plan_decider会根据dwa_path_planner规划状态,进行局部路径规划失败处理。

固定路线清洁

固定路线清洁任务,可用于预定义路线清洁。功能设计如下图所示:

















path_follower







pnc







task_manager



























































decider











global_plan_decider







local_plan_decider







path_follow_decider











planner











astar_path_planner







dwa_path_planner









planners







deciders







navi_logic







clean_path







cost_map







function_map







clean_system







clean_task






  • 首先机器人会根据pose_navigator一样的逻辑导航到离清洁路线最近点,然后开始清洁路线跟踪。
  • 清洁路线跟踪使用dwa_path_planner。
  • 在开始清洁路线跟踪后,path_follow_decider判断跟踪路线是否需要停障。
    • 如果遇到障碍物则进行停障等待。
    • 停障等待超时后,进行绕障继续跟踪清洁路线。
  • 在清洁路线跟踪过程中,local_plan_decider会根据dwa_path_planner规划状态,进行局部路径规划失败处理。

区域覆盖清洁

区域覆盖清洁任务,可用于固定区域覆盖式清洁。功能设计如下图所示:

















area_cleaner







pnc







task_manager



























































decider











global_plan_decider







local_plan_decider







path_follow_decider











planner











astar_path_planner







dwa_path_planner







clean_path_planner









planners







deciders







navi_logic







clean_zone







cost_map







function_map







clean_system







clean_task






  • 首先机器人会根据pose_navigator一样的逻辑导航到离清洁区域内最近点。
  • 到达清洁区域内后,使用clean_path_planner进行清洁路线覆盖规划,并进行跟踪。
  • 清洁路线跟踪使用dwa_path_planner。
  • 在开始清洁路线跟踪后,path_follow_decider判断跟踪路线是否需要停障
    • 如果遇到障碍物则进行停障等待
    • 停障等待超时后,进行绕障继续跟踪清洁路线
  • 在清洁路线跟踪过程中,local_plan_decider会根据dwa_path_planner规划状态,进行局部路径规划失败处理。

贴边沿墙清洁

贴边沿墙清洁任务,可用于沿墙贴边清洁。功能设计如下图所示:

















wall_follower







pnc







task_manager



























































decider











global_plan_decider







local_plan_decider











planner











astar_path_planner







dwa_path_planner







contours_path_planner









planners







deciders







navi_logic







along_wall_path







cost_map







function_map







clean_system







clean_task






  • 首先机器人会根据pose_navigator一样的逻辑导航到离沿墙清洁路径上最近点。
  • 到达最近后,使用contours_path_planner进行沿墙清洁路径规划,并进行跟踪。
  • 沿墙清洁路线跟踪使用dwa_path_planner。
  • 在清洁路线跟踪过程中,local_plan_decider会根据dwa_path_planner规划状态,进行局部路径规划失败处理。

自主返航回充

自主返航回充任务,机器人低电量时自主返航回充。功能设计如下图所示:

















auto_charger







pnc







task_manager

















































decider











global_plan_decider







local_plan_decider











planner











astar_path_planner







dwa_path_planner









planners







deciders







navi_logic







navi_goal







cost_map







clean_task






  • 首先机器人会根据pose_navigator一样的逻辑导航到充电桩前方位置。
  • 然后进行充电桩对接控制。

仿真测试

功能仿真测试视频:

清洁机器人PNC方案演示

仿真测试准备

  • 安装部署好工程

  • 仿真地图确认:仿真地图放在cleanbot/clean_pnc/data/map目录下,目前该目录下有测试地图demo,如果想更换地图可按如下步骤:

    • 将要更换的地图放到cleanbot/clean_pnc/data/map目录下

    • 更改仿真器中cleanbot/clean_pnc/launch/pnc_simulator.launchtest_map_name参数:

      <launch><node name="clean_pnc_simulator" pkg="clean_pnc" type="clean_pnc_simulator" output="screen"><param name="map_file_dir"    value="$(find clean_pnc)/data/map/"/><param name="test_map_name"   value="demo"/></node>
      </launch>
      
  • 启动仿真程序:启动成功后,可看到如下rviz界面:

    roslaunch clean_pnc simulation_wash_robot.launch
    

  • 初始化机器人位姿:在rviz软件显示窗口上,点击2D Pose Estimate按钮在地图上相应位置进行机器人位姿初始化

  • 任务暂停/取消:在rviz软件显示窗口左下角,可进行任务暂停/取消操作

定点自主导航测试

  • 下发导航目标点:在rviz软件显示窗口上,点击2D Nav Goal按钮在地图上相应位置进行导航目标点下发

  • 下发成功后可在rviz看到如下界面:

  • 如果想在测试过程中增加障碍物,可在rviz软件显示窗口上,点击Publish Point按钮在地图上相应位置进行障碍物设置:

固定路线清洁测试

  • 设定清洁路线:在rviz软件显示窗口上,点击custom_path按钮在地图上相应位置进行清洁路线标注

    • 按下键盘上的Enter按键下发任务
    • 按下键盘上的d按键重新绘制路线

  • 下发成功后可在rviz看到如下界面:

  • 如果想在测试过程中增加障碍物,可在rviz软件显示窗口上,点击Publish Point按钮在地图上相应位置进行障碍物设置:

注意:任务完成后,机器人会主动导航返回任务起始点

区域覆盖清洁测试

  • 设定清洁区域:在rviz软件显示窗口上,点击clean_polygon按钮在地图上相应位置进行清洁区域标注

    • 按下键盘上的Enter按键下发任务
    • 按下键盘上的d按键重新绘制区域

  • 下发成功后可在rviz看到如下界面:

  • 如果想在测试过程中增加障碍物,可在rviz软件显示窗口上,点击Publish Point按钮在地图上相应位置进行障碍物设置:

注意:任务完成后,机器人会主动导航返回任务起始点

贴边沿墙清洁测试

  • 设定清洁区域:在rviz软件显示窗口上,点击along_wall按钮在地图上相应墙体位置进行沿墙启点下发

  • 下发成功后可在rviz看到如下界面:

  • 如果想在测试过程中增加障碍物,可在rviz软件显示窗口上,点击Publish Point按钮在地图上相应位置进行障碍物设置:

注意:任务完成后,机器人会主动导航返回任务起始点

清洁机器人规划控制方案相关推荐

  1. 清洁机器人之语音方案之 二.语音资源文件wav生成

    二.语音资源文件wav生成 文章目录 二.语音资源文件wav生成 1.定义语音资源数组 2.循环调用生成语音API 3.执行,具体结果如下 3.1配置so路径 科大讯飞的开放平台 https://ww ...

  2. 清洁机器人之音频方案 ISD2360 开发总结1

    文章目录 一. **ISD2360 音频方案** 1.开发环境搭建篇 2.常见开发问题 2.1 **问:**QFN32 and SOP16 都可以供应? 2.2 问:官方网站上的I2360SYI 就是 ...

  3. 清洁机器人--音频方案之基于国民MCU IO控制的唯创WT588 语音播放方案

    清洁机器人–音频方案之基于国民MCU IO控制的唯创WT588 语音播放方案 文章目录 清洁机器人--音频方案之基于国民MCU IO控制的唯创WT588 语音播放方案 1.MCU相关开发环境 1.1 ...

  4. 【转载】MIT四足机器人Cheetah 3控制方案笔记

    转载:知乎 Wenboxing https://zhuanlan.zhihu.com/p/190028074 这里写自定义目录标题 MIT四足机器人Cheetah 3控制方案理解笔记(1)--摆动腿控 ...

  5. MIT四足机器人Cheetah 3控制方案理解笔记(2)——Convex Mpc身体姿态控制

    在"MIT四足机器人Cheetah 3控制方案理解笔记(1)"中,主要简单的总结了下一般情况下腿足机器人的摆动腿控制方法以及Cheetah 3的基于集中质量模型的平衡控制器.此外, ...

  6. 清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍

    清洁机器人之屏幕(中,大LCD)方案–ITE 联阳986x系列 soc显控芯片介绍 文章目录 清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍 0.总体功能概述 0 ...

  7. MIT四足机器人Cheetah 3控制方案理解笔记(1)——摆动腿控制、单刚体模型平衡控制器

    之前一段时间在阅读MIT四足机器人Cheetah 3以及Mini Cheetah控制方案的相关论文,在此处做一些笔记.Cheetah 3与Mini Cheetah的控制方案大同小异,此处先以Cheet ...

  8. 中国商用清洁机器人产业“十四五”规划展望及项目可行性分析报告2021-2027年

    中国商用清洁机器人产业"十四五"规划展望及项目可行性分析报告2021-2027年   第1章:商用清洁机器人行业界定及数据统计标准说明1.1 商用清洁机器人的界定 1.1.1 机器 ...

  9. 全球与中国无绳泳池清洁机器人市场发展现状调研与十四五规划建议报告2023-2029年

    <出版单位>:鸿晟信合研究院 [内容部分有删减·详细可参鸿晟信合研究院出版完整信息!] 全球与中国无绳泳池清洁机器人市场发展现状调研与十四五规划建议报告2023-2029年    2022 ...

最新文章

  1. python基础学习11----函数
  2. (chap1 web网络基础) HTTP协议相关的各个协议(2)
  3. Oracle 的两种工作模式Dedicated Server 和 Shared Server
  4. Sql Server 日期格式转换
  5. IOCP不可忽视的细节
  6. 计算机的三个基本功能,操作系统的三个作用是什么
  7. rocketmq 启动_016【windows版Rocketmq】小白学习Rocketmq单机部署
  8. “壕”无人性!黄金版iPhone 13 Pro售价27万元起
  9. 【Elasticsearch】wildcard、fuzzy、regexp、prefix
  10. IAR Embedded Workbench安装
  11. N76E003驱动WS2811实现渐变色、跑马灯
  12. 从0到1搭建小米商城首页
  13. 用PS快速给图片添加逼真彩虹效果
  14. 易基因 | 项目文章 | oxBS-seq揭示了宫颈癌发生过程中的表观遗传特征变化
  15. U3D中ShaderForge插件使用系列教程之一
  16. swift和swiftui_SwiftUI和UIStackflow问题
  17. socket介绍--数据的编码与解码
  18. 迅速提高产品用户体验、交互、界面设计的几个绝妙方法
  19. 数值分析中对有效数字的定义
  20. 中国56个民族脚本数据

热门文章

  1. Sakura编辑器设置显示空格符,tab符,换行符
  2. 机器学习(二)——贝叶斯分类器
  3. 10进制转8进制怎么转?
  4. 【C语言】让你不再因为指针而感到头疼
  5. Linux(debian11)安装微信
  6. HITSZ掌上校园重构
  7. HIT oj题解1002 - A+B+C
  8. HTML+CSS-Day09
  9. 一篇介绍LSTM的博客,写的很好
  10. DDMS 无法显示进程解决方案