• 果园自主跟随碎枝机器人


    开发背景

    农业扶贫项目—— 开发一款适用于猕猴桃果园的跟随碎枝机器人

    在猕猴桃的种植培育过程中,一项非常重要的环节便是剪枝,通常有冬剪和夏剪。以往果农剪完枝条后要将散落于地的枝条归拢后统一粉碎还田。这需要专门收集地面上的枝条并将其归拢到固定点(粉碎机旁边),待所有枝条粉碎后再将碎末撒在果园里用以还田。

    我们要做的便是针对果园剪枝阶段,设计一款可以自主跟随作业的碎枝机器人,通过识别与定位技术主动跟随人物前进,并在距人适当位置停车并启动碎枝作业电机。此时果农将剪下的枝条顺手放进粉碎机入口完成碎枝还田。果农前进时当检测到距离超过死区范围,停止碎枝电机,并主动前进跟随果农。

    由于本人对机械和电路了解不多,这篇文章只对软件设计实现部分做介绍,电路部分和机械部分不做介绍哈~ 

    开发环境

    ROS2 Humble、Ubuntu22.04 

    履带式自走碎枝机器人

    技术实现

    1. 通过UWB 定位跟随模块实现定位定向

    主要利用AOA模块基站利用uwb定位定向技术确定标签距离方向。

    基站输出的结果波动较大,且易受干扰,当人遮挡主标签时,干扰非常明显,会有十几到几十度的误差,如果不做处理,单纯依赖基站的输出值进行方向控制,会出现明显的车辆来回摆动现象,也很难停车在理想位置。需要滤波处理,本人采用简单的移动均值滤波,该方式能有效剧烈波动带来的震荡,使数据趋于平缓,但其结果也有明显的滞后性。好在我们跟随应用在实际作业中行驶速度较慢(与人步行速度相当),在20HZ以上的控制指令计算频率下也可以快速摆到期望方向。

    2. 运动控制

    方向控制采用PID控制,适当调节Kp参数,可以较灵敏的响应方向变化,调节响应参数使朝向尽快收敛到目标朝向上。

    速度采用线性控制,未避免出现急停、急走带来的晃动,采用线性关系调节速度变化

    3. 避障功能

    采用激光雷达、毫米波、超声波测距 检测周围障碍物信息

    通过分析周边障碍物,调整车辆朝向

    4. 行为控制

    使用状态机切换来满足跟随与碎枝功能的切换与控制

    也可使用行为树控制,但本身此功能逻辑相对简单,使用有限状态机可以快速直观的实现功能逻辑

    5. 人体与手势识别功能

    此功能在完善中,通过对前置RGB摄像头采集的图像进行分析处理,通过骨骼节点识别可以分辨前方是否有人,这可以作为跟随前进的辅助判断

    同时通过手势识别算法,根据手势动作实现功能控制。比如对着碎纸机招手,便可以控制车辆往人方向靠近;伸开手掌便可停车等

    硬件选型:

    地平线旭日X3派

    UWB跟随定位基站与标签(NLoop AOA模块)

    思岚单线激光雷达(S2)

    RGB摄像头

    毫米波避障雷达(纳雷科技)

    4路超声波测距雷达

    最后放几张图片吧

  • 相关阅读:
    【Java】链表的中间结点
    Springboot接收http参数总结(最简单易懂)
    【js】-【数组、栈、队列、链表基础】-笔记
    [计算机网络]-网络层-概述及虚电路和数据报网络
    Linux基础篇
    【HCIA】生成树
    springboot个性化课程推荐系统个性化课程推荐系统毕业设计源码131805
    循环码、卷积码及其python实现
    详解PHP代码执行漏洞--无字母shell
    idea导入eclipse项目的时候,Java图标变成黄色小J了,怎么解决?
  • 原文地址:https://blog.csdn.net/jinsenianhua2012/article/details/134385763