使用 Ubuntu 18.04 开启机器人开发的愉快历程
- Using Ubuntu 18.04 to Open a Happy Course in Robotics Development
1. 什么是Ubuntu?
https://cn.ubuntu.com/
https://cn.ubuntu.com/internet-of-things/
2. 如何愉快的使用Ubuntu?
3. Ubuntu系统试用
Zeal is an offline documentation browser for software developers.
Ubuntu 18.04的安装步骤和启动盘制作,务必参考官网哦:链接。
桌面:
Night Light 设置保护眼睛
Wi-Fi:
snap的特性就是安全、通用、便于使用以及开发维护成本低:
$ sudo snap install electronic-wechat
$ sudo snap install webqq
更多Ubuntu系统详细使用和软件介绍参考第二节。
4. 机器人开发相关应用
V-Rep:http://www.coppeliarobotics.com/
问题描述:http://www.forum.coppeliarobotics.com/viewtopic.php?f=5&t=7288
Gazebo 9+:http://gazebosim.org/
ROS Melodic Morenia:http://wiki.ros.org/melodic
5. 书籍推荐
各功能软件的帮助文档。
现代机器人学:机械,规划和控制(MODERN ROBOTICS MECHANICS,PLANNING,AND CONTROL)
重要参考:书籍说明和下载链接,仿真实践课程(V-Rep)链接。
----人工智能翻译----
这是教科书“现代机器人学:机械,规划和控制”的主页,Kevin M. Lynch和Frank C. Park,剑桥大学出版社,2017年,ISBN 9781107156302。通过剑桥大学出版社购买精装本,使用20%折扣代码LYNCHPARK2017或通过亚马逊,或查看下面的免费预印本版本。
- 弗兰克和凯文为他们的主题提供了一个非常清晰和耐心的解释。” 罗杰布鲁克特,哈佛大学
- “ 现代机器人技术为机器人学提供了最重要的见解......清晰度让大学生都能接触到。” 马修·T·梅森,卡内基·梅隆大学
本书是多年来在汉城国立大学M2794.0027机器人入门课程和西北大学ME 449机器人操作课程开发的课程笔记的结果。不断发展的课程笔记已在互联网上发布多年,以支持这些课程。
剑桥大学出版社购买的这本书的版本改进了布局和排版,更新的数字,不同的页码(和更少的页面)以及更仔细的编辑,它被认为是本书的“官方”版本。但本书的在线预印本版本具有相同的章节,章节和练习,并且其内容与剑桥出版的版本非常接近。本书的最新预印本在线版本于2017年5月发布。我们于2016年10月和11月发布了本书的初稿,这些版本应该被丢弃。
我们发布了这本书的四个版本。所有版本都有完全相同的内容和分页。它们只有在边距尺寸和印刷尺寸方面不同,正如Adobe Acrobat在乳胶处理后所操作的。其中两个版本的工作超链接用于在您的计算机或平板电脑上浏览图书。
与工作超链接。(要使用超链接导航本书,请单击超链接,要返回来自哪里,请选择适合您PDF阅读器的按钮或按键,例如,在装有Acrobat或Acrobat Reader的Mac上,使用cmd-left箭头在Mac上预览,使用cmd- [。其他操作系统上的某些阅读器使用alt-left箭头,您可以通过谷歌查看适用于您的pdf阅读器的解决方案。)
@H_363_301@没有工作的超链接。
@H_363_301@这些文件已被压缩到大约7 MB。如果您在阅读时遇到任何问题,请告知我们。请注意,预览版的默认Mac OS X pdf阅读器的最新版本已知会在PDF文件中显示某些图片。如果数字显示不正确,请尝试使用更好的PDF查看器,例如Acrobat Reader。
目录:
- 预习
- 配置空间
- 刚体运动
- 前进运动学
- 速度运动学和静力学
- 逆运动学
- 闭链运动学
- 开放链的动力学
- 轨迹生成
- 运动规划
- 机器人控制
- 抓住和操纵
- 轮式移动机器人
- 附录A.有用公式的总结
- 附录B.其他旋转表示
- 附录C. Denavit-Hartenberg参数
- 附录D.优化和Lagrange乘子
这本书是为了让工程学学生参加典型的一年级工程课程而编写的。学生应该了解:
@H_363_301@学生也应该准备好编程,但只需要基本的编程技巧。代码以python(免费提供),MATLAB(用于购买,或者您可以使用免费提供的GNU Octave克隆)和Mathematica(用于购买)提供,因此这些语言是首选。
--------
V-REP简介
在V-REP的主页上,程序被描述为
......机器人模拟器中的瑞士军刀:您不会找到具有更多功能,功能或更复杂的API的模拟器。
V-REP的优势来自以下几个特点:
- V-REP提供了一个统一的框架,结合了许多功能强大的内部和外部库,这些库经常用于机器人仿真。其中包括动态仿真引擎,正向/反向运动学工具,碰撞检测库,视觉传感器仿真,路径规划,GUI开发工具以及许多常用机器人的内置模型。
- V-REP具有高度可扩展性。V-REP开发人员提供了一个API,允许用户编写添加新功能的自定义插件。您可以将Lua脚本直接嵌入到模拟场景中,例如处理模拟传感器数据,运行控制算法,实现用户界面,甚至将数据发送到物理机器人。他们还提供了一个远程API,允许用许多编程语言开发独立应用程序,这些程序语言能够将数据传入和传出正在运行的V-REP模拟。
- V-REP是跨平台的,主要是开源的,并提供免费的教育许可证。
这个页面的目的不是要教你如何使用V-REP。而是描述已经开发出来的示范场景,以支持Modern Robotics这本书的学习。如果您有兴趣了解更多关于V-REP的信息,请查看下面的有用资源部分。
演示V-REP场景
要运行以下任一场景,第一步将是为您的操作系统下载V-REP。你应该下载最新的非限制性教育版本。接下来你将不得不安装V-REP。在Windows上,您只需安装一个安装V-REP的EXE。在Mac上,您首先需要解压下载。通过解压缩下载产生的vrep.app
目录包含一个目录,该目录应允许您通过正常机制启动V-REP,例如Finder / Spotlight / Launchpad。在Linux上,您将需要提取压缩的tar归档文件(例如,使用类似的命令tar xvf V-REP_PRO_EDU_V3_3_2_64_Linux.tar.gz
)。然后,您需要将目录切换到V-REP源目录并运行vrep.sh
shell脚本。
一旦V-REP打开,您将需要运行下面的一个场景。要运行它们中的任何一个,首先运行V-REP,然后单击File->Open scene...
并打开下面链接的其中一个ttt文件。然后点击顶部工具栏中的“播放”按钮或单击Simulation->Start simulation
,弹出一个GUI。点击停止按钮或Simulation->Stop simulation
关闭GUI并停止模拟。
大部分场景都具有运动控制,无响应机器人的模拟。运动控制意味着忽略系统的所有动力学(惯性,扭矩,摩擦等)。我们指定机器人的配置,并立即“传送”到新配置。不可回应意味着机器人的链接不能通过碰撞与世界或彼此进行交互。换句话说,我们可以将机器人置于导致自碰撞的配置中。
“交互式”场景允许您在使用滑块更改其配置时可视化机器人。“CSV”场景允许基于存储在逗号分隔值文件中的轨迹的机器人动画,其中每行对应于一个时间步,并由逗号分隔的数字组成,指定该时间步的机器人配置。“CSV”场景中没有联合限制。
CSV移动操纵场景是一个部分动态控制的来自库卡的可回应youBot模拟。
- 有关csv文件格式的重要注意事项: 下面包含的用于csv场景的示例csv文件假定句点(而不是逗号)用作小数点。所以pi写成3.14,而不是3,14。如果你正在使用Linux和您的区域设置被设置为使用逗号作为小数点分隔符,一个解决方案,通过Coursera学生提出了一个区域,是使用美国英语设置调用V-REP:
LC_NUMERIC = en_US.UTF-8 ./vrep.sh
- 另一个选项,也是由Coursera学生建议的,是打开“系统设置” - >“语言支持” - >“区域格式”选项卡。将区域更改为“英语(美国)”后,请注销并返回以使更改生效。
在每个场景中,都有一个叫做非线程子脚本的Lua脚本。当场景第一次运行时,会有一个被调用的函数来设置GUI并创建稍后在模拟中需要的变量。然后在模拟的每个步骤中主要脚本,它是每个V-REP场景的一部分,从子脚本运行一个“驱动”功能。该执行功能负责处理自上次调用(按钮点击,标签更新等)以来所有对GUI的更改,并且将关节命令发送给模拟机器人。从技术上讲,在主脚本中调用的子脚本中还有一个“传感”功能,但在每个场景中,传感功能都是空的。GUI都是用V-REP的基于Qt的自定义用户界面框架构建的。
场景1:交互式UR5
这个场景可以帮助您从Universal Robots中查看UR5机器人。UR5的模型是通过从ROS-Industrialur5_description包导入URDF创建的。该场景中的GUI具有两个选项卡。一个选项卡允许您拖动滑块来修改每个关节的关节角度,另一个选项卡允许您为可编辑文本框中的所有6个关节指定逗号分隔的角度,并要求从基础框架到SE(3)转换到末端执行器框架。连接到基座和末端执行器的框架将持续显示(x轴为红色,y轴为绿色,z轴为蓝色)。请注意,所有角度均以弧度指定。
@H_363_301@场景2:CSV动画UR5
该场景基于代表机器人轨迹的csv文件来动画UR5机器人的运动。csv文件的每一行代表一个时间步,csv文件的每一列是其中一个关节的关节角度(第一列是关节1,最后一列是关节6)。
@H_363_301@场景3:互动youBot
- 在场景4:CSV动画youBot
这个场景基于表示机器人轨迹的csv文件来动画youBot的运动。csv文件的每一行表示一个时间步,csv文件的每一列都是一个时间的配置变量。csv文件有12或13列。列1-3表示移动基站配置变量,按照(phi,x,y)排序,其中phi是基站的角度,(x,y)是其中心的位置。列4-8表示五个臂关节角度,即关节1至关节5.列9-12表示车轮角度,其中车轮1为列9,车轮4为列12,车轮编号如图所示在右边。第13栏是可选的。如果存在,则0表示夹具打开,1表示夹具关闭。如果没有第13列,那么夹具默认打开。
- 下载ttt场景文件。
- 下载一个示例csv文件。
- 下载youBot移动基础的基本动作.zip文件。该文件夹有youBot移动底座的五个基本动作,显示与移动底座的某些基本动作相关的正确的轮子动作。您可以通过比较您的车轮运动与这些.csv文件中的车轮运动来检查您的轮式移动基座运动学(或测距法)是否正确。
- yb1.csv:恒速旋转到位(机器人左侧和右侧的轮子以相反的速度移动)。
- yb2.csv:恒速前进运动(所有车轮以相同的速度运动)。
- yb3.csv:恒速横向运动(对角上的轮子以相同的速度移动)。
- yb4.csv:恒速对角线运动(车轮2和4以相同的速度运动,而车轮1和3静止不动)。
- yb5.csv:恒速对角线运动(轮子1和3以相同的速度移动,而轮子2和4静止)。
场景5:CSV动作规划Kilobot
该场景使您可以使用图形搜索技术(如A *)在无向图上可视化运动规划。为了显现所设计的运动,我们使用的是kilobot机器人的尺寸的平面正方形环境中移动-0.5 <= X <= 0.5和-0.5 <= Y <= 0.5。障碍表示为圆柱体,而图形本身则表示为具有黄色边缘的蓝色节点。kilobot实际遵循的路径由绿色边缘表示,目标节点呈红色。看到右边的图片。这个场景不会做运动计划。相反,它会显示您的运动计划器的输出。它期望您提供具有四个文件的文件夹的路径,名为nodes.csv,edges.csv,path.csv和obstacles.csv:
@H_363_301@- nodes.csv:如果图形有N个节点,那么这个文件有N行。每行都是表单ID,x,y,heuristic-cost-to-go。ID是节点的唯一整数ID号,这些ID号应取值1到N. x,y是平面中节点的(x,y)坐标。启发式成本即走是对从该节点到目标节点的最短路径(例如,到目标节点的欧几里德距离)的乐观近似。此信息对A星搜索非常有用,但未在路径的可视化中显示。
@H_363_301@- edges.csv:如果图形具有E边缘,则该文件具有E行。每行的格式为ID1,ID2,成本。ID1和ID2是由边连接的节点的节点ID。成本是穿越边缘的成本。如果您不希望显示边缘,则此文件可以为空。
@H_363_301@- path.csv:该文件指定图中的解决方案路径,它是单行,格式为ID1,ID2,...第一个数字是解决方案路径中第一个节点的ID,最后一个数字是解决方案路径中最后一个节点的ID。如果运动规划问题没有解决方案,则路径可以包含一个ID号,即机器人开始(和停留)的节点的ID。
@H_363_301@- obstacles.csv:该文件指定圆柱形障碍物的位置和直径。每行是x,y,直径,其中(x,y)是障碍物的中心,直径是障碍物的直径。如果没有障碍物,这个文件可以是空的。
没有什么能够阻止你在障碍物内提供节点或边缘的文件。path.csv文件当然是图搜索计划程序的输出。规划人员的输入可以是obstacle.csv文件,并且可以是开始节点和目标节点的位置规范,也可以是nodes.csv和edges.csv文件以及开始节点和目标节点的规范,也可以是是其他信息,取决于你的策划者。但是无论如何,这个场景需要上面的四个文件来进行可视化。
@H_363_301@- 在这里下载ttt场景文件。
- 在此下载示例csv文件目录的zip文件。您需要从此zip文件中提取文件夹。
- 描述使用这个场景的基于采样的计划任务。
场景6:CSV移动操作youBot
这个场景有一个youBot移动机械手和一个立方体。预计youBot会拿起立方体并将其放在目标位置(“拾取和放置”)。此场景为用户指定的csv文件创建动画,其格式与上述相同,其中每行csv文件有13个变量:3个用于底盘配置,5个用于臂关节角度,4个用于轮角度,1个用于夹具状态(0 =打开,1 =关闭)。然而,与其他youBot csv动画场景不同的是,整个机器人现在可以响应,这意味着机器人的链接和底盘现在可以通过碰撞与世界或彼此进行交互。youBot和cube的抓手是动态建模的,以模拟实际的拾取和放置。换句话说,如果夹具没有正确关闭,它可能会滑落,场景7:CSV动画MTB
这个场景模拟RRPR机器人。它动画一个包含关节角度轨迹的csv文件。csv文件的每一列是其中一个关节的关节角度/时间长度(按照RRPR的顺序)。单行csv文件表示机器人在特定时间的完整配置。棱柱接头(P)具有接头极限范围[0,0.2]。行之间假定的时间步长等于V-REP用于模拟的时间步长;默认值是0.05秒。原文链接:https://www.f2er.com/ubuntu/349596.html- 在这里下载ttt场景文件。
- 在场景之间切换
按停止按钮停止模拟当前场景,然后选择
File>Open scene...
。您也可以使用File>Open recent scene
切换到您之前加载的场景。然后按下Play按钮来运行场景。或者,停止模拟,然后按Scenes
顶部工具栏中的按钮查看哪些场景当前处于打开状态,并选择一个场景处于前景中。场景选择器工具栏按钮也可用于在打开的场景之间切换。在这里阅读更多。录制电影
V-REP附带录像机。去
Tools>Video recorder
。您可能需要停止当前场景才能配置录像机。你可以在这里找到关于录制V-REP电影的更多信息:http://www.coppeliarobotics.com/helpFiles/en/aviRecorder.htm。一个更简单的选择可能只是使用您的计算机的屏幕录制软件。在Mac上,您可以使用Quicktime。在Linux上,您可以使用SimpleScreenRecorder或recordMyDesktop。在Windows上,您可以使用屏幕录像机。或者你可能有自己的解决方案。
探索其他场景
我们鼓励您探索一些预先加载V-REP的(相当令人印象深刻的)场景。您可以
scenes
在V-REP目录下的目录中找到这些场景。运行和学习这些可以更好地了解V-REP功能并了解如何组合更复杂的场景。有用的资源
@H_363_301@ - V-REP概述介绍
- V-REP视频页面
- V-REP教程系列
- V-REP功能概述
- V-REP API文档这些都是可以直接从定制C / C ++插件或通过Lua嵌入式脚本调用的所有函数。
- 远程API文档远程API是V-REP如何使用其他语言(MATLAB,Java,Python等)编写的脚本和程序与V-REP模拟
--------
V-REP V3.5.0(2018年2月6日)
----
上图为Ubuntu 16.04 + ROS Kinetic + Matlab。
----(^_^)----