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