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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

【从零开始的ROS四轴机械臂控制】(一)- 实际模型制作、Solidworks文件转urdf与rviz仿真

發(fā)布時(shí)間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【从零开始的ROS四轴机械臂控制】(一)- 实际模型制作、Solidworks文件转urdf与rviz仿真 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前記:

之前學(xué)習(xí)了很多關(guān)于ROS的知識(shí),現(xiàn)在想自己制作一個(gè)四軸器械臂來(lái)練練手。所以就定為arm0.1版本,使用MG90s舵機(jī)來(lái)搭建一個(gè)四軸機(jī)械臂。arm0.1版本的目標(biāo)是對(duì)不同顏色的方塊進(jìn)行分類并在Gazebo中模擬出來(lái)。

在未來(lái)計(jì)劃的arm1.0版本中,計(jì)劃使用步進(jìn)電機(jī)來(lái)搭建六軸機(jī)械臂,使用上RL,實(shí)現(xiàn)人機(jī)交互,希望能在下個(gè)學(xué)期完成它。

一、模型制作

1.實(shí)際模型制作

首先是實(shí)際模型的制作,就使用3d打印機(jī)制作了。我使用的是ANYCUBIC的一款打印機(jī),主要是因?yàn)閮r(jià)格便宜,性價(jià)比比較高,而且安裝也不用太花時(shí)間,使用下來(lái)穩(wěn)定性還不錯(cuò)。

四軸機(jī)械手網(wǎng)上的模型挺多的,我這里采用https://www.thingiverse.com/thing:34829提供的模型,這個(gè)模型設(shè)計(jì)中有考慮誤差,所以打印基本一次成型。

以下是網(wǎng)站中提供的圖片。


實(shí)際模型打印出如下圖。比較需要注意的夾爪部分的齒輪,打印出來(lái)的尺寸和模型給出來(lái)的尺寸還是有區(qū)別的。因?yàn)槭驱X輪結(jié)構(gòu),對(duì)精準(zhǔn)度要求比較高,需要打印幾次才能成功。

舵機(jī)我采用MG90s,畢竟我手頭只有這個(gè)版本的舵機(jī)。舵機(jī)控制使用16路舵機(jī)驅(qū)動(dòng)控制模塊PCA9685:

用arduino UNO控制,接線如圖所示:

圖片來(lái)源見(jiàn)水印,關(guān)于PCA9685模塊的使用可以參考相關(guān)博客:Arduino uno使用PCA9685模塊實(shí)現(xiàn)16路舵機(jī)控制。


以上是這個(gè)項(xiàng)目目前的框圖,有很多細(xì)節(jié)沒(méi)有標(biāo)清楚,只標(biāo)出了硬件部分,其它的在未來(lái)會(huì)慢慢補(bǔ)全。

全程使用VM虛擬機(jī),在未來(lái)arm1.0版本中可能使用Raspberry pi來(lái)控制,只把圖像處理和模擬部分放在PC上。

然后測(cè)試了我所使用的這個(gè)USB攝像頭,發(fā)現(xiàn)其好像無(wú)法接到虛擬機(jī)中。然后考慮到價(jià)格問(wèn)題,還是覺(jué)得沒(méi)有必要買個(gè)新的攝像頭,要實(shí)現(xiàn)對(duì)不同顏色的方塊進(jìn)行分類,完全可以在gazebo中模擬出來(lái)。arduino和虛擬機(jī)的連接是沒(méi)有問(wèn)題的,可以正常使用虛擬機(jī)進(jìn)行下載程序。關(guān)于arduino如何與ros進(jìn)行連接,將在以后的博文中進(jìn)行說(shuō)明。

2.Solidworks模型制作

Solidworks使用的是2017版本。因?yàn)橹疤峁┠P偷木W(wǎng)站只提供stl文件,stl導(dǎo)入solidworks中的文件基本無(wú)法使用,所以就決定自己畫(huà)了。因?yàn)槭悄M,所以精度不是太高。只是簡(jiǎn)單的制作了其結(jié)構(gòu),夾爪部分感覺(jué)比較麻煩,也沒(méi)有制作。最后使用了Solidworks自帶的渲染工具,其效果如下圖。

模型建好了就可以使用相關(guān)插件導(dǎo)出到urdf了。

二、Solidworks文件轉(zhuǎn)urdf

URDF(Universal Robot Description Format)——通用機(jī)器人描述格式,它是ROS里邊使用的一種機(jī)器人的描述文件,包含的內(nèi)容有:連桿、關(guān)節(jié),運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)參數(shù)、可視化模型、碰撞檢測(cè)模型等。

1.sw_urdf_exporter插件

要將arm.SLDASM文件導(dǎo)出為urdf文件,sw_urdf_exporter插件是必不可少的。

1.5.1版本中提供了exe文件,下載完成后直接安裝就可以了。之后就可以在插件欄找到它。

我的2017版本的solidworks的導(dǎo)出urdf選項(xiàng)在:工具–>File -->Export as urdf

我當(dāng)時(shí)一度以為該選項(xiàng)在文件選項(xiàng)欄,試了各種方法找不到導(dǎo)出選項(xiàng),最后發(fā)現(xiàn)它在工具選項(xiàng)欄…真的是白白浪費(fèi)了我?guī)讉€(gè)小時(shí)的時(shí)間

2. 添加坐標(biāo)系和轉(zhuǎn)軸

導(dǎo)出urdf文件的插件沒(méi)有問(wèn)題后,接下來(lái)就要為導(dǎo)出urdf文件做準(zhǔn)備了,首先是為我們的模型添加坐標(biāo)系和轉(zhuǎn)軸。

轉(zhuǎn)軸添加比較簡(jiǎn)單,有很多添加方法。我使用的是選擇某一個(gè)圓柱面添加。

坐標(biāo)系是需要確定坐標(biāo)系原點(diǎn),在選擇x,y,z的方向。

所以一個(gè)建議是首先確定axis0-3,再確定coordinate0-4。

3.導(dǎo)出urdf文件

在主界面打開(kāi),工具–>File -->Export as urdf,按照我圖片中給出的順序進(jìn)行操作。注意不要選到別的地方,在點(diǎn)擊Export之前,所有操作都不會(huì)保存。我嘗試了幾次才正確的導(dǎo)出的。

點(diǎn)擊Rreview and Export之后,出現(xiàn)以下窗口,記得填寫(xiě)limit部分


導(dǎo)出后,生成文件如下:

其中文件作用如下:
? scripts (python 可執(zhí)行文件)
? src (C++ source files)
? msg (for custom message definitions)
? srv (for service message definitions)
? include -> 需要作為依賴項(xiàng)的頭/庫(kù)
? config -> 配置文件
? launch -> 提供更自動(dòng)化的啟動(dòng)節(jié)點(diǎn)方式
? urdf (通用機(jī)器人描述文件)
? meshes (CAD文件.dae (Collada)或.stl (STereoLithography)格式)
? worlds (用于Gazebo模擬環(huán)境的類似XML的文件)

4.參考博客

導(dǎo)出urdf文件我參考了以下博客,
1.【ROS學(xué)習(xí)】Solidworks模型轉(zhuǎn)化為URDF文件格式+三連桿機(jī)械臂示例+逆運(yùn)動(dòng)學(xué)
2. ROS Wiki sw_urdf_exporter

三、rivz仿真

1.rivz仿真

將導(dǎo)出的文件復(fù)制到~/catkin_ws/src目錄下.

修改display.launch文件,其在launch文件夾下。

將default的值從False改為T(mén)rue,否則無(wú)法打開(kāi)Joint State Publish工具。

  <argname="gui"default="False" />//將False改為T(mén)rue
...

運(yùn)行命令打開(kāi)文件

cd ~/catkin_ws
source devel/setup.bash
catkin_make
roslaunch arm0 display.launch

之后我們就可以打開(kāi)RViz了,但是現(xiàn)在沒(méi)有任何模型加載。

解決方法是,首先在Fixed Frame欄中選中自己定義的鏈接名稱。

之后點(diǎn)擊左下角的“Add”來(lái)添加我們的模型。

選擇RobotModel,然后點(diǎn)擊‘OK’。

之后模型就可以加載出來(lái)了,然后移動(dòng)鼠標(biāo)經(jīng)行縮放移動(dòng),或者可以使用Joint State Publish來(lái)調(diào)整關(guān)節(jié)角度。

注意Joint State Publish的調(diào)整范圍是根據(jù)之前設(shè)定的limit。

2.借助MoveIt!在rviz中進(jìn)行逆運(yùn)動(dòng)學(xué)測(cè)試

使用Moveit!提供的setup_assistant來(lái)配置機(jī)械臂的package文件,需要使用到上一部分生成的URDF文件。
使用命令

roslaunch moveit_setup_assistant setup_assistant.launch

打開(kāi)assistant后點(diǎn)擊Create New Moveit Configuration Package 導(dǎo)入U(xiǎn)RDF文件,我的urdf文件路徑如圖片所示

設(shè)置Self-Collision,點(diǎn)擊Generate Collsion Matrix :

設(shè)置Virtual Joints,Parent Frame Name設(shè)為world_frame,save完成后如下圖所示。相關(guān)名稱可以參考圖片中的名稱。

設(shè)置Planning Groups名稱

選擇運(yùn)動(dòng)學(xué)求解器,然后點(diǎn)擊Add Kin. Chain。然后把base_link設(shè)置為Base Link,把link4設(shè)置為T(mén)ip Link:

設(shè)置Robot Pose,和作者郵箱。

然后設(shè)置保存路徑,如下圖所示。點(diǎn)擊Generate Package。

文件如下圖所示:

運(yùn)行命令

cd ~/catkin_ws/src/config/launch/
roslaunch demo.launch

運(yùn)行如下圖所示。

例如,我們可以通過(guò)調(diào)整紅框中的部分來(lái)進(jìn)行逆運(yùn)動(dòng)學(xué)模擬。

總結(jié)

以上是生活随笔為你收集整理的【从零开始的ROS四轴机械臂控制】(一)- 实际模型制作、Solidworks文件转urdf与rviz仿真的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。