设计一种可全向移动的球形机器人

2023-05-16

一、前言

之前在网上看到一种球形机器人,觉得很有趣,而且原理也比较简单,大概就是把一辆小车放在一个透明的亚克力球中,控制小车使球体滚动,姿态控制算法与平衡小车类似,然后我试着自己设计电路加3D打印做了一辆。

在这里插入图片描述

但是很快就发现了这种两轮的球形机器人一个有个缺陷,如果这种机器人由于碰到障碍或者其他意外因素导致横滚方向发生侧翻,将很难借助算法将其姿态纠正,容易因为侧翻卡在一个角落。

在这里插入图片描述

按理来说球就应该能全向滚动的,怎么会有方向之分呢,所以就打算重新设计一种能全向移动的球形机器人。

二、设计过程

1.麦克纳姆轮

说到全向移动,那肯定得提及麦克纳姆轮小车,这种小车由四个麦克纳姆轮驱动,麦克纳姆轮运动原理是将车辆同一侧的两个麦轮以相反的方向旋转,这样沿前后方的力就会抵消,而横向的力有恰好是同一方向,实现小车平移。

在这里插入图片描述

为了使机器人体积小巧,只买了直径20CM的亚克力透明球,但对于这个球壳来说,淘宝上的麦克纳姆轮普遍体积较大,还要塞下四个,结构方面属实有点困难,想要自制麦轮,结构又较为复杂,优化空间不大。

2.福来轮

后来在网上发现一种结构简单的万向轮,叫做福来轮,原理也不算复杂,大概就是通过控制全向轮平台的轮子以不同的速度旋转,使其在某一方向上获得速度分量,便可实现不同的运动效果。

福来轮的具体原理可以参考这篇文章:全向轮运动特性分析
在这里插入图片描述
而且最少使用三个福来轮,就能实现机器人的全向移动,节省了球体内部非常多空间。但淘宝上现成的福来轮体积也不小,而且想要契合内部球面的话,轮子的尺寸得定制。

由于之前工作有建模参数化设计的经验,就根据福来轮的结构特点,顺手写了个自动生成福来轮的插件,可以根据实际需求和现有材料,输入相应参数就能生成福来轮的轮毂模型。

真·造轮子
在这里插入图片描述
在这里插入图片描述

最终轮毂模型:
在这里插入图片描述

光固化3D打印:
在这里插入图片描述

装配:
在这里插入图片描述

3.主控芯片

主控使用STM32F103VET6
引脚数量足够多,预留排针,可以拓展各种外设。
在这里插入图片描述

4.陀螺仪

目前使用MPU6050,嫌弃回传速度太慢,稳定性差的话,也预留了串口陀螺仪接口。

在这里插入图片描述

在这里插入图片描述

5.电机及驱动电路

使用带编码器的减速直流电机

在这里插入图片描述

使用3S航模锂电,XL4016降压作为电机电源

在这里插入图片描述

使用RZ7899驱动电机

在这里插入图片描述

6.遥控器

使用PS2手柄遥控机器人,手柄和接收器可在淘宝买到

在这里插入图片描述
在这里插入图片描述

7.OLED

增加OLED模块可显示小车状态信息,方便调整参数
顺便兼容两种版本的IIC 0.96寸 OLED

在这里插入图片描述
在这里插入图片描述

8.PCB

最终使用转子发动机的莱洛三角形作为PCB外形,尺寸刚好10CM,感谢嘉立创免费打样。

在这里插入图片描述

嘉立创紫YYDS
在这里插入图片描述

手工贴片
在这里插入图片描述
在这里插入图片描述

9.上电测试

MCU和陀螺仪都工作正常,电机驱动也没问题,OLED显示正常
在这里插入图片描述

10.内部平台结构

作为支撑电机,安装主控电路板的平台,采用3D打印,需要考虑航模电池的安装,还有外设模块的拓展槽位。
在这里插入图片描述

3D打印平台结构,航模电池藏在下面
在这里插入图片描述

三、成品

组装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、结语

经测试,该机器人是能够全向运动的,灵活性要高于之前设计的两轮球形机器人,
最近比较忙,演示视频还没有空录制,之后再补上吧~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设计一种可全向移动的球形机器人 的相关文章

  • gazebo(1):gazebo常见问题及解决办法

    目录 1 将自己创建的gazebo模型导入后 xff0c 模型不停得抖动 xff0c 翻转 2 save world as 之后卡死 3 下载gazebo官方模型 xff1a 4 gazebo更新后无法打开 5 运行gazebo后报错 6
  • Makefile中的$(1)是什么

    Linux工程的编译要用到make工具 xff0c 平台不一样 xff0c 只是工具链不同 xff0c 但Makefile是编译系统的关键所在 xff0c 因此掌握Makefile的编写规则是非常重要的 尽管有了cmake这样更容易使用的编
  • gl的矩阵模式及其相应的矩阵变换函数

    以Android的GL10为例 xff0c 说明一下矩阵模式及其相应的矩阵变换函数 矩阵模式一共分为两种 xff1a gl glMatrixMode GL10 GL MODELVIEW 和 gl glMatrixMode GL10 GL P
  • 对md5sum程序的修改

    linux下自带md5sum工具 xff0c 可以对文件计算md5值 xff0c 但这个命令行工具不能直接对字符串求md5 xff0c 而对一个字符串求md5是一个比较有用的需求 xff0c 比如计算签名 于是对源码md5sum c修改了一
  • 物联网通信协议——比较-MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP

    原文链接 xff1a https blog csdn net lightrain0 article details 84343857 AMQP amp MQTT amp DDS https www youtube com watch v 6
  • 门电路逻辑符号大全(三态门,同或门,异或门,或非门,与或非门, 传输门,全加器,半加器等)

    最近要研究一下滤波器设计的无乘法器的实现 xff0c 所以要学习一下加法器的电路 xff0c 丢了一段时间 xff0c 忘的差不多了 xff0c 这里罗列一下常用的门电路的符号 这是一个1位全加器的数字电路组成 xff1a 以下两幅图可以复
  • 实函数傅里叶变换的奇偶虚实特性

    本文内容来源于他人的PPT xff0c 经本人整理而成 xff0c 算是对数字信号处理的复习吧 而实偶函数的傅里叶变换仍然是一个实偶函数的性质正是DCT的基础 xfeff xfeff
  • 多面体及欧拉公式及广义欧拉公式

    像正方体 xff0c 四棱锥这样的平面多面体属于简单多面体 xff0c 它们可以与球拓扑同构 xff0c 即可以连续拓扑变换成一个球 它们满足欧拉公式 xff1a v e 43 f 61 2 其中v是顶点 xff08 vertex xff0
  • mysql在表的某一位置增加一列的命令

    如果想在一个已经建好的表中添加一列 xff0c 可以用诸如 xff1a alter table t1 add column addr varchar 20 not null 这条语句会向已有的表t1中加入一列addr xff0c 这一列在表
  • tar命令中的-C作用

    tar xzvf abc tar gz C tmp 上面的命令将abc tar gz这个压缩包解压到当前目录下的tmp目录下 xff0c 而不是当前目录下 xff0c 这就是 C选项的作用
  • Java多线程

    一 基础概念 1 CPU核心数和线程数 多核心指的是单芯片多处理器 xff0c 将多个CPU集成到同一个芯片内 xff0c 不同的CPU可以单独的运行程序 目前主流的CPU有四核 六核 八核 增加核心数目的是为了增加线程数 xff0c 一般
  • ros(23):接收rviz中的2D Nav Goal、2D Pose Estimate消息

    1 rviz 教程 1 1 2D Nav Goal 2D Nav Goal Keyboard shortcut g This tool lets you set a goal sent on the 34 goal 34 ROS topic
  • RealSense SR300 坑4米 获取相机参数

    硬件 相机的原理我了解的也不甚多 xff0c 看到一篇讲的很好的文章 xff0c 就在这里引用了 SR300设备的红外线发射器 xff08 IR Laser Projector xff09 发射的 结构光 xff0c 经物体反射后会被红外线
  • 算法的分类

    算法有多种分类方式 xff0c 可以根据实现方式分类 xff0c 也可以根据设计方法分类 xff0c 还可以根据应用领域进行分类 不同的分类方式有不同的特点 按照实现方式分类 xff0c 可以将算法分为递归算法 迭代算法 逻辑算法 串行算法
  • Eclipse搭建stm32+jlink开发环境全攻略(进阶篇二)

    Eclipse搭建stm32 43 jlink开发环境全攻略 进阶篇 二 我们设计程序往往会遇到这样的一个需求 xff0c 那就是我们的程序起始位置需要重新定位 xff0c 并不是默认的0x08000000 xff0c 这种情况往往出现在有
  • 不要在小公司做底层软件开发

    在这里makekam对底层软件的理解就是指驱动开发 xff0c 代码移植等工作 其中也包括底层的算法 在小公司做软件不要做底层软件开发 xff0c 犹如在公司做硬件开发不要只是焊接电路板 小公司处于产业链的最末端 xff0c 没有自己的核心
  • 多旋翼飞控篇新手课堂教程(共九集)

    多旋翼飞控篇新手课堂第一课 xff0c 将你的NAZA M真正升级成NAZA V2 http www mxkong com thread 134 1 1 html 出处 模型控MxKong 多旋翼飞控篇新手课堂第二课 xff1a NAZA远
  • Java基础final详解

    final中文意思 最后的 最终的 final 可以修饰类 属性 方法和局部变量 1 当不希望类被继承时 可以用final修饰 final class A 不可被继承 2 当不希望父类的某个方法被子类覆盖 重写 override 时 可以用
  • socket编程总结

    socket编程总结 主机字节序和网络字节序 字节序分为大端字节序 xff08 big endian xff09 和小端字节序 xff08 little endian xff09 大端字节序 xff1a 一个整数的高位存在内存的底地址 xf

随机推荐

  • c++中的常见问题

    CSP J终于考完了啊 xff01 坐在考场 xff0c 是一种煎熬 xff1a 为什么那么多不会啊 xff01 xff01 xff01 这里 xff0c 总结一下在c 43 43 中的那些常见问题 xff08 作者亲身经历 xff09 x
  • 大陆毫米波雷达ARS408-21xx(内附毫米波雷达使用说明书)使用记录:第一期

    文章目录 前言一 硬件链接二 代码如何使用三 大陆毫米波雷达ARS408 21XX解析代码说明总结 前言 从我个人的学习成长历程来看 xff0c 从0到1确实很难 我个人在对这款毫米波雷达的学习的过程中也比较痛苦 xff0c 资料缺乏 xf
  • 2022年度GitHub最火的力扣算法刷题宝典,手把手教你如何刷力扣~

    前言 昨晚逛了逛GitHub xff0c 无意中看到一位P8大佬的算法刷题笔记 xff0c 感觉发现了宝藏 xff01 有些小伙伴可能已经发现了 xff0c 但咱这里还是忍不住安利一波 xff0c 怕有些小伙伴没有看到 关于算法刷题的困惑和
  • LIO-SAM学习与运行测试数据集

    文章目录 0 说明0 1 环境配置说明0 2 LIO SAM0 3 系统架构0 4 LIO SAM youtube视频演示 xff1a Rotation Dataset Walking Dataset Park Dataset Campus
  • 理解ROS:参数服务器和动态参数

    文章目录 1 程序中的getparam与param1 1 getparam xff08 无默认值 xff09 1 2 param xff08 有默认值 xff09 1 3 删除参数1 4 程序中设置参数1 5 检查参数1 6 搜索参数 2
  • ROS理解:ros中的坐标以及对tf2进行解读

    文章目录 1 ROS中的坐标2 tf到tf2的变化3 发布静态tf24 发布动态tf25 监听tf26 增加自己的frame 官网就是最好的教程 xff0c 如果阅读英文没什么压力 xff0c 强烈推荐以下链接进行全面了解 xff1a 官网
  • gtsam:从入门到使用

    文章目录 一 总览二 贝叶斯网络和因子图三 机器人运动建模3 1 使用因子图建模3 2 建立因子图3 3 因子图与变量3 4 GTSAM中的非线性优化3 5 全后验推论 四 机器人定位4 1 一元测量因子4 2 自定义因子4 3 使用自定义
  • 马尔可夫链、隐马尔科夫模型、贝叶斯网络、因子图

    文章目录 一 马尔可夫链以及隐马尔可夫模型1 1 概念1 2 举例说明隐马尔可夫模型 二 贝叶斯网络三 因子图 贝叶斯网络是很多概率模型的基础 xff0c 对于slam研究也是一项必须掌握的数学理论工具 一 马尔可夫链以及隐马尔可夫模型 1
  • 3D打印机DIY之一------Prusa i3的材料清单和总体结构组装

    自己使用铝件和亚克力板组装了一台Prusa i3 3D打印机 xff0c 现在把详细的过程记录下来 总体效果图 xff1a 一 材料清单 元件数量总价2020欧式铝方管 xff1a 4根400mm 3根340mm 1根150mm 1根130
  • 位置式PID与增量式PID的介绍和代码实现

    PID分为位置式PID与增量式PID 一 位置式PID 1 表达式为 xff1a 2 缺点 xff1a 1 xff09 由于全量输出 xff0c 所以每次输出均与过去状态有关 xff0c 计算时要对ek进行累加 xff0c 工作量大 xff
  • 常见蓝牙模块介绍和AT指令

    目录 一 HC 05主从一体蓝牙模块 二 HC 06从机蓝牙模块 三 低功耗BLE蓝牙4 0模块 cc2540或cc2541 四 JDY 10 蓝牙4 0 BLE模块 五 蓝牙模块LAYOUT注意事项 xff1a 常见的蓝牙模块为 xff1
  • PID参数调节总结

    原文链接 xff1a 点击打开链接 经验 xff1a 1 采样频率低 xff08 如500ms xff09 xff0c Kp一般是0 01级别 xff1b 采样频率高 xff08 如1ms xff09 xff0c Kp一般是1级别 2 先只
  • 为Keil添加注释的快捷键

    Keil刚装上是没有注释快捷键的 xff0c 可以自己添加 xff0c Edit Configuration xff0c 然后选择 Shortcut Keys 标签页 xff0c 下拉找到 Comment Selection xff0c 然
  • C语言__attribute__的使用

    一 介绍 GNU C 的一大特色就是 attribute 机制 attribute 可以设置函数属性 xff08 Function Attribute xff09 变量属性 xff08 Variable Attribute xff09 和类
  • ros(30):while(ros::ok()){}理解与使用示例

    while ros ok 理解 while ros ok 是ros的一种循环模式 xff0c 和ros Rate loop rate ros spinOnce 等结合可以控制程序的执行顺序 ros Rate loop rate 10 设置循
  • Jetson TX2更换软件源

    TX2的软件源为国外服务器 xff0c 网速会很慢 xff0c 需要换国内的ARM源 备份 etc lib路径下的source list文件 xff0c 然后在终端 xff08 按ctrl 43 alt 43 T打开 xff09 执行以下命
  • 使用Dockerfile创建镜像

    Dockerfile是一个文本格式的配置文件 xff0c 可以使用Dockerfile来快速创建自定义的镜像 一 基本结构 Dockerfile由一行行命令语句组成 xff0c 并且支持以 开头的注释行 一般而言 xff0c Dockerf
  • 高质量嵌入式Linux C编程 第二章 数据 学习笔记

    一 什么是数据类型 xff1f 数据类型包含两方面的内容 xff0c 数据的表示和对数据加工的操作 数据的全部可能表示构成数据类型的值的集合 xff0c 数据全部合理的操作构成数据类型的操作集合 二 什么是变量 xff1f 其值在作用域内可
  • 高质量嵌入式Linux C编程 第三章 运算符、表达式学习

    一 运算符有哪几类 xff1f xff08 1 xff09 算数运算符 xff1a 43 43 43 七种 xff08 2 xff09 关系运算符 xff1a gt lt 61 61 gt 61 lt 61 xff01 61 六种 xff0
  • 设计一种可全向移动的球形机器人

    一 前言 之前在网上看到一种球形机器人 xff0c 觉得很有趣 xff0c 而且原理也比较简单 xff0c 大概就是把一辆小车放在一个透明的亚克力球中 xff0c 控制小车使球体滚动 xff0c 姿态控制算法与平衡小车类似 xff0c 然后