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. iOS地图

    地图 1.主要用到了地图展示和定位功能 CoreLocation框架的使用: 导入头文件        #import <CoreLocation/CoreLocation.h>CoreL ...

  2. iOS开发查看手机app本地存储的文件

    开发过程中,有时会在本地存储一些文件,但是我们不确定有没有存上,可以通过以下方法来查看测试手机上本地存储的文件: 1.选择xcode上面的window下面的Devices 2.先在左边选中你当前的设备 ...

  3. git 常用操作命令

    A. 新建Git仓库,创建新文件夹git init B. 添加文件到git索引git add <filename>  --- 单个文件添加git add * --- 全部文件添加 C. 提 ...

  4. Lua源代码阅读分析问题列表(转)

    最近正在阅读lua源码,遇到座灯塔,转载如下: 我个人的习惯是带着问题去研究一个新题目,比如这次阅读Lua代码,暂列下面这些问题. 1)什么是基于栈.基于寄存器的虚拟机(VM)设计?Lua如何实现基于 ...

  5. return array 评论添加状态和提示信息

    ThinkSNS漏洞系列第一弹,某处处理不当导致SQL注入 漏洞点出现在Comment Widget里:\addons\widget\CommentWidget\CommentWidget.class ...

  6. 纯jQuery-添加/修改/删除 标签,属性

    <h1>通过学习<精彩绝伦的jQuery>与W3C,大致了解JQuery的一些方法.</h1> PS:需要有一些前置条件,比如JQuery源代码,比如html就要有 ...

  7. IEEE/ACM ASONAM 2014 Industry Track Call for Papers

    IEEE/ACM International Conference on Advances in Social Network Analysis and Mining (ASONAM) 2014 In ...

  8. Principles of measurement of sound intensity

    Introduction In accordance with the definition of instantaneous sound intensity as the product of th ...

  9. python获取当前时间的用法

    1.先导入库:import datetime 2.获取当前日期和时间:now_time = datetime.datetime.now() 3.格式化成我们想要的日期:strftime() 比如:“2 ...

  10. APK瘦身记,如何实现高达53%的压缩效果

    作者:非戈@阿里移动安全 1.我是怎么思考这件事情的 APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律. ...