日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

六轴机械臂DIY(三)开源项目介绍

發布時間:2024/3/24 编程问答 91 豆豆
生活随笔 收集整理的這篇文章主要介紹了 六轴机械臂DIY(三)开源项目介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

就這樣一年半了,項目斷斷續續仍在進行,期間我混了個畢業,相信大家也經歷了很多吧。最近上海疫情,畢業后的我哪里也去不了,只能在寢室等學校的投喂,那么正好,讓我們項目繼續。

本節主要完整介紹這個機械臂的開源項目,首先介紹該項目的整體概述,之后介紹機械臂的硬件連接,最后帶大家初步過一遍項目下位機的代碼,并能夠對項目如何部署有一個大致的印象。

一. 項目概述

1.1 背景介紹

本項目是一個開源的六軸機械臂項目,項目名稱為 arduino-sainsmart。sainsmart是一個美國創客品牌,公司的官網地址為

https://www.sainsmart.com/

他們公司主要業務為開源硬件設計和創客社群運營,所以本項目是他們研發的產品,但是從公司的產品頁面可以看到本項目已經不在繼續,產品頁面地址為

https://www.sainsmart.com/products/6-axis-desktop-robotic-arm-assembled

不過這并不阻礙我們自己動手搭建一個性價比極高的機械臂。

1.2 項目獲取

感謝sainsmart公司將該款機械臂的控制系統的下位機代碼開源到了github,讓我們能夠獲取。github項目地址為

https://github.com/wedesoft/arduino-sainsmart

由于國內訪問的不穩定性,我們也可以從國內鏡像網站gitcode上獲得,網站為

https://gitcode.net/mirrors/wedesoft/arduino-sainsmart

熟悉git操作的可以直接使用git clone ,不熟悉git的朋友可以直接在克隆按鈕的下來框中選擇zip下載。項目介紹都是英文,有點頭疼。不要怕,接下來我們一起過一下。

總之完成下載并解壓后你會得到一個叫arduino-sainsmart項目文件夾,文件夾中結構為

arduino-sainsmart ├── arduino │ ├── Makefile │ └── sainsmart.ino ├── etc │ └── dem ├── spec │ └── .rb ├── controllerbase.hh ├── path.hh ├── profile.hh ├── calibration.hh.default ├── README.md ├── TODO.md ├── 一些介紹圖片 └── 5個.rb文件,可以不管

項目文件中包含了5個C++文件(.hh),5個ruby文件(.rb),1個arduino文件(.ino)和許多介紹圖片(.jpg),通過圖片我們可以對項目有一個大致的了解,README.md文件中包含了項目的描述以及后續需要發送的串口指令。

項目整體使用arduino調用C++文件的形式,所有的ruby文件都用于使用xbox控制機械臂,但我沒有xbox,所以并不打算使用這一功能,因此暫時可以不看ruby文件。

二. 硬件連接

2.1 硬件元件介紹

打開項目文件夾掃一遍圖片就可以看到本項目的機械外觀和硬件元件,這些也可以參考本系列的前兩篇文章,這里默認大家1.已經在心中有了機械臂的模型,2.已經購買了所需要的電氣元件。

項目使用的控制板為arduino UNO,這是一款熱門的diy板子,推薦購買DFROBOT的板子,外加拓展板,共140元。拓展板插到UNO上后使用外接5V電源對拓展板進行供電。使用串口線連接UNO和電腦進行燒錄調試。

六軸機械臂共有六個關節,加上頭部外加夾爪總共需要7個舵機,也可不用夾爪總共六個舵機。1234軸使用MG995舵機,56軸及外加軸使用9g舵機。舵機總共有三根導線,分別為橙黃線、紅線、棕線,其中棕色為接地線(重要),紅色為+5v,橙黃色為信號。

我們簡單對舵機轉動的原理進行介紹,舵機使用PWM波控制角度,PWM波是指周期脈沖方波,其中1表示接通,0表示斷開,波形如下圖所示。PWM波由無數個周期波形組成,每個周期中包含一段高電位和一段低電位。舵機的脈沖周期為20ms,其中每一周期中的高電位時間可在0.5ms與2.5ms之間調節。如果以垂直舵機方向為0度,那么脈沖高電位時間與舵機角度的關系如下圖所示。我們控制舵機的角度其實是在控制輸入舵機PWM波脈沖中高電位所占的時間。這一部分可以參考孫老師的視頻 https://www.bilibili.com/video/BV15X4y157ay

2.2 連接示意圖

好,了解完各個元件后我們將他們連在一起,依次將舵機接在拓展板的接口上,如圖為示意圖,請保證棕線接在GND上,默認

關節1(BASE)接11引腳

關節2(SHOULDER)接10引腳

關節3(ELBOW)接9引腳

關節4(ROLL)接8引腳

關節5(PITCH)接7引腳

關節6(WRIST)接6引腳

外加關節(GRIPPER)接5引腳

如果你已經搭建好了機械結構,并連接好了所有的舵機,將拓展板進行了外接5v電源,那么恭喜你,你已經有了一臺六軸機械臂的本體。關于系列(二)中的建模其實存在很多問題,我決定對機械臂重新建模,重新建模后的機械臂采用3d打印件作為所有桿件,方便淘寶訂購,同時大大減少了零件的數量,機械臂的末端三軸位于同一點,滿足機器人逆解要求。

三. 軟件燒錄及使用說明

3.1 控制器及控制軟件

本項目使用的控制器為arduino UNO,相信喜歡DIY的朋友都對他十分熟悉,通過上傳固件即可實現對輸出IO口的控制。arduino的控制程序編寫和上傳可以使用arduino IDE,下載地址為

https://www.arduino.cc/en/software

根據上文介紹的舵機PWM波控制原理,可以知道整個控制系統即為將我們想要的機器人位姿轉換為6個多級對應的PWM脈沖寬度。讓我們再過一下項目文件夾中的文件

arduino-sainsmart ├── arduino │ ├── Makefile │ └── sainsmart.ino ├── etc │ └── dem ├── spec │ └── .rb ├── controllerbase.hh ├── path.hh ├── profile.hh ├── calibration.hh.default ├── README.md ├── TODO.md ├── 一些介紹圖片 └── 5個.rb文件,可以不管

請重點關注我們需要的文件

arduino-sainsmart ├── arduino │ └── sainsmart.ino ├── controllerbase.hh ├── path.hh ├── profile.hh ├── calibration.hh.default └── README.md

簡單介紹一些各個文件的功能

  • sainsmart.ino:arduino控制固件軟件,是一個arduino系統的入口

  • profile.hh:每個關節舵機的 速度控制類,使用S加減速曲線

  • path.hh:每個關節舵機的 運動控制類,控制舵機的轉動

  • controllerbase.hh:項目運動控制基類,會在sainsmart.ino中繼承,是本項目的主要控制類

  • calibration.hh.default:項目設置類,包括設置各個關節多級連接控制器的端口、哥哥關節的最大最小角度、關節初始角度、關節運動速度等參數,需要在使用前更改名字,刪去default

  • 3.2 固件部署步驟

  • 將calibration.hh.default更改名稱為calibration.hh

  • 新建一個文件夾,將sainsmart.ino、calibration.hh、profile.hh、controllerbase.hh、path.hh復制到該文件夾中

  • 由于arduino IDE串口調試最后一定會包括\n這個字符,我們需要在controllerbase.hh的輸入函數parseChar(char c)中加入一個case,10是’\n’的字符編碼,即跳過IDE默認的尾部字符。如果你使用的串口發送器指令最后不會自動加字符就可以不管這一條。

    case 10:break;
  • 使用IDE打開sainsmart.ino,可以看到項目使用的串口波特率為115200,連接控制板,編譯上傳固件

  • 保證控制板與PC連接狀態,打開IDE 工具—串口監視器,將右下波特率調為115200

  • 在輸入處輸入字母o,顯示1即實現了部署

  • 3.3 手動運動控制

    機械臂的串口控制代碼位于項目的README.md文件中,在開源分享網站中也可以看到,這里截取部分控制指令,具體的會在本系列的第四篇文章中對項目軟件進行詳細解讀

    o:檢查是否準備好程序

    t:獲取當前時間戳

    b:獲取基軸base的舵機角度

    打開IDE的串口監視器,發送o,返回‘1’表示軟件已準備,發送其他指令可以獲得不同的效果。通過指令可以設定各個舵機的角度,可以保存設定示教點的位置,可以實現對機械臂的控制。

    本文介紹了該開源項目的技術細節,通過背景介紹,硬件連接,軟件介紹對項目進行分析,最后實現了串口對機器人的指令控制。到此我們就擁有了一個六軸機器人的控制器,后續只要通過上位機軟件解析機器人位姿并通過串口發送到下位機就可以讓機器人按照我們的想法運動。

    總結

    以上是生活随笔為你收集整理的六轴机械臂DIY(三)开源项目介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。