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?2?否??某寶購買
11配平墊圈M6??配平從動輪5,使得主動輪7和從動輪5支撐起來的車體4水平?若干?否?
12電機支架??將驅動電機10固定到車體4上2?否??隨電機配套購買

  從上表中可以看出,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.pswp.cn/news/450727.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450727.shtml
英文地址,請注明出處:http://en.pswp.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 局部變量存放…

Linux 基本操作--文件查看 (day3)

一、查看文件-----cat (詳情參考:http://blog.sina.com.cn/s/blog_52f6ead0010127xm.html) 語法結構: cat 查看方式 文件 cat -A : show all 顯示所有內容,相當于-vET [rootlocalhost tmp]# cat -A /etc/profile #注釋:查看/erx/目錄下profile文件的內容 cat -b  :對非空…

如何在面試時寫出高質量的代碼

摘要&#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…

11月12號 用戶登錄輸入密碼錯誤達到指定次數后,鎖定賬戶 004

用戶表里添加兩個屬性 連續密碼輸錯次數private Integer loginFailCount;/** 登錄失敗禁用時間 */ private Date missDate; / 如果登錄錯誤次數大于5次 規定時間內禁止登錄if(dbUser.getLoginFailCount() ! null && dbUser.getLoginFailCount() > 3){if(DateUtils.…

Goobuntu:谷歌的內部桌面系統

摘要&#xff1a;大多數Linux用戶都知道Google用Linux作為它們的桌面和服務器端操作系統&#xff0c;有的人可能還知道Google選擇的是定制的Ubuntu——Goobuntu&#xff0c;但在此之前幾乎沒有Google外部人員了解他們究竟是如何使用Ubuntu的&#xff0c;8月29日&#xff0c;Tho…

Springboot 之 Hibernate自動建表(Mysql)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 引入Maven依賴包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-…

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…

我的nabcd

我們組要做的軟件是一款MP3播放軟件&#xff0c;名字叫TDG音樂 N&#xff08;need需求&#xff09;&#xff0c;由于現在版權越來越被重視&#xff0c;許多播放軟件里面的大部分歌曲都是收費的&#xff0c;不想花錢又想聽可怎么辦呢&#xff0c;只能在網上找免費資源&#xff0…

【C/C++和指針】深度解析---指針與數組 【精華】

一&#xff0c;引例子 二維數組可以使用指向數組的指針代替&#xff0c;而指針數組才可以用指向指針的指針代替。 [html] view plaincopy#include<iostream> using namespace std; void main() { char *a[]{"Hello","the","World&q…

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…