matlab机械臂工作空间代码_【ROS-Moveit!】机械臂控制探索(3)——基于python的API示例代码分析...
系統:ubuntu 18.04 / 16.04
ROS:Melodic / Kinetic
概述
基于python的運動組API是最簡單的MoveIt!用戶接口。其中提供了用戶常用的大量功能封裝,例如:
- 設置目標關節控制或笛卡爾空間位置
- 創建運動規劃
- 移動機器人
- 在環境中添加對象
- 將對象與機器人連接或斷開
下載示例功能包
我們通過官方的示例功能包來分析該API的用法。首先將兩個官方的示例下載到工作空間的src目錄并編譯:
對Kinetic版本的ROS:
sudo apt-get install ros-kinetic-franka-description cd ~/catkin_ws/src git clone -b kinetic-devel https://github.com/ros-planning/moveit_tutorials.git git clone -b kinetic-devel https://github.com/ros-planning/panda_moveit_config.git cd ~/catkin_ws/ catkin_make對Melodic版本的ROS:
sudo apt-get install ros-melodic-franka-description cd ~/catkin_ws/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 ~/catkin_ws/ catkin_make分別是機器人模型、官方教程功能包和panda機械臂的配置功能包。運行rviz和MoveGroup節點
ctrl+alt+T 打開兩個終端,依次運行下列兩行命令。第一行命令在終端中加載完畢后,再運行第二行:
roslaunch panda_moveit_config demo.launch rosrun moveit_tutorials move_group_python_interface_tutorial.py在第二個終端中依次敲擊回車鍵,在rviz界面中可以看到機器人執行如下動作:
代碼與注釋
下面為 move_group_python_interface_tutorial.py 的代碼,已將所有注釋和打印語句翻譯,可直接替換 ~/catkin_ws/src/moveit_tutorials/doc/move_group_python_interface/scripts/ 路徑下的同名文件。
友情提示:
要充分理解本章的代碼,除了要懂得基本的python語法和面向對象的編程結構以外,還需要有基本的機器人運動學知識,包括但不限于:
- 理解關節空間位置與笛卡爾空間位姿的區別
- 什么是路徑規劃,關節空間與笛卡爾空間路徑規劃的區別
上一篇文章的遺留問題:公差檢測函數 all_close()決定動作是否執行
在上一篇文章的最后,我提到了rviz規劃界面的不穩定性。這是因為函數all_close()多次用來檢測規劃狀態與當前狀態是否相符。在純粹做運動規劃的理想狀態下,即使公差很小也不會有什么影響。但實際環境或仿真環境會影響機器人的當前狀態。例如由于基座運動、剛度過小導致的位置誤差,會使得公差檢測不通過,進而導致運動規劃失敗。這種情況下,應當適當加大允許的公差范圍。
值得研究的一個問題
在實驗過程中,發現機械臂位姿偶爾會發生跳變,應該是求逆解時的多解造成的。難道 Moveit! 默認求解器無法處理多解情況?這個問題值得研究一下。
演示效果
ROS機械臂的控制API示例https://www.zhihu.com/video/1104515064329170944參考文獻
[1] Move Group Python Interface
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的matlab机械臂工作空间代码_【ROS-Moveit!】机械臂控制探索(3)——基于python的API示例代码分析...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ch340串口驱动_关于串口下载问题和超
- 下一篇: access 子窗体 鼠标滚动不工作_P