ROS系统玩转自主移动机器人(3)-- 开源机器人结构介绍

ROS系统玩转自主移动机器人(3)-- 开源机器人结构介绍

本机器人机械结构设计相关的所有设计文件下载地址为:传送门

 其中包含:三维造型设计文件(所有零件+装配效果)(tips:基于Solidworks 2015 绘制)

     非标加工的零件图纸(PDF格式+Dwg格式)

  

  本开源机器人项目首要目的是让感兴趣的朋友花很少的钱就能玩转功能简单的机器人,了解机器人的搭建过程并学习ROS系统(如机器人SLAM),因此结构设计的目标和原则很明确:设计一款轮式机器人,满足功能要求的基础上尽量做到成本低廉,总之花小钱多办事。

  例如,最终笔者在非标准金属加工件的的总投入是115元RMB(包含邮费,价格很低了吧 ^_^ ,当然这不包括购买的标准件,后面具体讲),这首先就是因为在设计之初就考虑零部件加工工艺及成本,其次说明现在机加工行业竞争真的很激烈。。。(实体加工企业日子难熬。。。)

一、开源机器人结构设计

  首先看一下这个开源机器人在机械结构上共分为13个部分,它们的分布和位置关系如图1所示。

图1 机械构成

   每个组成部分的功能基本上都能在图1中看出来,为了说明更详细,列出下面的表格,对他们的详细功能进行细致的说明。

序号名称功能数量是否机加备注
1激光雷达平台固定激光雷达 1 是 
2支柱 支撑和链接车体4及上车体35 否 
3上车体 机器人上层平台用于放置激光雷达平台1及电脑(或ARM开发板)1 是 
4车体机器人下层平台用于链接主、从动轮及放置嵌入式硬件、电池等 1是  
5从动轮万向从动轮 2否 某宝购买 
6螺栓M6x30及M6螺母 将从动轮5固定到车体4上8(组)否 内六角圆柱头螺钉 
7主动轮 驱动机器人2否 某宝购买 
8螺栓M3x10及M3螺母将主动轮7固定到车体4上 8(组)否 内六角圆柱头螺钉 
9螺母M10 将支柱2连接到车体4、上车体3以及激光雷达平台1上 20 否 铝合金材质 
10驱动电机 驱动主动轮7 否  某宝购买
11配平垫圈M6  配平从动轮5,使得主动轮7和从动轮5支撑起来的车体4水平 若干 否 
12电机支架  将驱动电机10固定到车体4上否  随电机配套购买

  从上表中可以看出,6、8、9、11为标准件,直接按照规格购买即可,这里就不在赘述,下面分析几个需要加工的非标准件。

  1. 激光雷达平台(图2所示)

  这里的激光雷达平台是专门放置和固定该激光雷达的,四个孔的设计分别和相应的激光雷固定孔位置保持一致即可,也很简单。材料我们选择加工性能良好且价格便宜的铝合金(牌号6061)。本开源机器人采用的激光雷达是思岚科技的LIDAR RPLIDAR-A1,原因只有一个:性能勉强能做室内SLAM且价格便宜(某宝上官网价格是582元)。

         

图2 平台及激光雷达(LIDAR RPLIDAR-A1)

   2. 支柱(图3所示)

  这里支柱用来连接上下两层车体以及激光雷达平台(图3左),本来可以采用铝杆进行设计和加工,但是为了降低成本要尽量减少机加工零件的数量,因此零件我们采用的方案是直接在某宝上购买现成的M10铝合金螺杆(如图3中),然后根据我们的需求截取相对应的长度,直接用购买的M10螺母(铝合金材质,同店铺购买即可)进行连接固定,连接固定的方式如图3右所示。

                          

图3 支柱示意图,铝合金螺杆实物图,支柱固定方式示意图

   3. 上车体和 4. 车体(如图4所示)

   上车体(图4左主要是用来放置上位机(笔记本电脑或者开发板)进行SLAM等相关实验的,车体(图4右)是用来放置底层的嵌入式硬件、电池等部件的,同时底面用来固定电机和主从动轮。这两个零件是非标转件需要机加工,因此为了降低加工成本采用加工性能良好且价格便宜的铝合金(牌号6061),厚度也保持和激光雷达平台一致(3mm,一致的材料有助于降低加工成本),且孔位置的设计也尽量保持共线或均布,有利于简化加工工艺(加工工艺简单同样有助于降低加工成本)。 具体尺寸及图纸参考本文开头给出的下载链接,下载后可以看到详细的加工图纸。

                   

图4 上车体和车体

   5. 从动轮和 7. 主动轮(如图5所示)

   从动轮为万向轮,尺寸为:2寸(大小可以不一样,反正可以用垫圈调整高度),主动轮为实心橡胶承重轮(实心橡胶不会容易变形导致外径变化),固定孔内径为6mm,轮胎外径为100mm,胎宽29mm,承重100Kg,注意购买时确认轮胎固定孔内径的尺寸要和电机伸出轴外径的尺寸一致。注意。从动轮和主动轮都是从某宝上购买,后面我会弄个表格附上购买店铺和价格,避免广告嫌疑就这里就不贴了。

                        

图5 从动轮实物图和主动轮实物图。

  10. 电机的选型 和  12. 电机支架(图6所示)

  首先列一下平台的基本参数:

  • 最大负载:5 Kg

  一般笔记本电脑重量1Kg~3Kg(用笔记本充当SLAM上位机),安全系数为2,因此负载计为5Kg

  • 机器人本体:10Kg

  电池重3Kg,其余零部件(多为铝材)合计2~3Kg,安全系数为2,因此本体记为10Kg

  • 最高速度 0.5m/s

         室内运行,速度不需要太快。

  • 最小离地间距(越障能力):3 cm

         室内平坦环境下使用,可以越过电线、地毯等障碍,最小离地间距3cm 足够。因此选择主动轮直径D = 100 mm = 0.1 m。

  • 连续运行10 h

         尽量多的运行时间,方便后期调试,避免频繁充电。

电机选型表

  首先我们选择的电机为ASLONG(金顺来特)的JGB37-3530B系列电机(某宝上有专营店),选型参数表如上表所示,下面是选型计算的过程:

  根据上面列的平台参数表,平台总质量 M = M1+M2 = 5Kg + 10Kg = 15Kg (其中,M1:最大负载;M2:本体重量)

  故平台总重力W为:W = Mg = 15 x 9.8 ≈ 150 N  

  四个轮子,理论上每个轮子的分担重量为37.5 N,对于两个主动轮,考虑重量分布不均匀且预留一定安全余量,假设每个轮子单独承担的重量各为N = 50N,则电机扭矩T轮子运动时的关系为:

  T = μ N R (其中,μ = 0.5为滚动摩擦系数;N = 50N为驱动轮承担的重量;R = 0.05m为主动轮半径;)

  故:T = 0.5 x 50 x 0.05 = 1.25 N·m = 1.25/9.8 Kg力·100 cm = 12.755 Kg·cm

  由于我们在重力负载以及重量分担上已经留了安全余量,因此电机的扭矩选择直接参考该数值就可以了。

   已知平台最高速度V = 0.5 m/s;电机最高转速设为Rpm,则有:

  Rpm =60x V/(2πR) = 60 x 0.5/(2x3.14x0.05) = 95.54 rpm

  因此我们选择的电机为上面电机选型表中打红勾 的型号,部分参数为:

  • 最高转速111 rpm(大于95.54 rpm)
  • 扭矩为14 Kg·cm(大于12.755 Kg·cm)
  • 堵转转矩为25 Kg·cm;
  • 额定电压 24 V
  • 功率 3 W
  • 减速比 90
  • 带磁编码器(用于计量里程)

   

          

图6 电机实物图和电机支架实物图

  至此,我们本平台的机械节后部分就介绍完了,可以看出,在能实现基本功能的前提下在结构上已经尽力简化和,基本采用的都是现有的成品件,有利于降低平台搭建的价格。其实由于方案过于简单,这里的机械结构设计基本上没什么技术含量,但是过程还是要有的。

  下一篇博文开始介绍嵌入式硬件部分的搭建过程。

 

 <-- 本篇完 --> 

 

欢迎留言、私信、邮箱、微信等任何形式的技术交流。

作者信息:

名称:Shawn

邮箱:zhanggx0102@163.com

微信二维码:↓

          

posted on 2018-09-11 22:05 Shawn0102 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/shawn0102/p/9612508.html

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

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

相关文章

【2022】JVM常见面试真题详解

文章目录5. JVM5.1 JVM包含哪几部分&#xff1f;5.2 JVM是如何运行的&#xff1f;5.3 Java程序是怎么运行的&#xff1f;5.4 本地方法栈有什么用&#xff1f;5.5 没有程序计数器会怎么样&#xff1f;5.6 说一说Java的内存分布情况5.7 类存放在哪里&#xff1f;5.8 局部变量存放…

如何在面试时写出高质量的代码

摘要&#xff1a;有些程序员由于平时没有养成良好的编程习惯&#xff0c;在面试时写出的代码质量不高&#xff0c;最终遗憾地与心仪的公司和职位失之交臂。如何在面试时能写出高质量的代码&#xff0c;是很多程序员关心的问题。 程序员在职业生涯中难免要接受编程面试。有些程序…

IntelliJ IDEA添加jar包

见&#xff1a;http://blog.csdn.net/a153375250/article/details/50851049 以JDBC-MySQL驱动包为例 1、在IntelliJ IDEA中打开要添加jar包的Project 2、File – Project Structure如下图 3、选择Moudules – 再选择Dependencies如下图 4、选中Moudule source – 然后点击2处号…

Python3 与 C# 并发编程之~ 进程篇

上次说了很多Linux下进程相关知识&#xff0c;这边不再复述&#xff0c;下面来说说Python的并发编程&#xff0c;如有错误欢迎提出&#xff5e; 如果遇到听不懂的可以看上一次的文章&#xff1a;https://www.cnblogs.com/dotnetcrazy/p/9363810.html 官方文档&#xff1a;https…

Spring全家桶面试真题

文章目录1. Spring Boot1.1 说说你对Spring Boot的理解1.2 Spring Boot Starter有什么用&#xff1f;1.3 介绍Spring Boot的启动流程1.4 Spring Boot项目是如何导入包的&#xff1f;1.5 请描述Spring Boot自动装配的过程1.6 说说你对Spring Boot注解的了解2. Spring2.1 请你说说…

WSDL测试webservice接口记录

收到一个事情&#xff0c;需要对接第三方API&#xff0c;对方给了个service&#xff0c;看了一下&#xff0c;原来是webservices的。 上一次测试webervice的接口&#xff0c;还是至少八九年前的时候了&#xff0c;这种相对比较老旧的也好久不在使用。 于是&#xff0c;简单搞了…

idea窗口下方滚动条不明显设置

在使用idea时&#xff0c;下方的滚动条老是显示不明显&#xff0c;每次点击拖拽都很费劲&#xff0c;在网上找了很多相关设置&#xff0c;最后确定了一个最好的办法解决问题&#xff1a; Shift &#xff08;上档&#xff09; 鼠标滚动&#xff0c;这样就可以横向翻滚了&#…

把握本质规律——《数学之美》作者吴军

无论是互联网&#xff0c;还是手机、电视&#xff0c;现代通信都遵循信息论的规律&#xff0c;整个信息论的基础都是数学。搜索引擎、语音识别、机器翻译也都是我们生活中离不开的技术&#xff0c;数学也是解决这些问题的最好工具。在《浪潮之巅》出版后&#xff0c;吴军将蕴含…

Hibernate4 注解方法说明

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.类级别注解 Entity 映射实体类 Table 映射数句库表 Entity(name"tableName") - 必须&#xff0c;注解将一个类声明…

消息队列常见面试题

文章目录2. 消息队列2.1 MQ有什么用&#xff1f;2.2 说一说生产者与消费者模式2.3 消息队列如何保证顺序消费&#xff1f;2.4 消息队列如何保证消息不丢&#xff1f;2.5 消息队列如何保证不重复消费&#xff1f;2.6 MQ处理消息失败了怎么办&#xff1f;2.7 请介绍消息队列推和拉…

Mybatis 详解--- 一级缓存、二级缓存

2019独角兽企业重金招聘Python工程师标准>>> Mybatis 为我们提供了一级缓存和二级缓存&#xff0c;可以通过下图来理解&#xff1a; ①、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象&#xff0c;在对象中有一个数据结构&#xff08;Hash…

Redis常见面试题详解

文章目录1. Redis1.1 Redis可以用来做什么&#xff1f;1.2 Redis和传统的关系型数据库有什么不同&#xff1f;1.3 Redis有哪些数据类型&#xff1f;1.4 Redis是单线程的&#xff0c;为什么还能这么快&#xff1f;1.5 Redis在持久化时fork出一个子进程&#xff0c;这时已经有两个…

IntelliJ 创建main函数、for循环、输出语句快捷键

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 今天偶然发现了IntelliJ中 创建main函数的快捷键&#xff0c;依次还有for循环&#xff0c;System.out.println(); 在编写代码的时候直接…

CentOS新增用户并授予sudo权限

2019独角兽企业重金招聘Python工程师标准>>> 新增用户 添加用户useradd demo设置用户密码passwd demo授予sudo权限 输入以下命令&#xff0c;编辑sudoers配置&#xff1a;visudo找到以下行root ALL(ALL) ALL增加以下内容&#xff1a;demo ALL(ALL) ALL保存后登录dem…

跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击

跨站脚本功攻击&#xff0c;xss&#xff0c;一个简单的例子让你知道什么是xss攻击 一、总结 一句话总结&#xff1a;比如用户留言功能&#xff0c;用户留言中写的是网页可执行代码&#xff0c;例如js代码&#xff0c;然后这段代码在可看到这段留言的不同一户的显示上就会执行。…

Jenkins常用插件

Generic Webhook Trigger Plugin触发器webhook用户触发构建Deploy to container Plugin部署到tomcatGradle Plugin Gradle插件构建项目Maven Plugin Maven插件构建项目Git Plugin Git插件克隆项目GitHub plugin GitHub插件集成githubSSH Slaves plugin SSH插件用于远程登录Buil…

分布式常见面试题详解

文章目录1. 分布式1.1 什么是CAP原则&#xff1f;1.2 说一说你对高并发的理解1.3 如何实现分布式存储&#xff1f;1.4 说一说你对分布式事务的了解1.5 分布式系统如何保证最终一致性&#xff1f;1.6 谈谈你对分布式的单点问题的了解1.7 HTTP和RPC有什么区别&#xff1f;1.7 HTT…

windows 下启动zookeeper的zkServer.cmd服务闪退

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 解决方案把conf目录下的默认zoo_sample.cfg的文件名字改成zoo.cfg 即可&#xff1a; 以上转自&#xff1a;http://blog.csdn.net/qq4960…

设计模式常见面试真题详解

文章目录1. 设计模式1.1 说一说设计模式的六大原则1.2 说一下六大原则中的开闭原则1.3 手写一个单例模式1.4 手写一个线程安全的单例模式1.5 说一说你对工厂模式的理解1.6 简单工厂模式和抽象工厂模式有什么区别&#xff1f;1.7 如何实现工厂模式&#xff1f;1.8 说一说你策略模…

场景应用题目常见面试真题详解

文章目录1. 场景应用1.1 微信红包相关问题1.2 秒杀系统相关问题1.3 扫码登录流程1.4 如何实现单点登录&#xff1f;1.5 如何设计一个本地缓存&#xff1f;1. 场景应用 1.1 微信红包相关问题 参考答案 概况&#xff1a;2014年微信红包使用数据库硬抗整个流量&#xff0c;2015…