基于四足机器人和机械臂的运动控制系统(一)

news2024/11/24 20:54:09

文章目录

  • 一、项目框架
  • 二、设计内容与功能需求
    • 1. 导航与路径规划
    • 2. 视觉感知
    • 3. 运动控制
    • 4. 精准遥控
    • 5. 环境探测
    • 6. 云端监控与数据分析
    • 7. 人机协同
    • 8. 充电桩
    • 9. 紧急响应与救援
  • 三、硬件设计
    • 1. 四足机器人
    • 2. 机械臂
    • 3. 机器主控板
    • 4. 遥控器板
    • 5. 舵机驱动板
  • 四、软件设计
    • 1. 环境
    • 2. 遥控器
    • 3. 机器人


一、项目框架

在四足机器人的动平台上搭一个机械臂,引入视觉模块、各传感器用于实时探测识别和环境感知,并上传至云端用于数据分析,通过遥控器/手机 根据设计的步态算法实现远程遥控和人机交互,再有充电桩和紧急救援等智能化功能。
在这里插入图片描述

二、设计内容与功能需求

本设计的核心目标是在四足机器人与机械臂系统中实现一套高度智能化、多功能化的技术框架,使其能够在复杂环境中高效运行、灵活操控,并且具备自主感知和学习的能力。以下是设计的主要内容,包括导航与路径规划、视觉感知、运动控制、遥控技术、环境探测、云端监控等多个方面。

1. 导航与路径规划

首先,设计基于SLAM技术的导航系统,该系统能够在未知环境中实时构建地图,并通过路径规划算法确定机器人的最优移动路径。这一部分的关键在于将激光雷达、红外传感器等多种传感器信息融合,实现对环境的全方位感知。

2. 视觉感知

基于YOLOv3-tiny算法下对机器人进行视觉训练,实现实时视觉感知。该算法在图像处理中表现卓越,能够高效快速地检测和识别环境中的多个对象,包括人体、物体和障碍物。通过对图像的深度分析,机器人能够快速作出智能决策,提高在复杂环境中的运动精准度和适应性。这一先进的视觉感知系统不仅为机器人提供了高级的实时图像处理能力,还增强了其在多领域应用中的智能性和高效性。

3. 运动控制

机器人的运动控制系统采用基于视觉里程计(Visual Odometry, VMC)的先进技术,通过实时分析图像数据和相机位姿,实现对机器人位置和姿态的准确估计。结合YOLOv3-tiny算法的实时视觉感知,VMC技术为机器人提供了更为精准和灵活的运动控制。这一整合系统不仅使机器人能够在复杂环境中更加稳健地导航,而且为其在执行任务时提供了更高水平的智能决策和运动适应性。通过视觉感知和VMC技术的协同作用,机器人能够更自如地应对各种挑战,拓展了其在多领域运动控制中的应用潜力。

4. 精准遥控

通过设计智能遥控系统,用户可以实时监测机器人的状态,并实现远程操控机器人与机械臂的运动。该系统采用高效的通信协议,确保遥控信号的及时响应,使用户能够精准地控制机器人的动作。

5. 环境探测

机器人配备多种传感器,包括激光雷达、红外线传感器等,以实现对环境温度、障碍物等信息的感知。通过这些传感器,机器人可以实时适应环境变化,调整运动策略,提高系统的自主性和稳定性。

6. 云端监控与数据分析

通过WiFi模块,机器人实现无线图传和云端监控。在云端对上传数据进行分析,为系统的优化和决策提供强有力的支持。实现高效远程监控和智能数据分析,为系统运行和决策提供了全面的实时信息。

7. 人机协同

机械臂设计具备多功能操作,包括抓取、搬运、定位等。通过智能交互系统,用户可以与机器人协同完成各种任务,实现机械臂的灵活操作,提高系统的实用性。

8. 充电桩

设计了自主充电装置,使机器人能够自动寻找充电站并进行充电。这一系统的引入延长了机器人的工作时间,提高了系统的自主性和可用性。

9. 紧急响应与救援

机器人设计具备紧急响应功能,可以在灾难性情境中执行搜索、救援和监测任务。搭载传感器和摄像头,机器人能够迅速定位被困人员或探测灾害区域,提供重要信息给救援人员。

三、硬件设计

1. 四足机器人

这里我选用的MG995舵机作为支撑,因为动平台上方还要搭载机械臂和传感器,力矩需求大,像普通的sg90远不能满足需求,其次组装材料通过自主3D建模打印完成,根据舵机型号设计顶板、底板、小腿、大腿。

我的设计如下:
在这里插入图片描述

2. 机械臂

这里我直接从某宝上购买的现成零件组装,有能力的小伙伴自行设计。
在这里插入图片描述

3. 机器主控板

我是通过嘉立创平台进行设计打板,选用STM32,考虑到资源需求,我用的是F407VET6,如下图:
在左上侧为电源输入引脚,通过两路稳压芯片分别转为5V和3.3V供电;左下侧为SWD接口,供烧录调试使用;中间的上下四排为拓展引脚,引出暂时没有使用到的IO口,供后续开发使用;最中间的是STM32F407VET6芯片,周边摆放的是晶振和滤波电容;最右边引出的是PWM通道,驱动舵机;然后其他则是引出的按键、Boot电路、Uart、蓝牙、OLED接口。

在这里插入图片描述

4. 遥控器板

也是根据资源需求,我选用的是STM32F103RBT6,如下图所示:
同样,在左上方是电源输入引脚,通过两路稳压芯片分别转为5V和3.3V供电;中间上方两排引脚是蓝牙和OLED接口;最中间是STM32F103RBT6芯片;再往右边看是串口和SWD接口,用于通信和代码烧入调试;两侧分别摆放了一个功能按键,中间是复位按键;左下和右下则是两个双轴摇杆。
在这里插入图片描述

5. 舵机驱动板

舵机驱动板有两个,分别引用的是AMS1117芯片和LM2596S芯片,其中AMS1117最大输出1A电流,用于驱动机械臂的四个sg90舵机(工作电流为100mA);LM2596S最大输出电流为3A,用两个分别驱动四足机器人的8个MG995舵机(工作电流为300-500mA)

AMS1117:在这里插入图片描述
LM2596S:
在这里插入图片描述

四、软件设计

1. 环境

  • RT-Thread Studio
  • STMCubeMX
  • SketchUp Pro 2022
  • Cura
  • 嘉立创EDA(专业版)
  • 串口助手
    在这里插入图片描述

2. 遥控器

通过四个电位器采集摇杆改变的ADC的四个通道值,按键选择控制模式,利用OTA协议将数据打包利用蓝牙发送到机器人主控板上

这里示例部分代码:

int8_t  pack(ProtocolBufferT *handler,uint8_t type, void* src, uint16_t size, uint8_t** dest,uint16_t* dest_size )
{
    assert(size+7 < handler->max_size);
    assert(type>0 && type < 128);
    handler->data[0] = PROTO_HEAD0;
    handler->data[1] = PROTO_HEAD1;
    handler->data[2] = size & 0xff;
    handler->data[3] = size >> 8;
    handler->data[4] = type;
    memcpy(handler->data+5, src, size );
    handler->pack_len = size;
    uint16_t sum = calc_sum(handler);
    handler->data[size+5] = sum & 0xff;
    handler->data[size+6] = sum >> 8;
    handler->data_ptr = size+7 ;
    if (dest)      (*dest) = handler->data;
    if (dest_size) (*dest_size) = handler->data_ptr;
    return 0;
}

3. 机器人

首先是初始化LED、Key、Timer、Uart、PWM,在遥控模式下利用DMA接收串口发过来的数据包并解包,分别赋给各舵机状态进行控制;在视觉模式下,检测到前面有目标物块时,四足机器人停止运动,则控制机械臂去抓取释放;运动模式下,四足机器人会表现出不同的状态,即拉伸动作、俯卧撑、舞步等。

void Blue_rx(void)
{
    struct rx_msg msg;
    rt_err_t result;
    rt_uint32_t rx_length;

    while (1)
    {
        rt_memset(&msg, 0, sizeof(msg));
        result = rt_mq_recv(&rx_mq, &msg, sizeof(msg), RT_WAITING_FOREVER);  /* 从消息队列中读取消息*/
        if (result == RT_EOK)
        {
            rx_length = rt_device_read(msg.dev, 0, Blue_rx_buffer, msg.size);   /* 从串口读取数据*/
            if(rx_length==9 && Blue_rx_buffer[0]==0xAA && Blue_rx_buffer[1]==0x55 && Blue_rx_buffer[8]==0x2B)
            {
                Blue_rx_buffer[rx_length] = '\0';
                rx_flag=1;
                data[0]=Blue_rx_buffer[2];
                data[1]=Blue_rx_buffer[3];
                data[2]=Blue_rx_buffer[4];
                data[3]=Blue_rx_buffer[5];
                key_sw1_status=Blue_rx_buffer[6];
                key_sw2_status=Blue_rx_buffer[7];
            }
        }
    }
}

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

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

相关文章

【机器学习笔记】14 关联规则

关联规则概述 关联规则&#xff08;Association Rules&#xff09;反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系&#xff0c;那么&#xff0c;其中一个事物就能够通过其他事物预测到。 关联规则可以看作是一种IF-THEN关系。…

Sora:最强文生视频工具

Sora是什么 Sora&#xff0c;是一款能够根据文本创建出逼真的、富有想象力场景的AI模型。Sora能够娴熟地创造出高达一分钟的高清视频&#xff0c;其视觉内容丰富多样&#xff0c;分辨率精准无误。Sora的强大之处在于&#xff0c;它通过在视频和图像的压缩潜在空间中进行训练&a…

[ai笔记10] 关于sora火爆的反思

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第10篇分享&#xff01; 最近sora还持续在技术圈、博客、抖音发酵&#xff0c;许多人都在纷纷发表对它的看法&#xff0c;这是一个既让人惊喜也感到焦虑的事件。openai从2023年开始&#xff0c;每隔几个…

SpringSecurity + OAuth2 详解

SpringSecurity入门到精通 ************************************************************************** SpringSecurity 介绍 **************************************************************************一、入门1.简介与选择2.入门案例-默认的登录和登出接口3.登录经过了…

笑营宝课后延时服务选课报名管理系统简介

课后延时服务是在“双减”政策背景下推向全国的校园服务。开展丰富多彩的课后服务&#xff0c;既解决家长负担&#xff0c;又能在校内提供作业辅导及素质提升课程&#xff0c;实现教育公平。是解决孩子三点半放学之后的校园服务&#xff0c;但也需要最大限度的降低学校老师的工…

基于java的企业校园招聘平台的设计与实现

分享一个自己的毕业设计&#xff0c;想要获取源码的同学加V&#xff1a;qq2056908377 链接&#xff1a;https://pan.baidu.com/s/1It0CnXUvc9KVr1kDcHWvEw 提取码&#xff1a;1234 摘要&#xff1a; 摘要&#xff1a;本毕业设计旨在设计和实现一个企业校园招聘平台&#xf…

【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图

vueElement UI项目中数据分析功能需要用到圆环图 折线图 饼图 柱状图等&#xff0c;可视化图形分析 安装流程及示例 1.安装依赖 npm install echarts --save2.在main.js中引入并挂载echarts import echarts from echarts Vue.prototype.$echarts echarts3.在需要使用echart…

代码随想录刷题笔记-Day20

1. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/ 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#x…

RecombiMAb anti-mouse CD40,FGK4.5-CP133单克隆抗体

FGK4.5-CP133单克隆抗体是原始FGK4.5单克隆抗体的重组嵌合型抗体。可变结构域序列与原始FGK4.5克隆号相同&#xff0c;但是恒定区序列已经从大鼠IgG2a变为小鼠IgG2a。FGK4.5-CP133抗体像原始大鼠IgG2a抗体一样&#xff0c;不包含Fc突变。 FGK4.5-CP133单克隆抗体能与小鼠CD40(也…

压缩感知(Compressed Sensing,CS)的基础知识

压缩感知&#xff08;Compressed Sensing&#xff0c;CS&#xff09;是一种用于信号处理的技术&#xff0c;旨在以少于奈奎斯特采样定理所要求的样本频率来重构信号。该技术利用信号的稀疏性&#xff0c;即信号可以用较少的非零系数表示。压缩感知在图像获取中的应用使得在采集…

阿里云个人建站笔记

导航 一、购买ECS服务器二、配置mysql&#xff08;一&#xff09;安装Mysql步骤一&#xff1a;安装mysql步骤二&#xff1a;配置MySQL步骤三&#xff1a;远程访问MySQL数据库 &#xff08;二&#xff09;给实例配置安全组策略&#xff08;三&#xff09;设置防火墙 一、购买ECS…

防御保护——综合实验

拓扑图 实验需求&#xff1a; 1.Fw1和Fw2组成主备模式的双机热备 2.DMZ区存在两台服务器&#xff0c;现在要求生产区的设备仅能在办公时间&#xff08;9:00-18:00&#xff09;访问&#xff0c;办公区的设备全天都可以访问。 3.办公区设备可以通过电信链路和移动链路上网(多对多…

Linux 实例常用内核参数介绍—容器访问外部网络之ip_forward数据包转发

文章目录 1 问题解决1.1 问题1.2 原因1.3 解决临时打开永久打开 下面为扩展内容Linux 实例常用内核参数介绍:[https://cloud.tencent.com/document/product/213/46400](https://cloud.tencent.com/document/product/213/46400) 2 net.ipv4.ip_forward内核参数通俗解释3 在Linux…

[office] EXCEL怎么制作大事记图表- #学习方法#其他

EXCEL怎么制作大事记图表? 在宣传方面&#xff0c;经常会看到一些记录历史事件、成长历程的图&#xff0c;非常的直观、好看(如下图所示)。那么是怎么做到呢呢?这里我们介绍一下用EXCEL表格快速做出事件记录图的方法。 1、首先&#xff0c;做出基础表格(如下图一所示)。表格…

nacos部署

简介 Nacos 阿里巴巴推出来的开源项目&#xff0c;是更易于构建云原生应用的动态服务发现、配置管理和服务管理平台 Nacos 致力于发现、配置和管理微服务&#xff0c;并提供简单易用的特性集&#xff0c;能够快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 更…

金三银四,全网最详细的软件测试面试题总结

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前面看到了一些面试题&#xff0c;总感觉会用得到&#xff0c;但是看一遍又记不住&#xff0c;所…

LeetCode每日一题【26.删除有序数组中的重复项】

题目如下&#xff1a; 思路&#xff1a; 双指针&#xff0c;开始时left指向首元素&#xff0c;right指向下一个元素。当left对应元素与right对应元素相同时&#xff0c;向后移动right&#xff1b;当不相同时&#xff0c;先往后移动left&#xff0c;再把right所指元素赋值给lef…

150173-73-2,BODIPY 558/568 NHS 活化酯,一种具有稳定荧光属性的黄色染料

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;150173-73-2&#xff0c;BODIPY 558/568 NHS 活化酯&#xff0c;BODIPY 558/568 NHS ester &#xff0c;BODIPY 558/568 NHS 一、基本信息 产品简介&#xff1a;BODIPY 558/568具有高度的量子产率和消光系数&#x…

【ansible】通过role角色部署lnmp架构

目录 一、roles模块的介绍 二、roles的目录层次 2.1 roles 内各目录含义解释 三、在一个playbook中使用roles模块的步骤 四、实操 步骤一&#xff1a;完成目录的准备 步骤二&#xff1a;完成nginx的roles创建和测试 1.准备nginx.repo文件到files子目录中 2.完成vars目…

STM32F1 - I2C读写EEPROM

Inter-integrated circuit 1> 实验概述2> I2C模块 - 硬件方框图3> I2C模块 - 主发送器模式3.1> 发送1Byte数据3.2> 抓波形 4> I2C模块 - 主接收器模式 1> 实验概述 通过STM32F103内部I2C硬件模块&#xff0c; 读写EEPROM - AT24C02 2> I2C模块 - 硬件方…