環境:Ubuntu18.04 + ROS Melodic
1. 安裝ROS
官網下載安裝步驟:http://wiki.ros.org/melodic/Installation/Ubuntu
一鍵安裝的快捷方式:
wget http://fishros.com/install -O fishros && bash fishros
保證自己的ROS可以使用,可以按照官網進行小烏龜測驗,
2. 安裝 movelt
Movelt 并沒有直接附帶在 ROS中,需要自行安裝:
sudo apt install ros-melodic-moveit
如果是更高版本(其他版本)則安裝對應的moveit. 比如Ubuntu20.04對應的是ROS Noetic .也可以直接從原始碼下載:https://moveit.ros.org/install/source/
3. 下載例程
如果你的手頭沒有現成的素材,可以從tutorial下載,首先我們建立一個作業空間用于 ROS程式的開發,后面會介紹ROS檔案空間的結構,
mkdir ~/ARM/ws_moveit/src
cd ~/ARM/ws_moveit/src
git clone https://github.com/ros-planning/moveit_tutorials.git -b melodic-devel
git clone https://github.com/ros-planning/panda_moveit_config.git -b melodic-devel
安裝一些必要的依賴:
cd ~/ARM/ws_moveit/src
rosdep install -y --from-paths . --ignore-src --rosdistro melodic
設定作業空間
cd ~/ARM/ws_moveit
catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
重繪作業空間,使其能夠正常作業:
source ~/ARM/ws_moveit/devel/setup.bash
也可以將這句話寫入 bashrc 檔案,使其自動執行,就不需要每次都 source 了:
echo 'source ~/ARM/ws_moveit/devel/setup.bash' >> ~/.bashrc
4. Rviz 初試
上手 MoveIt 的最快方法就是通過 RViz 插件,Rviz 是 ROS 中的主要可視化工具,也是除錯機器人非常有用的工具,MoveIt Rviz插件可以設定虛擬環境(場景),以互動方式創建機器人的開始和目標狀態,測驗各種運動規劃器,并以可視化的方式輸出,
在前3步中我們已經做好了初始化的準備,下面我們看一看rviz插件的相關操作,
4.1 Launch the Demo and Configure the Plugin
運行 panda_moveit_config 的 demo launch檔案:
cd ~/ARM/ws_moveit
source devel/setup.bash
roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
這里我們提前使用 panda_moveit_config 包,這個包是封裝了機械結構和運動動力學的機器人模型,后面會將介紹這個包是怎么來的,
如果是第一次運行,將會看到以下界面:

點擊左下角的 Add,選擇 MotionPlanning,點擊 OK,看到機器人模型,

當這個機器人模型被加載出來后,我們就可以繼續配置這個機器人,
在左側自上向下依次設定:
- Global Options中,Fixed Frame 設定為
/panda_link0 - MotionPlanning 中
- Robot Description 設定為
robot_description - Planning Scene Topic 設定為
/planning_scene - Planning Request 中,將 Planning Group 設定為
panda_arm, - Planning Path 中,將 Trajectory Topic 設定為
/move_group/display_planned_path
- Robot Description 設定為
4.2 機器人可視化設定
Rviz 中有四種顯示模式:
- 機器人在
/planning scene規劃環境中的配置(默認情況下處于活動狀態), - 機器人的規劃路徑(默認情況下處于活動狀態),
- 綠色:運動規劃的開始狀態(默認情況下禁用),
- 橙色:運動規劃的目標狀態(默認情況下處于活動狀態),
可以通過選擇框來打開關閉各個可視化狀態:
- 使用 "Scene Robot" 選項卡中的 "Show Robot Visual"顯示機器人規劃場景,
- 使用 "Planned Path" 選項卡中的 "Show Robot Visual" 復選框顯示規劃路徑,
- 使用 "Planning Request" 選項卡中的 "Query Start State" 復選框顯示開始狀態,
- 使用 "Planning Request" 選項卡中的 "Query Goal State" 復選框顯示目標狀態,
通過這些選項卡的打開關閉可以顯示不同的可視化效果,
4.3 與Panda機械臂互動
接下來我們只打開 Planned Path、Start State 以及 Goal State. 不打開 Scene Robot ,現在可以看到機械臂呈現橘色,
即作如下的可視化勾選設定:
- 勾選
Planned Path-Show Robot Visual - 取消勾選
Scene Robot-Show Robot Visual - 勾選
Planning Request-Query Goal State - 勾選
Planning Request-Query Start State
現在應該有兩個互動標記 (interactive markers):
-
橙色手臂標記用于表示運動規劃的“目標狀態”,
-
綠色手臂標記用于表示運動規劃的“開始狀態”,
-
如果看不到互動標記,請按RViz頂部選單中的 "Interact".
注意:某些工具可能是被隱藏了,請按頂部選單中的 "+" 以添加互動工具,
現在,就能夠使用這些標記來拖動手臂并更改其狀態:比如拖動手臂到達某個位置:

4.3.1 碰撞狀態
Collision. 當試圖移動機械臂的某個關節與其他部分發生碰撞時,碰撞的兩個部分將變為紅色,

在 "Planning" 選項卡下的 MotionPlanning 插件中找到的 "Use Collision-Aware IK" 復選框允許您切換IK解算器的行為,勾選該復選框后,解算器將不斷嘗試為所需末端效應器位姿尋找無碰撞解決方案,
會比之前優雅很多,但還是會碰撞,只是少了很多可能,
未選中這個選項卡時,解算器會允許有碰撞的解,
無論復選框的狀態如何,碰撞的兩個部分依然以紅色顯示,
4.3.2 移出可達作業空間
由于joint的角度限值和關節的固定長度,目標點局限在一個有效的空間(workspace)內, 對于出界的目標點,求解器將無法求出解,

4.4 使用 Motion Planning
現在可以通過 Motion Planning 讓機械臂規劃運動,
- 點中Start State 拖到想要的起始位置;
- 點中Goal State 拖到想要的目標位置;
- 檢查起始和目標狀態下都沒有碰撞;
- 確保在
Planned Path選項卡中勾選Planned Path;
在 MotionPlanning 插件的 Planning 中點擊Plan按鈕, 可以看到機械臂運動的軌跡,
4.5 查看軌跡點
在 Rviz 中通過 slider 查看運動軌跡點,
-
在
Panels選單中選擇MotionPlanning - Slider,在左邊會出現一個滑塊,Panels在Rviz中最上面的file那一行,
-
設定目標狀態,點擊
Plan -
拖動滑塊可以查看軌跡點,
注意,當你把機械臂放到一個新的目標時,先執行 Plan 再執行 slider 中的 Play,否則看到的還是上一次執行的軌跡點,

4.6 保存設定
File->Save Config
# 給自己的配置命名,比如 tryPanda.rviz
這樣下次打開Rviz,可以通過File->Open 呼叫保存的配置,
即,下次運行 roslaunch panda_moveit_config demo.launch ,就可以繼續上面的配置進行操作,不必從頭再來,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499988.html
標籤:其他
