matlab机械臂工作空间代码_【ROS-Moveit!】机械臂控制探索(3)——基于python的API示例代码分析...
本文参考Moveit!官方文档。
系统: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界面中可以看到机器人执行如下动作:
- 机器人规划并运动到关节目标位姿
- 机器人向目标位姿规划一条路径
- 机器人规划了一条笛卡尔空间的路径
- 机器人再次规划了一条笛卡尔空间路径
- 机器人执行了该笛卡尔空间路径
- 在Panda机械臂的末端出现了一个小箱子
- 小箱子改变了颜色,表示它现在已经附加在了机械臂上
- 机械臂附带着小箱子规划并执行了一条笛卡尔空间路径
- 小箱子再次改变颜色,说明它现在已经脱离了机械臂
- 小箱子消失
代码与注释
下面为 move_group_python_interface_tutorial.py 的代码,已将所有注释和打印语句翻译,可直接替换 ~/catkin_ws/src/moveit_tutorials/doc/move_group_python_interface/scripts/ 路径下的同名文件。
友情提示:
要充分理解本章的代码,除了要懂得基本的python语法和面向对象的编程结构以外,还需要有基本的机器人运动学知识,包括但不限于:
- 理解关节空间位置与笛卡尔空间位姿的区别
- 什么是路径规划,关节空间与笛卡尔空间路径规划的区别
#!/usr/bin/env 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示例代码分析...相关推荐
- python鸭制作类代码_详解duck typing鸭子类型程序设计与Python的实现示例
在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格.在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定. 这个概念的名字来源 ...
- python 蓝牙开发_基于python实现蓝牙通信代码实例
这篇文章主要介绍了基于python实现蓝牙通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装和示例 linux下安装 sudo apt ...
- python写安卓app控制蓝牙_基于python实现蓝牙通信代码实例
这篇文章主要介绍了基于python实现蓝牙通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装和示例 linux下安装 sudo apt ...
- python三维重建代码_基于Python的三维重建开源代码
[实例简介] 基于Python的三维重建开源代码,包括特征提取,SFM,PMVS以及CMVS等相关功能! [实例截图] [核心代码] sfm-bundler(python) └── sfm-bundl ...
- 企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET
企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET 原文:企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET 先看效果 1.本文演示的是 ...
- 编写python扩展模块_《深度剖析CPython解释器》27. 使用Python/C API编写扩展模块:编写扩展模块的整体流程...
楔子 到目前为止,我们已经介绍了很多关于解释器方面的内容,本来接下来应该要说内存管理的,但是个人觉得应该对前面的系列做一个总结.而最好的方式,就是使用Python/C API编写扩展模块,个人是这么认 ...
- matlab机械臂工作空间代码_轻型协作机械臂运动学及工作空间分析
0 引言 OUR机械臂有别于传统工业机械臂,其特点是体积小.重量轻.有很快的运动速度和较大的活动范围,机械臂的最大运动速度可以达到180°/s,能够处理更复杂.更危险的工作,具有极强的灵活度.精确度和 ...
- python彩票分析_数字化场景应用平台加持,开课吧学员Python挑战赛秀出代码精彩...
来源标题:数字化场景应用平台加持,开课吧学员Python挑战赛秀出代码精彩 企业在数字化转型过程中,如何应对数字化人才短缺成为了最大挑战.同时,很多企业还意识到在外部人才争夺战日益激烈的大背景下,仅仅 ...
- css 竖行进度图_前端学习--汇集了大量 CSS 的使用和学习的示例代码
CSS-Inspiration 这里可以让你寻找到使用或者是学习 CSS 的灵感,以分类的形式,展示不同 CSS 属性或者不同的课题使用 CSS 来解决的各种方法. 目前已有上百种的CSS 实现示例, ...
最新文章
- New Video Game Controlled By Kissing
- 在dbca建库的时候报ORA-27125错误的解决方法
- css3 制作平滑过度动画
- 六、pink老师学习笔记——CSS三角形之美 margin负值之美文字围绕浮动元素行内块元素布局的巧妙运用
- input内强制保留小数点后两位 位数不足时自动补0
- JavaScript 图片切割效果
- 牛逼!用 MySQL 实现一个分布式锁,这也太强了。。。
- Qt Embedded性能优化详解
- SVN的下载和文件更新
- Mac将Wps本地文件备份到云端
- 机器学习的transformer
- xml 中的 大于号,小于号
- 搜索引擎Autonomy
- RASP技术进阶系列(一):与WAF的“相爱相杀”
- 图神经网络系列(一)介绍及基本模型
- azure创建centos_如何使用Blazor和Azure计算机视觉创建光学字符读取器
- 互联网行测笔试题之最头疼的找规律
- 华为云,短信通信,群发推广运营短信,Java版
- 星星评分系统代码模板。
- Java期末复习速成(八)
热门文章
- 使用SWAGGER和ASP.NET CORE设置可选路由参数
- Azure认知服务之表单识别器
- 如何在ASP.NET Core中使用SignalR构建与Angular通信的实时通信应用程序
- 现在就是.Net最好的时代!我赞成,谁反对?
- Asp.Net Core Filter 深入浅出的那些事-AOP
- 分享一次与SharpDX坑爹Bug刚正面的过程
- k8s集群部分常见问题处理
- 阅读nopcommerce startup源码
- 在kubernetes 集群内访问k8s API服务
- 微软 Build 2019:Windows 10 隐退,IE 重生,Azure 成主角