步調1:增添抓取器
一起頭增添抓手有點讓人迷惑,以是我正在上一篇文章中跳過了那一部分。事實證明,那究竟結果不是那么難題。
為我的機器人點竄的URDF文件已附加到此步調。基本上,它遵守與手臂整機不異的邏輯,我只增添了三個新鏈接(claw_base,claw_r跟claw_l)跟三個新樞紐(joint5是流動的,joint6,joint7是旋轉關節)。
點竄URDF文件后,借須要利用MoveIt裝置助手去更新MoveIt天生的軟件包跟xacro文件。
利用以下下令啟動裝置助手
roslaunchmoveit_setup_assistantsetup_
單擊“
增添新的籌劃組夾持器和末尾執行器。我的設置正在上面的屏幕截圖中。留神,你不為夾具取舍運動學求解器,那不是必須的。天生軟件包并覆蓋文件。
正在catkin事情區中運轉
catkinmake
下令。
好吧,此刻咱們有了一條帶有抓爪的手臂!
步調2:構建手臂
正如我正在提到Juergenlessner創立手臂3D模子之前提到的那樣,感謝您所做的精彩事情。若是你單擊鏈接,則可以找到具體的組裝解釋。
我不能不點竄控制系統。我利用帶有傳感器護罩的ArduinoUno去節制伺服器。傳感器屏障層正在簡化布線方面有很大資助,而且借容易為伺服器供給內部電源。我利用經由過程降壓模塊毗鄰到SensorShield的12V6A電源適配器。
對于伺服器的正文。我利用從淘寶采辦的MG996HR伺服器,可是質量真的很差。相對是自制的中國仿冒品。用于肘關節的阿誰不供給充足的扭矩,以至正在重載下也起頭發煙。我不能不用質量更好的制造商的MG946HR替代肘關節伺服器。
長話短說-采辦優良的伺服器。若是魔術煙霧從你的伺服器中冒出,請利用更好的伺服器。6V是十分平安的電壓,請不要增長它。不會增長扭矩,但會損壞伺服器。
伺服器接線以下:
基座2
shoulder24
shoulder13
肘部6
抓爪8
伎倆11
隨便變動它,只有你借記得要變動Arduino草圖便可。
利用完硬件后,讓咱們看一看!
步調3:MoveItRobotCommander界面
閃兔分揀機應用那么,此刻呢?為何依然須要MoveIt跟ROS?是否是可以間接經由過程Arduino代碼節制手臂?
是的。
好吧,此刻若何利用GUI或Python/C++代碼供給機器人姿式至?Arduino可以做到嗎?
排序。為此,你將須要編寫一個反向運動學求解器,它將采取機器人姿式并將其轉換為伺服的樞紐角度動靜。
只管你可以本人做,但要做的事情卻很艱難。是以,MoveIt跟ROS為IK求解器供給了一個不錯的接口,可以為你實現一切沉重的三角晉升。
冗長的回覆:是的,你可以做一個簡略的機器臂,它將履行一個硬編碼的Arduino草圖,從一個姿式變成另一個姿式??墒?,若是你念使機器人加倍智能并增長計算機視覺功用,則必需利用MoveIt跟ROS。
我建造了一個十分簡化的圖表,解釋MoveIt框架的事情原理。正在咱們的環境下,它將變得加倍簡略,由于咱們不來自伺服器的反應,而是要利用/joint_states主題為機器人控制器供給伺服器的角度。咱們只短少一個組件,那就是機器人控制器。
咱們借等甚么呢?讓咱們寫一些機器人控制器,以便咱們的機器人可以……加倍可控。
第4步:機器人控制器的Arduino代碼
正在咱們的環境下,利用rosserial運轉ROS節點的ArduinoUno將成為機器人控制器。Arduino草圖代碼已附加到此步調,也可以正在GitHub上利用。從弧度到度,然后利用尺度庫將其傳送給舵機。
該解決方案有點拙笨,而不是工業機器人的解決方案?;孟氕h境下,該當正在/FollowJointState主題上宣布運動軌跡,然后吸收對于/JointState主題的反應。可是正在咱們的手臂上,專業伺服器沒法供給反應,是以咱們將間接定閱由FakeRobotController節點宣布的/JointState主題。基本上,咱們將假定傳送給伺服器的任何角度皆可以幻想天履行。
有關rosserial若何事情的更多信息,請查閱以下教程
將草圖上傳到ArduinoUno之后,你須要利用串行電纜將其毗鄰到運轉ROS裝置的計算機。
要啟動全部體系,請履行以下下令
roslaunchmy_arm_xacrorviz_tutorial:=truesudochmod-R777/dev/ttyUSB0rosrunrosserial_pythonserial__port:=/dev/ttyUSB0_baud:=115200
此刻,你可以正在RVIZ中利用交互式標識表記標幟將機器人手臂挪動到一個姿式,然后按計劃并履行,使其實際移至該地位。
魔術!
此刻,咱們可以編寫用于斜坡測試的Python代碼了。好吧,差不多。..
第5步:天生IKfast插件
高速分揀機器人默許環境下,MoveIt發起利用KDL運動學求解器,它不會少于6個自由度臂真的可以事情。若是你緊跟本教程,那么你會留神到RVIZ中的手臂模子沒法到達某些手臂設置應撐持的姿式。
推舉的解決方案是利用OpenRave創立自定義運動學求解器。并不是那么難題,可是你必需構建它,而且它是來自源的依附項,或許利用docker容器。
該進程正在本教程中有很好的紀錄。確認可以正在運轉Ubuntu16.04跟ROSKinetic的VM上運轉。
我利用以下下令天生了求解器
--databaseinversekinematics--robot=--iktype=translation3d--iktests=1000
然后運轉
rosrunmoveit_kinematicscreate_ikfast_moveit_test_robotarmmy_arm_xacro_1_2_
天生MoveItIKfast插件。
全部進程比力耗時,可是若是你仔細閱讀本教程,并不是很難題。若是你對此部門有疑難,請正在評論或PM中與我接洽。
第6步:斜坡測試!
醫藥行業高速分揀機器人此刻咱們可以測驗考試停止突變測試了,咱們將利用ROSMoveItPythonAPI履行該測試。
該步調附帶了Python代碼,該代碼也可以正在github存儲庫中找到。若是你不坡道或念測驗考試其他測試,則須要正在代碼中變動機器人的姿式。為此,正在曾經運轉RVIZ跟MoveIt的環境下,起首正在終端中履行
rostopicecho/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback
。然后將帶有交互式標識表記標幟的機器人挪動到所需地位。地位跟標的目的值將顯現正在終端中。只需將它們復制到Python代碼便可。
要正在運轉RVIZ跟rosserial節點的環境下履行
rosrunmy_arm_xacropick/pick_2.py
停止斜坡測試。
分揀機器人哪家正規快遞分揀機器人缺點物流分揀機器人結構