[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 ...
随机推荐
- 怎么将java web 项目导入idea 中
1.将 java web 项目导 入idea 中, 显示 然后进行 Configure 配置. 2. 点击 open module settings. 3. 4. 选择jar包. 5. 6. 配置to ...
- div 添加滚动条
<div id="dic" style="overflow:auto">
- 解决Android界面布局添加EditText组件后界面无法预览
错误报告: Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V Exception details are ...
- ruby 访问新浪微博API post方式和get方式
require 'net/https' require 'uri' def post_api(api, args) uri = URI.parse api http = Net::HTTP.new(u ...
- 禁用nested loop join里的spool
禁用nested loop join里的spool 转载自: https://blogs.msdn.microsoft.com/psssql/2015/12/15/spool-operator-and ...
- 剑指Offer面试题:14.链表的倒数第k个节点
PS:这是一道出境率极高的题目,记得去年参加校园招聘时我看到了3次,但是每次写的都不完善. 一.题目:链表的倒数第k个节点 题目:输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的习惯,本题 ...
- 剑指Offer面试题:20.栈的压入、弹出序列
一.题目:栈的压入.弹出序列 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1.2.3.4.5是某栈的压栈序列,序列4 ...
- 《HiWind企业快速开发框架实战》(1)框架的工作原理
<HiWind企业快速开发框架实战>(1)框架的工作原理 1.HiWind架构 HiWind的基本架构如下: 持久层部分:同时为框架本身的业务服务,也为开发人员的自定义业务服务. 逻辑层: ...
- 【Java并发编程实战】-----“J.U.C”:锁,lock
在java中有两种方法实现锁机制,一种是在前一篇博客中([java7并发编程实战]-----线程同步机制:synchronized)介绍的synchronized,而另一种是比synchronized ...
- sqlalchemy(一)基本操作
sqlalchemy(一)基本操作 sqlalchemy采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型. 安装 需要安装MySQLdb pip install ...