[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 ...
随机推荐
- PHP:( && )逻辑与运算符使用说明
第一次看到以下语句的写法大惑不解 ($mCfg['LockChinaIp']==1 && (int)$_SESSION['AdminUserId']==0 && sub ...
- div 添加滚动条
<div id="dic" style="overflow:auto">
- css单位:em,rem解释
em:所有浏览器都符合:1em=16px;1.具有继承性2.em的根元素是body,当设置了根元素的大小时,大小是定义的数字乘以根元素定义的大小值 rem:1rem=16pxrem不具有继承性,其根元 ...
- HTML打折计算价格
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <met ...
- Cisco VPN can't work in Win8
Goto HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CvirtA Change DisplayName to "Cisco ...
- java中文乱码解决之道(五)-----java是如何编码解码的
在上篇博客中LZ阐述了java各个渠道转码的过程,阐述了java在运行过程中那些步骤在进行转码,在这些转码过程中如果一处出现问题就很有可能会产生乱码!下面LZ就讲述java在转码过程中是如何来进行编码 ...
- Improve Your Study Habits
1.Plan your time carefully. Make a list of your weekly tasks.Then make a schedule or chart of your t ...
- 你真的会用java replaceAll函数吗?
replace.replaceAll.replaceFirst这三个函数会java的同学估计都用过,笔者已经用了2年多,可是,我们真的懂他们吗? 概述一下他们三个的用法: · replace(Char ...
- Azure Table storage 基本用法 -- Azure Storage 之 Table
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table,其中的 Table 就是本文的主角 Azure Tabl ...
- Module Zero之权限管理
返回<Module Zero学习目录> 概览介绍 角色权限 用户权限 概览介绍 Module-Zero实现了ABP授权系统的IPermissionChecker接口.这篇文章中,我们将会看 ...