本篇主要提供新书云仓H机器人仿真与编程技术基于MATLAB电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
《机器人仿真与编程技术》主要分为三篇,□□篇介绍了基于MATLAB机器人工具箱的机器人仿真,第二篇介绍了三款常用的机器人仿真软件,第三篇介绍了机器人操作系统(Robot Operating System,简称ROS)的基础和应用。
《机器人仿真与编程技术》中所使用的工具包括了MATLAB/SIMULINK、几款常用的机器人仿真软件、机器人操作系统(ROS)。这些工具一方面可以用于机器人学的理论知识进行实际验证与研究,另一方面用于对机器人的设计、仿真与测试。同时,这些工具大多具有开源的特点,而且它们相互之间有方便快捷的接口,能够发挥各自的优势,实现更强大的仿真、编程功能。如今,这些仿真工具都已广泛应用于机器人设计、研发和科学研究等方面,尤其是机器人操作系统越来越成为机器人领域中重要的应用系统。
前言
机器人技术是衡量一个国家科技创新和高端制造业水平的重要标志。随着机器人技术的快速发展,它的应用领域涉及工业、服务、航空航天、军事等方面,因此需要一批熟练掌握机器人技术的创新型人才。
传统的机器人教材大多侧重于对机器人学理论知识的探讨,往往涉及比较多的矩阵理论、控制理论的知识,对于读者来说比较抽象。另一方面,这些知识面难以培养读者的动手能力,难以取得良好的实践效果。因此需要将理论与实践相结合。本书将机器人学的理论和应用相结合,一方面概要地介绍了机器人学的理论,另一方面着力于介绍机器人的仿真和编程技术。
在机器人的科研与工业应用中,机器人仿真与编程技术发挥着无可替代的作用,这是因为它一方面能够对机器人控制算法进行检验测试,另一方面给机器人的研发与测试提供一个无风险且稳定的平台。本书所使用的工具包括MATLAB/Simulink、3款常用的机器人仿真软件和机器人操作系统(RobotOperatingSystem,ROS)。这些工具一方面可以用于将机器人学的理论知识进行实际验证与研究,另一方面用于对机器人进行设计、仿真与测试。同时,这些工具大多具有开源的特点,而且它们相互之间有方便快捷的接口,能够发挥各自的优势,实现更强大的仿真、编程功能。如今,这些仿真工具都已广泛应用于机器人设计、研发和科学研究等方面,尤其是机器人操作系统,成为机器人领域越来越重要的应用系统。
本书的内容主要分为三篇,□□篇介绍了基于MATLAB机器人工具箱的机器人仿真,第二篇介绍了3款常用的机器人仿真软件,第三篇介绍了机器人操作系统的基础和应用。
在□□篇中,从机器人学的理论入手,讲述了机器人学中的数学基础、机器人运动学、机器人动力学、机器人控制和轨迹。然后针对每一部分理论内容,介绍了如何使用MATLAB机器人工具箱去解决相关的问题。□后,以作者的一些科研成果作为实例,介绍了MATLAB机器人工具箱在科研中的应用。
在第二篇中,介绍了3款机器人仿真软件:VREP、Gazebo和OpenRAVE。它们作为机器人的仿真工具,能够对机器人及其工作平台进行3D建模和3D渲染,搭建与现实类似的机器人模型,并具备丰富的物理引擎,能够对机器人在虚拟的物理条件下的运动进行仿真。
在第三篇中,主要介绍了机器人操作系统。ROS是一个适用于机器人的开源的操作系统。它提供了操作系统应有的服务,包括硬件抽象、底层设备控制、常用函数的实现、进程间消息传递,以及包管理。它也提供用于获取、编译、编写和跨计算机运行代码所需的工具和库函数。这部分主要讲述了ROS的概念、应用和相关的基础,然后以Baxter机器人为应用对象,介绍了ROS在机器人中的相关编程技术。
本书适用于高校的教师作为教材或教辅,同时适合各层次的机器人开发人员和机器人爱好者阅读。教师在以本书作为教材时,可以利用本书提供的工具,布置一些能够锻炼学生动手能力、激励学生创新思维的课程作业。初学机器人学的学生在阅读本书时,可以参考一些对于机器人学理论介绍更全面的书籍,同时要利用好本书介绍的工具,去动手搭建机器人模型或编写相关代码。
在本书的编写过程中得到了编者所在实验室曾超、罗晶、王行健、彭光柱、吴怀炜、陈垂泽、陈雄君、叶宇航、王尊冉、黄典业、梁聪垣等的支持和帮助,编者在此表示谢意。
由于编者水平有限,对于书中存在的欠缺之处,敬请读者批评指正。
作者
□017年11月
□□篇基于MATLAB工具箱的机器人仿真
□□章机器人学与MATLAB机器人工具箱
1.1MATLAB机器人工具箱的下载与安装
1.□机器人学的数学基础
1.□.1三维空间中的位置与姿态
1.□.□坐标□换
1.□.3姿态的其他表示方法
1.□.4具体例子的应用
1.3机器人运动学
1.3.1机械臂及运动学
1.3.□DH参数法
1.3.3机器人正运动学
1.3.4机器人逆运动学
1.3.5机器人的瞬态运动学
1.3.6具体例子的应用
1.3.7机器人工具箱的Link类
1.3.8机器人工具箱的SerialLink类1
1.4机器人动力学
1.4.1机器人动力学概述
1.4.□机器人动力学方程的建立方法
1.4.3状态空间方程
1.4.4正向动力学
1.4.5机器人工具箱的SerialLink类□
1.5机器人的运动轨迹
1.5.1运动轨迹问题
1.5.□关节空间的规划方法
1.6机械臂关节控制
1.6.1机器人控制系统的构成
1.6.□Simulink机器人模块
1.6.3机器人的单关节控制
1.6.4机器人的多关节控制
1.7其他基于MATLAB的机器人工具箱
1.7.1Kuka控制工具箱(KCT)的介绍与测试
1.7.□其他机器人工具箱
本章小结
参考文献
第□章MATLAB机器人工具箱的应用
□.1基于学习算法的机器人触觉识别算法研究
□.1.1引言
□.1.□背景
□.1.3算法设计
□.1.4实验设计
□.1.5实验与结果
□.□基于波动□量和神经网络的远程控制系统
□.□.1引言
□.□.□远程操作系统的数学模型
□.□.3基于波动□量的神经控制设计
□.□.4实验设计
□.□.5仿真实验
□.3开发混合运动捕捉方法使用MYO手环应用于远程操作
□.3.1引言
□.3.□设计方法
□.3.3仿真系统设计
□.3.4仿真实验
□.4基于自适应参数识别的GeomagicTouchX触觉装置运动学建模
□.4.1引言
□.4.□建模步骤
□.4.3仿真设计
□.4.4实验和仿真
□.4.5可视化运动学模型与工作空间识别
□.5复杂扰动环境中的新型机械臂混合自适应控制器
□.5.1引言
□.5.□控制问题
□.5.3自适应控制
□.5.4仿真
□.5.5实验设计
□.5.6实验与结果
本章小结
参考文献
第二篇机器人仿真软件的基础与应用
第3章VREP在机器人仿真中的应用
3.1VREP简介及安装
3.1.1VREP的简介
3.1.□VREP的特性
3.1.3VREP的安装
3.□VREP的用户界面及位姿操作
3.□.1控制台窗口
3.□.□对话框
3.□.3应用程序窗口
3.□.4自定义用户界面
3.□.5页面与视图
3.□.6对象/项目位置和方向操作
3.3VREP的场景与模型
3.3.1场景与模型的关系
3.3.□VREP的场景
3.3.3VREP的模型
3.3.4VREP的环境
3.4实体
3.4.1VREP的场景对象
3.4.□场景对象的性质
3.4.3常用的场景对象——形状
3.4.4常用的场景对象——关节
3.4.5VREP的集合
3.5VREP的六种计算模块
3.5.1碰撞检测模块
3.5.□□小距离计算模块
3.5.3逆向运动学模块
3.5.4几何约束求解模块
3.5.5动力学模块
3.5.6路径规划模块
3.6VREP中控制机器人仿真的方法
3.6.1嵌入式子脚本
3.6.□插件
3.6.3附加组件
3.6.4远程客户端应用程序接口
3.6.5通过ROS的节点
3.6.6自定义解决方案
3.7VREP的API框架
3.7.1常规API
3.7.□远程API
3.7.3ROS接口
3.7.4辅助API
3.7.5其他接口
3.8仿真模型的搭建
3.8.1从模型浏览器中加载现有模型
3.8.□从菜单栏中添加场景对象
3.8.3从Import命令中导入/导出其他软件的CAD模型
3.9机器人的仿真
3.9.1物理引擎的选择
3.9.□仿真参数的设置
3.9.3仿真的控制
3.10VREP的具体例子
3.10.1机械臂模型的构建
3.10.□逆运动学建模
3.10.3VREP与MATLAB连接的例子
3.11VREP在人机交互中的应用(一)
3.11.1触觉学与TouchX
3.11.□TouchX的相关软件在人机交互中的作用
3.11.3CHAI3D在人机交互中的作用
3.11.4VREP模块
3.11.5TouchX控制VREP中KUKA机器人的实现
3.1□VREP在人机交互中的应用(二)
3.1□.1体感技术与Kinect
3.1□.□交互相关软件的作用
3.1□.3交互相关软件的安装与测试
3.1□.4OpenNI/NITE中的人体骨架分析
3.1□.5VREP与Kinect接口的安装与测试
3.1□.6Kinect与VREP交互的设计与实现
本章小结
参考文献
第4章Gazebo在机器人仿真中的应用
4.1Gazebo的介绍与安装
4.1.1Gazebo的初步介绍
4.1.□Gazebo的安装
4.1.3Gazebo与VREP的比较
4.□Gazebo的结构
4.□.1Gazebo的运行方法
4.□.□Gazebo的组成部分
4.□.3Gazebo的结构
4.3创建机器人
4.3.1模型结构和要求
4.3.□模型的上传
4.3.3制作一个模型
4.3.4制作移动机器人模型
4.3.5导入网格
4.3.6附加网格物体
4.3.7给机器人添加传感器
4.3.8做一个简单的夹持器
4.3.9在机器人上构建夹持器
4.3.10嵌套模型
4.3.11模型编辑器
4.3.1□盒子的动画
4.3.13三角网格的惯性参数
4.3.14图层可见性
4.4Gazebo中的模型编辑器
4.4.1模型编辑器
4.4.□SVG文件
4.5场景文件的创建
4.5.1创建一个场景
4.5.□修改场景
4.5.3如何在Gazebo中使用DEM
4.5.4模型□
4.5.5建筑编辑器
4.6插件的编写
4.6.1一个简单的插件:HelloWorldPlugin!
4.6.□插件的使用
4.6.3模型插件
4.6.4世界插件
4.6.5程序化场景控制
4.6.6系统插件
4.7传感器
4.7.1传感器噪声模型
4.7.□接触式传感器
4.7.3摄像头失真
4.8Gazebo的其他功能
4.8.1数学库的使用
4.8.□用户输入
4.8.3连接到Player
本章小结
参考文献
第5章OpenRAVE在机器人仿真中的应用
5.1OpenRAVE简介
5.1.1OpenRAVE的应用
5.1.□OpenRAVE的特性
5.1.3OpenRAVE的下载与安装
5.□OpenRAVE概观
5.□.1OpenRAVE基本架构
5.□.□关于OpenRAVE中的一些说明
5.□.3OpenRAVE公约与准则
5.□.4OpenRAVE中机器人概述
5.□.5插件与接口说明
5.□.6网络协议和脚本
5.3OpenRAVE的基础
5.3.1开始使用OpenRAVE
5.3.□OpenRAVE的命令行工具
5.3.3写OpenRAVE文档
5.3.4环境□量
5.4OpenRAVE运用与展望
5.4.1OpenRAVE的运用项目举例
5.4.□OpenRAVE的展望
本章小结
参考文献
第三篇机器人操作系统基础与应用
第6章机器人操作系统的基础
6.1ROS的安装与测试
6.1.1虚拟机与Ubuntu的安装
6.1.□ROS的安装
6.1.3turtlesim例子的测试
6.□ROS的基本概念与命令
6.□.1程序包(packages)
6.□.□节点(Nodes)和节点管理器(Master)
6.□.3消息(Messages)和主题(Topics)
6.□.4其他ROS的相关概念
6.□.5ROS的一些常用工具
6.3ROS的程序包的创建与编译
6.3.1创建工作区和功能包
6.3.□ROS程序的编译过程
6.4ROS与MATLAB集成
6.4.1RST的ROS功能介绍
6.4.□MATLAB与ROS通信的介绍
6.5ROS与VREP之间的集成
6.5.1VREP中的ROS程序包
6.5.□在ROS中安装VREP
6.5.3在ROS中创建相关的VREP程序包
6.5.4使用ROS节点控制VREP模型的例子
6.5.5VREPROSBridge的简介及安装
6.6ROS与Gazebo
6.6.1ROS集成概述
6.6.□安装Gazebo_ros_pkgs
6.6.3ROS/Gazebo版本组合的选择
6.6.4使用roslaunch
6.6.5ROS通信
6.6.6Gazebo中的URDF
6.7实时系统ROS□.0的介绍
本章小结
参考文献
第7章机器人操作系统的应用
7.1Baxter机器人与ROS
7.1.1Baxter机器人
7.1.□Baxter机器人的控制系统总体框架
7.1.3相关的ROS代码
7.□基于神经网络实现对摇操作机器人进行高性能控制
7.□.1控制系统的架构
7.□.□实验设计与实现
7.□.3实验及结果
7.3规定全□稳定性和运动精度的双臂机器人的神经网络控制
7.3.1实验设计与实现
7.3.□实验结果
7.4基于人体运动捕获对Baxter机器人的远程操作控制
7.4.1远程操作控制系统
7.4.□实验的设计与实现
7.4.3实验及结果
本章小结
参考文献
第5章OpenRAVE在机器人仿真中应用
5.1OpenRAVE简介
5.1.1OpenRAVE的应用
OpenRAVE(英文全称为OpenRoboticsAutomationVirtualEnvironment)是一款开源的机器人仿真软件。OpenRAVE提供了机器人的测试环境,它的主要功能是运动规划运动学和几何信息的模拟和分析。在应用方面,OpenRAVE主要用于开发和部署机器人的运动规划算法,而这些算法能够应用于实际中的机器人。由于OpenRAVE具备有独立运行的性质,这些算法可以很容易地集成到现有的机器人系统。它为机器人开发者和机器人提供了许多命令行工具,核心运行时足够小,因此可用于内部控制器和更大的框架。
OpenRAVE是一个开放源码跨平台软件架构,即开放的机器人和动画虚拟环境。OpenRAVE针对真实世界自动机器人应用程序,包括3D模拟、可视化、规划、脚本和控制的无缝集成。它的插件架构允许用户轻松地编写自定义的控制器和进行扩展功能。通过使用OpenRAVE插件,任何设计的算法、机器人控制器或感测子系统都可以在运行时进行分布和动态加载,从而使开发人员免于使用单片代码库。这样OpenRAVE的用户可以专注于问题的规划和脚本方面的开发,而无须明确管理机器人运动学和动力学、碰撞检测、世界更新和机器人控制的细节。OpenRAVE架构也提供了一个灵活的接口,可以与其他流行的机器人软件包(如Player和ROS)结合使用,因为它专注于自动运动规划和高级脚本,而不是低级控制和信息协议。OpenRAVE还支持强大的网络脚本环境,使得在运行时控制和监视机器人以及更改执行流程□得更加简单。开放组件架构的一个关键优势是它们使机器人研究团体能够轻松地共享和比较算法。
下文将主要对OpenRAVE的原理以及运用进行简单介绍。
5.1.□OpenRAVE的特性
OpenRAVE具有许多功能用于分析机器人场景的几何结构,然后把它们用于在整个工作区中使机器人运动。
OpenRAVE在两方面上具有良好的应用:
(1)对于每个机器人,使用IKFast能够针对某种机器人的结构专门地生成逆运动学程序。这允许所有奇点配置和除以零条件的处理。而且,这种处理的速度特别快,生成大多数解决方法只需运行5μs。
(□)可以很容易地结合多个约束条件,例如避免碰撞、把握对象、保持传感器能见度。然后,在这些约束条件下把一个机器人的初始和目标配置连接在一起。
OpenRAVE是一个开放机器人和3D动画虚拟环境。相比于其他仿真工具,OpenRAVE具有它的独特优势:
(1)能用于机器人的实时控制和执行监控的集成设计。
(□)提供运动学操作和物理模拟的核心功能。
(3)有允许诸如Octave和MATLAB之类的解释性脚本语言与其进行交互的网络协议(当然还支持其他脚本语言,例如Python和Perl是计划开发的)。
(4)内置核心工具和插件界面,用于机器人的操作规划和抓取。
(5)标准插件,允许测试不同的规划算法和传感系统,而只需做□少的代码修改。
OpenRAVE架构模块化了机器人系统的执行和计划层,使自主系统的开发□得更容易,组件□得更可重用于其他项目。一个基本做法是在特定组件的实现与从其他组件的使用这个特定组件之间创建一个接口层。许多以前的架构已经为基本级别组件做到这一点。
5.1.3OpenRAVE的下载与安装
OpenRAVE提供了可以用于Ubuntu和Windows的版本。□□介绍在Ubuntu上安装OpenRAVE的步骤。
1.安装依赖库
首先保证已安装了□□的项目,从命令行输入:
0□.□udoapt-getinstallcmakeg++gitqt4-dev-toolszlib-bin
0□.sudoapt-getinstallipythonpython-devpython-h5pypython-numpypython-scipypython-sympy
安装依赖库:
0□.□udoapt-getinstalllibassimp-devlibavcodec-devlibavformat-devlibavformat-devlibboost-all-devlibboost-date-time-devlibbullet-devlibfaac-devlibglew-devlibgsm1-devliblapack-devlibmpfr-devlibode-devlibogg-devlibopenscenegraph-devlibpcre3-devlibpcrecpp0libqhull-devlibqt4-devlibsoqt-dev-commonlibsoqt4-devlibswscale-devlibswscale-devlibvorbis-devlibx□64-devlibxml□-devlibxvidcore-dev
□□从OpenRAVEppa上可以安装的包是colladadom:
0□.□udoadd-apt-re□□□itoryppa:OpenRAVE/release
0□.sudosh-c'echo"deb-srchttp://ppa.launchpad.net/OpenRAVE/release/ubuntu'l□□_release-cs'main">>/etc/apt/sources.list.d/OpenRAVE-release-'l□□_release-cs'.list'
……