[ROS] Studying Guidance
Reference: https://www.zhihu.com/question/35788789
安装指南:http://wiki.ros.org/indigo/Installation/Ubuntu
第一,有心的同学可能已经注意到了,这里的版本是indigo而并非是最新版本的jade,这里都是血泪的教训,一开始老师就告诉我们新手要选择indigo版本安装。
第二,是镜像源的问题。在安装步骤1.2 Setup your sources.list下面黄色底的Mirrors字样点进去就是我们可以选择的镜像源,国内的同学推荐选择前3个,中国科技大,中山大学(为什么不是我大华南理工!),和易科机器人实验室。
第三,在1.4 Installation中,一定要仔细阅读蓝色框里的话,如果没有提示你要安装这些依赖包的话就千万别安装,不然后果就是电脑连机都开不了,不要问我是怎么知道的。
现在我们有了ROS了,ROS需要有一个自己的工作空间,根据tutorial的第一篇来设置,ROS/Tutorials/InstallingandConfiguringROSEnvironment。注意一点是,如果一旦发生ROS找不到package的情况,择需要一个附加步骤,就是$source /用户目录/catkin_ws/devel/setup.sh。当然没有出现问题的时候不要使用这一招。
上手的部分已经完成,下面就是跟着ROSwiki的教程学习了。ROSwiki相当的齐全友好,唯一的缺憾就是中文的版本 cn - ROS Wiki 并不完整。
正如最高票回答@Shutong Jiang所说,ROS作为一个平台工具本身其实是非常简单的(毕竟没什么工具设计出来是给我们添堵的吧......),难度本身还是要归结于对机器人控制的算法上面。关于机器人控制理论的基础介绍类书籍推荐Richard M. Murray,Zexiang Li,S.Shankar Sastry合著的《A Mathematical Introduction to Robotic Manipulation》。
ROS的编程语言基本都是基于C++和Python的。
正如我上面所说的,ROSwiki的中文教程并不完整。为了方便大家学习,我和同学决定翻译一份完整的ROS教程供大家学习,目前翻译工作已经过半,会在近期陆续发布在 MakeShare | 制享科技的藏经阁 上面,供有兴趣的同学查阅(如要转载的话,请提前与原作者及译者联系)。
<img src="https://pic1.zhimg.com/4298c2631436bccd3a30bae016cca8d8_b.jpg" data-rawwidth="2448" data-rawheight="3264" class="origin_image zh-lightbox-thumb" width="2448" data-original="https://pic1.zhimg.com/4298c2631436bccd3a30bae016cca8d8_r.jpg">
最近在给我们公司的机器人建ros的wiki和pkg。——————————————————————
2016年1月28日更新
不错,我已经做完了一部分,我做了ROS里面的package, api以及相关的Topics和nodes.除此之外还做了机械臂的urdf(我们自己的机械臂,拆分累死我了),以及Rivz里可视化与可控的nodes。已经发布到了我们的git里和官网上,感兴趣的可以看一看,说不定有帮助。里面有附图!https://github.com/uArm-Developer/UArmForROS
http://developer.ufactory.cc/api/ros/
——————————————————————------------------------------------------------------------------------
1,怎样学习?
------------------------------------------------------------------------
从学习过程来说,学习ROS最简单的方式就是看官方Tutorials(ROS/Tutorials) 看完beginner level基本就对ros有了比较清晰的了解。PS,学习所有软件/平台最简单粗暴直接的方式就是看官网里面tutorials / developer / quick-start / user-manual
ROS关键词: 编程语言 - C++/python, 架构 - 分布式操作系统,应用 - 机器人/仿真/3D重建/嵌入式等
------------------------------------------------------------------------
2,ROS是什么?
------------------------------------------------------------------------
但是题主既然提出了这个问题,就给题主简单说一下ROS的工作机制:简单的说,ros就是一个分布式操作系统,通过节点node,主题topic,服务service等进行通信和控制。
这个机制就好比 两个人聊天微信,每个人都是一个节点node,微信这个软件的聊天功能就是Topic,两个人只有都通过微信才能聊天,如果一个人用whatsup,另一个人用微信,是收不到对方信息的。 而service就好比表情包或者微信朋友圈,两个人在聊天的同时也可以自己搞搞有趣的东西即Service,但是不一定非要通过微信的聊天功能即Topic。
所以学好ROS就是不断的了解这种通信和交流的机制,然后应用在自己的项目上就好了。
就好比你通过opencv采集到了一个物体的坐标,然后用这个坐标去驱动一个马达。以往的方式是要把他们都放在同一个IDE中如visual studio,但是通过ros,opencv可以放到一个ide里执行,马达控制可以在arduino里执行,彼此通过ros的topic通信就好了。(打个比方,以前生产和销售要在同一个办公室,但是现在可以分隔两地。彼此用电话交流)
------------------------------------------------------------------------
3,学习顺序
------------------------------------------------------------------------
一般来说,对于穷人(即没有强大设备比如kuka/abb的机械臂)比较合理的学习顺序是
硬件流派: ros -> + arduino/raspberry pi -> +sensors -> + motors/+ servos -> +moveIt/gazabel 等等
软件流派: ros -> + 小乌龟 -> +opencv +图像识别小乌龟 -> + moveIt 室内移动小乌龟 ->....对于豪们,如果你有一台兼容了ROS库的 设备,比如iRobot,或者机械臂等,那么你可以轻易的使用各种API和仿真软件。
PS, 如果要买书,国内有一本叫做ROS机器人程序设计的书,是翻译西班牙的两个作者的。千万别买!不单单因为他就是完全copy官网的tutorials,而且到处都是bug
------------------------------------------------------------------------
4,ROS的亮点与其他
------------------------------------------------------------------------
ROS 这几年的亮点有 三维重建/室内导航与重建/PCL与opencv/仿真与人机协作等对于ROS高阶玩家,这里安利一枚ROS2015的年会ROSCon 2015 就在这页的下面就有每个来宾的video和pdf。大多都是讲他们公司/领域 是怎么使用ROS做开发的。
------------------------------------------------------------------------
5,国内的ROS们
------------------------------------------------------------------------
国内学ROS的人还是太少,而ROS最牛的地方恰恰是是让你建立不同软件之间的数据联系,所以如果大家想交流ROS或者PCL等知识可以私信我好吧,我还是继续给我们公司的机器人建ros的wiki和pkg吧。
目前的兴趣点:
加强学习 训练机器人。模拟人站立平衡
视觉slam部分。
[ROS] Studying Guidance的更多相关文章
- [SLAM] Studying Guidance
Books from Zhihu: 幽默一把 看完Gonzalez:嗯,好像很好玩的样子,我也来搞一搞.看完Price:什么鬼,怎么这么多公式,公式看不懂肿么破.看完Szeliski:原来用一千页的书 ...
- ROS 笔记
ros的编程范式 - ros认为,linux平台下,机器人的软件由一个个小程序组成,这些小程序称为node,每个小程序负责一部分功能 - ros实现的框架就是,小程序的并发执行+相互通信,程序(进程) ...
- STM32读取Guidance数据——Guidance SDK
更新记录:2019/11/14 更新STM32(F407VET6)读取Guidance数据 Github地址. 背景:想要将祖传的Guidance用于DJI A3/新固件的N3飞控.DJI已经停 ...
- 阿里云VPS服务器,ROS内网穿透
Aliyun Windows Server 2008 R2中建立vpn服务器,ros中使用pptp拨号连接 2.在Aliyun服务器中,修改hosts,将内网分配的ip映射到指定的域名,在Aliyun ...
- QT下调试基于ros的catkin项目
1.首先告诉qt ros的搜索路径,通过修改qt creator 桌面启动程序来实现 sudo gedit ~/.local/share/applications/DigiaQtOpenSour ...
- ROS学习(三)—— ROS文件系统
一.预备工作 使用ros0tutorials程序包,先下载: sudo apt-get install ros-<distro>-ros-tutorials 其中<distro> ...
- ROS学习(二)—— 配置ROS环境
一.管理环境 p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚 ...
- ROS学习(一)—— 环境搭建
一.配置Ubuntu软件仓库且选择ROS正确版本 二.添加source.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubun ...
- ros::spin() 和 ros::spinOnce() 区别及详解
版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...
随机推荐
- pythonchallenge 解谜 Level 3
第三关. 问题的解法在于正则表达式. 首先...你应该能找到需要正则的字符在哪里...那就好了! 题意就是说: One small letter, surrounded by EXACTLY thre ...
- 封装自己的DB类(PHP)
封装一个DB类,用来专门操作数据库,以后凡是对数据库的操作,都由DB类的对象来实现.这样有了自己的DB类,写项目时简单的sql语句就不用每次写了,直接调用就行,很方便! 1.封装一个DB类.一个类文件 ...
- CSS基础篇之选择符2
属性选择符: 选择符 版本 描述 E[att] CSS2 选择具有att属性的E元素. E[att="val"] CSS2 选择具有att属性且属性值等于val的E元素. E[at ...
- 一图搞定【实战Java高并发程序设计】
来了解下java并发的技术点吧.这里面包括了并发级别.算法.定律,还有开发包.在过去单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发就显得尤为重要.这本书主要介绍 ...
- 同一个页面多个page之间的切换
今天接触了JQ Mobile以下是本小白的理解(不怕大家笑话): 创建移动 web 应用程序的框架:适用于所有流行的智能手机和平板电脑: 将“写得更少.做得更多”这一理念提升到了新的层次:它会自动为网 ...
- linux查看发行版本
redhat系 cat /etc/redhat-release 其他 lsb_release -a
- ENode框架Conference案例分析系列之 - ENode框架初始化
前言 Conference案例是使用ENode框架来开发的.之前我没有介绍过ENode框架是如何启动的,以及启动时要注意的一些点,估计很多人对ENode框架的初始化这一块感觉很复杂,一头雾水.所以,本 ...
- ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期
开篇:上一篇我们了解了所谓的请求处理管道,在众多的事件中微软开放了19个重要的事件给我们,我们可以注入一些自定义的业务逻辑实现应用的个性化设计.本篇,我们来看看WebForm模式下的页面生命周期. ( ...
- IE10,11下_doPostBack未定义错误的解决方法
出现的原因 .NET2.0和.NET4.0一起发布的浏览器定义文件中有一个错误,它们保存相当一部分浏览器版本的定义.但是浏览器的有些版本(比如IE10,11)则不再在这个范围之内.因此,ASP.NET ...
- 如何调试ANDROID下面黑屏问题
最近很多朋友在问,为毛在WINDOWS下对了,跑ANDROID的虚拟机或者真机就黑屏了, 有的是只有FPS信息,有的是连FPS信息都没有.如果是程序能够正常启动,不会闪退,但显示不对. 那十有八九都是 ...