Moveit!配置 開發機械臂全過程

2021-10-11 22:48:29 字數 2858 閱讀 8255

根據自己需要的機械臂進行配置,各界面引數介紹請查閱:

setuo assistant

此處不再贅述。

筆者在此過程中唯一遇到的問題就是在匯入urdf檔案時,setup assistant無法識別。

解決方法:從github上clone官方發布的urdf,並且注意clone與自己的ros版本對應的urdf。如果是自己寫的urdf檔案,多檢查檔案的完整性。

至於從github上clone太慢的問題,可以採用國內伺服器中轉提速,親測有效。

具體的方法請查閱: 國內git倉庫中轉

第一步:

moveit setup assistant的最後乙個介面,選擇generate package的路徑。

建議放在主目錄下,方便後續操作。

如上圖,我generate在了主目錄下,資料夾名為ur5_test2。

第二步:

在主目錄下新建乙個資料夾,並初始化為工作空間。如下圖,ur5_test1。

將moveit setup assistant生成的ur5_test2資料夾放到ur5_test1的src資料夾下。

第四步:

在src資料夾下新建乙個功能包(catkin_create_pkg就不用我教了吧?)以後我們會把自己寫的moveit!程式放到這裡面。

如上圖所示的xds_code功能包

進入ur5_test2(moveit setup assistant生成的資料夾)中的launc**件夾

啟動終端,執行:

如下圖,在rviz中成功載入設定好的初始姿態模型

在我們之前建立的功能包的src資料夾中,可以放置我們自己的**檔案。

我的**是用c++寫的,所以需要對功能包的cmakelist和package做如下改動:

cmakelist:

find_package(catkin required components

roscpp

rospy

std_msgs

moveit_core

moveit_ros_perception

moveit_ros_planning_inte***ce

moveit_visual_tools

)catkin_package(

catkin_depends roscpp rospy std_msgs moveit_ros_perception moveit_ros_planning_inte***ce moveit_core trajectory_msgs

)add_executable(first_code src/first_code.cpp )

add_dependencies(first_code katex parse error: expected '}', got 'eof' at end of input: _exported_targets} $)

target_link_libraries(first_code $)

package:

moveit_core

moveit_ros_perception

moveit_ros_planning_inte***ce

moveit_visual_tools

trajectory_msgs

moveit_core

moveit_ros_perception

moveit_ros_planning_inte***ce

moveit_visual_tools

trajectory_msgs

按照上述步驟設定完依賴後,回到工作空間根目錄catkin_make

編譯過程中如果出現「未定義的引用」,多半是依賴出了問題,按照上面仔細檢查。

盡量不要白嫖別人的程式,moveit的c++api經歷過改動,有些函式名稱發生了變化,別人幾年前寫的程式放在今天可能編譯就不通過。

2020/12/12我針對moveit官方c++ api文件寫了詳解,可查閱:

moveit!程式設計c++ api詳解

鼓勵有能力的同學自己看。

開啟我們之前執行的rviz介面,ctrl+alt+t開啟終端,輸入:

rosrun 《功能包名》 《節點名》

執行後,機械臂按程式進行plan並execute

使用moveit!控制真實機械臂(0) 思路

moveit!可以實現對機械臂的軌跡控制,這裡的機械臂既可以是真實的,也可以是虛擬的,在此,我們想使用moveit!規劃的軌跡來控制乙個真實的機械臂,真實的機械臂千差萬別,這裡不涉及到真實機械臂的控制驅動,只講一講控制思路,每一條思路今後會再寫文章逐步細化。1 首先要有乙個與真實機械臂相一致的機械人...

機械臂開發之機械結構

由於經濟不允許,比較昂貴的機械臂沒有接觸過,但是基本的機械結構都是相識的,一般就是用的材料和驅動的方式不一樣,然後我就以我自己用的機械臂來談談。我組裝的機械臂是以舵機作為機械臂的關節進行控制的,接下來以三自由機械臂進行介紹。三自由度機械臂分析 一.關節 這個機械臂擁有三個旋轉關節,底部的旋轉關節jo...

基於Arduino開發板DIY製作機械臂

在本篇文章中,我們將學習如何使用arduino開發板製作乙個簡易的機械臂 robot arm 可以使用定製的android應用程式進行無線控制和程式設計。我將向您展示製作的整個過程,從設計和3d列印機械人部件,到連線電子元件和程式設計arduino,以及開發我們自己的android應用程式來控制機械...