【探索之路】机器人篇(2)-ROS系统并创建工作空间和项目
在ROS官网,已经给出了详细的教程。下面我就般一下砖,把相应的操作写到这里。官方网址:http://wiki.ros.org/cn/
安装ROS系统
indigo在ubuntu上的安装教程。官网:http://wiki.ros.org/cn/indigo/Installation/Ubuntu
1. 添加sources.list
配置你的电脑使其能够安装来自 packages.ros.org的软件。 ROS Indigo 仅 支持 Saucy (13.10) 和 Trusty (14.04)。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
如果你觉得你的下载速度太慢或者是无法下载,可以使用国内的源. http://wiki.ros.org/ROS/Installation/UbuntuMirrors
2. 添加 keys
sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
3. 安装ROS系统
首先,要保证Debian软件包索引是最新的
sudo apt-get update
然后安装(注:桌面完整版里面包含了各个工具和软件包,桌面完整版中包含了基础班。基础班只有核心的软件包和工具,无rqt、rviz等工具)
sudo apt-get install ros-indigo-desktop-full (桌面完整版安装)
sudo apt-get install ros-indigo-ros-base (基础版安装)
4. 初始化rosdep
sudo rosdep init
rosdep update
5. 设置环境
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
6. 安装 rosinstall
sudo apt-get install python-rosinstall
至此,ros的安装已经完成,如果您安装的过程中出现问题,可以将出错的那一行拿到百度中搜索查找一下解决方案。
7. 安装测试
重新打开一个终端,并执行roscore,如果未出现红色错误并出现以下情况则代表安装成功。

创建ROS工作空间
ros的工作空间创建其实很简单,就相相当于用编译器编译一次文件。
但是编译器所执行的文件目录下必须由src文件。所以创建ROS工作空间的步骤就是,找一个目录,在里面新建一个src文件件,然后编译,编译工具会自动生成工作空间需要的文件。
mkdir -p ~/catkin_ws/src #创建目录
cd ~/catkin_ws/ #进入到目录中,确保有src目录
catkin_make #编译
可见,执行编译工作后,我们的目录中多了 build 和 devel子目录,并多了好多文件,在src目录中多了一个CMakeLists.txt文件,这就是编译器自动创建的,也就创建了一个新的工作空间catkin_ws。
工作空间目录如下:

为了能让ros系统发现我们的新的工作空间,我们需要设置设置一下环境变量,这样ros系统才能找到我们以后创建的包文件。
source ~/catkin_ws/devel/setup.bash
为了避免以后每次打开终端都要执行上面这句话,我们可以将上面的语句添加到.bashrc文件中。
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
这样,我们以后打开终端,直接操作就行了。
创建一个ROS程序包
首先,进入我们的工作空间的src目录中,我们的程序包必须放到工作空间的src目录中(也可以是子目录).
我创建一个mwRobot_description,用来描述我的mwRobot机器人。(catkin_create_pkg后的第一个参数是包名,后面是依赖)
catkin_create_pkg mwRobot_description std_msgs rospy roscpp urdf
这样,一个ros程序包就创建好了,我们编译一下,然后关闭终端在重新启动看看能不能识别到我的程序包。
创建程序包后要回到工作空间目录下,执行catkin_make,然后关闭终端重新打开,在终端上输入roscd mw 然后按tab建看看能否看到自己包的名字(mw是我创建包的前两个字母,你们自行替换)。
如果可以看到,则mwRobot_description包创建成功。
【探索之路】机器人篇(2)-ROS系统并创建工作空间和项目的更多相关文章
- 【2017.10.13 ROS机器人操作系统】ROS系统常用术语及资源
ROS机器人操作系统是一种后操作系统,提供了类似于软件开发中使用到的中间件的功能. ROS: Robot Operating System 机器人操作系统 Package: 功能包 Stack: 功能 ...
- 编写第一个ROS(创建工作空间workspace和功能包package)
刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配置好ROS. 1.创建工作空间(workspace) 我们所创建功能包package,应该全部放到一个 ...
- ROS教程(二):创建工作空间(图文)
ros教程:创建工作空间 目录 前言 一.工作空间? 二.创建一个工作空间 1.创建目录 2.编译 前言 使用catkin创建一个工作空间 一.工作空间? 在ROS系统下,我们所有的项目都放在一个工作 ...
- (转)-编写第一个ROS(创建工作空间workspace和功能包package)
原文网址:http://www.cnblogs.com/liuamin/p/5704281.html 刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配 ...
- ROS系统MoveIt玩转双臂机器人系列(一)
一.ROS系统的MoveIt模块简介 机器人操作系统ROS目前最受关注的两个模块是导航(Navigation)和机械臂控制(MoveIt!),其中,机械臂控制模块(后面简称MoveIt)可以让用户快速 ...
- ROS机器人程序设计(原书第2版)补充资料 (贰) 第二章 ROS系统架构及概念
ROS机器人程序设计(原书第2版)补充资料 (贰) 第二章 ROS系统架构及概念 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 由于工作事 ...
- ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门
ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 第一章主要包括R ...
- SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- 【探索之路】机器人篇(1)-ROS-mwRobot开篇
机器人的定义 首先,什么才是机器人?机器人是不是必须和人一样的外形?我们先看一看维基百科给机器人的定义: 由上可见,机器人并不是和人一样的外形,而是可以模拟人类行为或者思想再或者是模拟其他生物的机械. ...
随机推荐
- java44
1.使用封装工具类思想:三种输入模式下的工具类. dateUtils类, StringUtils类(判断字符串值是否为空), 调用工具类: String res = dateUtils.datetoS ...
- rest-framework:权限组件
一 权限简介 只用超级用户才能访问指定的数据,普通用户不能访问,所以就要有权限组件对其限制 二 局部使用 from rest_framework.permissions import BasePerm ...
- Django-View中绕过RSCF验证
在Django中对于基于函数的视图我们可以 @csrf_exempt 注解来标识一个视图可以被跨域访问.那么对于基于类的视图,我们应该怎么办呢? 简单来说可以有两种访问来解决 方法一:在类的 disp ...
- Python函数独立星号(*)分隔的命名关键字参数
如果需要限制关键字参数的输入名字,就需要使用到命名关键字参数的形式,所谓命名关键字参数就是给关键字参数限定指定的名字,输入其他名字不能识别.命名关键字参数和位置参数之间使用独立的星号(*)分隔,星号后 ...
- Python中迭代循环使用比较多的range函数的作用
range函数用于生成一个不可变的数字序列可迭代对象,类型为range,该数字序列通常用于在 for 循环中循环指定的次数. 具体可参考:<Python中与迭代相关的函数>的详细介绍 老猿 ...
- 第9.1节 Python的文件打开函数open简介
一.语法简介 函数基本使用语法:open(文件名,文件打开模式='rt') 其中: 1.文件名为可带路径的文件名,注意windows下路径的反斜杠会被作为转义符处理,因此可以采用前面再加反斜杠或使用原 ...
- PyQt(Python+Qt)学习随笔:QTableWidget的currentItem、rowCount、columnCount等部件状态属性访问方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 老猿将QTableWidget表格部件中反映部件当前情况的一些方法归类为部件状态访问方法,包括部件的 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象的tabShape属性
tabShape属性用于控制主窗口标签部件(Tab Widget)中的标签的形状,对应类型为QTabWidget.TabShape,有两种取值: 1.QTabWidget.Rounded:对应值为0, ...
- 小程序image无法显示图片
图片路径中有中文 图片地址为http开头,图片只能在调试模式中显示,真机也必须开调试. 图片名称有空格 图片的后缀必须为小写的.png或者.jpg
- 题解 洛谷P6853 station
蒟蒻语 还是蒟蒻太菜了,这场 div1 竟然一题都没做出来/kk/kk/kk 蒟蒻解 首先我们把每 5 个点分为一组.然后分组结果大概是这样子: 可以看到首先下面需要有一条边来让整张图有一条支撑的路径 ...