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">

Reference:https://www.zhihu.com/question/35788789/answer/78468504

最近在给我们公司的机器人建ros的wiki和pkg。

——————————————————————
2016年1月28日更新
不错,我已经做完了一部分,我做了ROS里面的package, api以及相关的Topicsnodes.

除此之外还做了机械臂的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的更多相关文章

  1. [SLAM] Studying Guidance

    Books from Zhihu: 幽默一把 看完Gonzalez:嗯,好像很好玩的样子,我也来搞一搞.看完Price:什么鬼,怎么这么多公式,公式看不懂肿么破.看完Szeliski:原来用一千页的书 ...

  2. ROS 笔记

    ros的编程范式 - ros认为,linux平台下,机器人的软件由一个个小程序组成,这些小程序称为node,每个小程序负责一部分功能 - ros实现的框架就是,小程序的并发执行+相互通信,程序(进程) ...

  3. STM32读取Guidance数据——Guidance SDK

    更新记录:2019/11/14    更新STM32(F407VET6)读取Guidance数据 Github地址. 背景:想要将祖传的Guidance用于DJI A3/新固件的N3飞控.DJI已经停 ...

  4. 阿里云VPS服务器,ROS内网穿透

    Aliyun Windows Server 2008 R2中建立vpn服务器,ros中使用pptp拨号连接 2.在Aliyun服务器中,修改hosts,将内网分配的ip映射到指定的域名,在Aliyun ...

  5. QT下调试基于ros的catkin项目

    1.首先告诉qt ros的搜索路径,通过修改qt creator 桌面启动程序来实现 sudo    gedit ~/.local/share/applications/DigiaQtOpenSour ...

  6. ROS学习(三)—— ROS文件系统

    一.预备工作 使用ros0tutorials程序包,先下载: sudo apt-get install ros-<distro>-ros-tutorials 其中<distro> ...

  7. ROS学习(二)—— 配置ROS环境

    一.管理环境 p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚 ...

  8. ROS学习(一)—— 环境搭建

    一.配置Ubuntu软件仓库且选择ROS正确版本 二.添加source.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubun ...

  9. ros::spin() 和 ros::spinOnce() 区别及详解

    版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...

随机推荐

  1. 用SQL语句将数据表中的数据保存为JSON格式

    没有找到好的工具,只想到了拼字符串的方式,用   NVARCHAR(MAX)  可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL ...

  2. PHP date函数时间相差8个小时解决办法

    php中date时间相差8个小时的解决办法 作者: PHP中文网|标签:|2016-7-25 08:46 在Windows上,在默认的PHP配置下,date函数返回的时间值和当地时间总是相差8小时,即 ...

  3. Python3.5+selenium操作Chrome浏览器

    1.安装selenium 命令提示符下输入: pip install selenium 2.下载chromedriver 点击下载 3.将解压后的chromedriver.exe放到chrome浏览器 ...

  4. CSS外边距叠加问题

    CSS外边距叠加就是margin-collapse,边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距,水平边 距永远不会重合.重叠结果计算规则:①.两个相邻的外边距都是正数时,折叠结果是它 ...

  5. TP字母函数

    http://wenku.baidu.com/view/2a0ec9c13c1ec5da50e27099.html?from=search

  6. C语言的傻瓜式随笔(一):嵌套循环-程序结构

    循环语句的嵌套 一个循环结构内可以含有另一个循环,称为循环嵌套,又称多重循环.常用的循环嵌套是二重循环,外层循环称为外循环,内层循环称为内循环. ---------不知道哪来的基础概念 这是本宝宝的第 ...

  7. 电子商务网站SQL注入项目实战一例

    故事A段:发现整站SQL对外输出: 有个朋友的网站,由于是外包项目,深圳某公司开发的,某天我帮他检测了一下网站相关情况. 我查看了页面源代码,发现了个惊人的事情,竟然整站打印SQL到Html里,着实吓 ...

  8. .NET 4.5.1 预览版新特性

    上个月的微软Build大会上宣布了.NET 4.5.1的推出,Heydarian的这个演讲题为".NET开发中的新内容",涵盖了.NET Framework中一些重要的新特性. H ...

  9. Android学习——第一个NDK程序

    在前面的学习中,我们已经讲解了关于NDK编程的环境搭建流程,简单的使用我们也通过官网本身自带的例子进行说明了.可是相信大家一定还存在这么的一个疑惑:“如果我要自己利用NDK编写一个Android应用, ...

  10. 微冷的雨Java基础学习手记(一)

    使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...