果园自主跟随碎枝机器人

news2024/12/29 14:45:02

开发背景

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

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

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

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

开发环境

ROS2 Humble、Ubuntu22.04 

履带式自走碎枝机器人

技术实现

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

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

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

2. 运动控制

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

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

3. 避障功能

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

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

4. 行为控制

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

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

5. 人体与手势识别功能

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

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

硬件选型:

地平线旭日X3派

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

思岚单线激光雷达(S2)

RGB摄像头

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

4路超声波测距雷达

最后放几张图片吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1205417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu环境下为串口设置别名

本文介绍Ubuntu环境下为串口设置别名。 Ubuntu环境下,有时候开发调试会使用到USB转串口,本文介绍在不同使用场景下为串口设置别名的方法。主要分为绑定设备ID和绑定USB端口号。 1.绑定设备ID 绑定设备ID适用于USB转串口的设备ID唯一的情况&#xff0c…

线性代数本质系列(一)向量,线性组合,线性相关,矩阵

本系列文章将从下面不同角度解析线性代数的本质,本文是本系列第一篇 向量究竟是什么? 向量的线性组合,基与线性相关 矩阵与线性相关 矩阵乘法与线性变换 三维空间中的线性变换 行列式 逆矩阵,列空间,秩与零空间 克莱姆…

MySQL的SQL预编译及防SQL注入

文章目录 1 SQL语句的执行处理1.1 即时SQL1.2 预处理SQL1.2.1 预编译SQL的实现步骤1.2.2 预编译SQL的C使用举例1.2.3 MYSQL_BIND()函数中的参数类型: 2 SQL注入2.1 什么是SQL注入2.2 如何防止SQL注入 1 SQL语句的执行处理 SQL的执行可大致分为下面两种模式&#xf…

Linux环境实现mysql所在服务器定时同步数据文件到备份服务器(异地容灾备份场景)

目录 概述 1、建立ssh连接 1.1、操作mysql所在服务器 1.2、操作备份文件服务器 2、创建脚本实现备份以及传输 3、配置定时任务 概述 应对异地容灾备份场景,mysql所在服务器和本分服务器需要建立ssh连接,每天mysql服务器通过定时任务执行脚本&…

微信小程序授权登陆 getUserProfile

目录 前言 步骤: 示例代码: 获取用户信息的接口变化历史: 注意事项: 前言 在微信小程序中,你可以使用 getUserProfile 接口来获取用户的个人信息,并进行授权登录。以下是使用 getUserProfile 的步骤: 小程序发了…

ChatGPT 4 OpenAI 数据分析动态可视化案例

数据分析可视化是一种将原始数据转化为图形或图像的方法,使得数据更易理解和解读。这种方法能够帮助我们更清楚地看到数据中的模式、趋势和关联性,从而更好地理解数据,并据此做出决策。 数据分析可视化的一些常见形式包括: 1. 折线图:常用于展示数据随时间的变化趋势。 …

MATLAB | 官方举办的动图绘制大赛 | 第一周赛情回顾

嘿真的又是很久没见了,最近确实有点非常很特别小忙,今天带来一下MATHWORKS官方举办的迷你黑客大赛第三期(MATLAB Flipbook Mini Hack)的最新进展!!目前比赛已经刚好进行了一周,前两届都要求提交280个字符内的代码来生成…

一个关于jdbc操作mysql和java基础练手的通讯录管理系统小项目

首先 : 整个项目的项目结构为 : 1.第一步先导入数据库的驱动,我的mysql数据库是8.0以上版本,然后导入的驱动就是8.0.16版本的jar包; 1.JdbcBase : JDBC基础操作封装成了JdbcBase类,在里面先静态定义了数据库连接对象和DQL查询结果&#x…

C++阶段复习‘‘‘‘总结?【4w字。。。】

文章目录 前言类和对象C类定义和对象定义类成员函数C 类访问修饰符公有(public)成员私有(private)成员受保护(protected)成员 继承中的特点类的构造函数和析构函数 友元函数内联函数this指针指向类的指针类…

蓝桥杯 冒泡排序

冒泡排序的思想 冒泡排序的思想是每次将最大的一下一下移动到最右边,然后将最右边这个确定下来。 再来确定第二大的,再确定第三大的… 对于数组a[n],具体来说,每次确定操作就是从左往右扫描,如果a[i]>a[i1],我们将…

Prim算法(C++)

目录 介绍: 代码: 结果: 介绍: Prim算法是一种用于解决最小生成树问题的贪心算法。该算法的主要思想是从一个顶点开始,不断向图中添加边,直到构成一棵包含所有顶点的生成树,使得树的边权之…

VSCode 好用的插件分享

文章目录 Introlistcode runner 【在文本编辑器中编辑好各类语言的源代码,然后一键运行】gitlens - 【git提交信息即时查看,类似IDEA中的 show annotation】还有更多,会日常补充。 Intro 大四毕业前,我只有一台dell latitude 455…

Vue 小黑记事本组件板

渲染功能: 1.提供数据: 提供在公共的父组件 App.vue 2.通过父传子,将数据传递给TodoMain 3.利用 v-for渲染 添加功能: 1.收集表单数据 v-model 2.监听事件(回车点击都要添加) 3.子传父,讲…

Vue3 + Three.js + gltf-pipeline大型园区场景渲染与3D业务

在非使用unity作为3D渲染方案的前提下,对与目前web开发者比较友好的除了canvas场景需要的2D babylon.js,fabric.js, Three.js是目前针对于jsWeb用户最直接且比较友好的3D引擎方案了。 准备工作: 1.明确需要用的场景方案都有那些,模…

创建maven的 java web项目

创建maven的 java web项目 创建出来的项目样子 再添加java和resources文件夹 一定要如图有文件夹下有图标才代表被IDEA识别,不让是不行的 没有的话在File——ProjectStructure中进行设置

EasyDarwin开源流媒体服务器

文章目录 前言一、EasyDarwin 简介二、EasyDarwin 主要功能特点三、安装部署四、推拉流测试1、进入控制页面2、推流测试3、拉流测试 前言 本文介绍一个十分实用的高性能开源 RTSP 流媒体服务器:EasyDarwin。 一、EasyDarwin 简介 EasyDarwin 是基于 go 语言研发&a…

域名反查Api接口——让您轻松查询域名相关信息

在互联网发展的今天,域名作为网站的唯一标识符,已经成为了企业和个人网络营销中不可或缺的一部分。为了方便用户查询所需的域名信息,API接口应运而生。本文将介绍如何使用挖数据平台《域名反查Api接口——让您轻松查询域名相关信息》进行域名…

【Java笔试强训】Day10(CM62 井字棋、HJ87 密码强度等级)

CM62 井字棋 链接:井字棋 题目: 给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及…

Ps:通过显示大小了解图像的打印尺寸

在 Photoshop 中,如果想了解文档窗口中的图像打印出来之后的实质大小,只要知道两个数值即可。 第一个数值是图像分辨率(也称“文档分辨率”)的大小,可在Ps菜单:图像/图像大小 Image Size对话框中查询或设置…

linux 安装 mini conda,linux下安装 Miniconda

下载地址 https://docs.conda.io/projects/miniconda/en/latest/index.html 安装conda mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/mini…