【探索之路】机器人篇(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开篇
机器人的定义 首先,什么才是机器人?机器人是不是必须和人一样的外形?我们先看一看维基百科给机器人的定义: 由上可见,机器人并不是和人一样的外形,而是可以模拟人类行为或者思想再或者是模拟其他生物的机械. ...
随机推荐
- Asp.NetCore之AutoMapper基础篇
应用场景 现在由于前后端技术的分离,后端程序员在使用ORM框架开发后台API接口的时候,往往会将数据库的"数据模型"直接提供给前端.而大多数时候,可能这些数据并不能够满足前端展示的 ...
- Spring Boot 集成多个 Kafka
一.配置文件 application.yml spring: kafka: one: bootstrap-servers: IP:PORT consumer: group-id: YOUR_GROUP ...
- Python正则表达式re.match(r"(..)+", "a1b2c3")匹配结果为什么是”c3”?
在才开始学习正则表达式处理时,老猿对正则表达式:re.match(r"(-)+", "a1b2c3") 返回的匹配结果为"c3"没有理解,学 ...
- 【老孟Flutter】41个酷炫的 Loading 组件库
老孟导读:目前 loading 库中包含41个动画组件,还会继续添加,同时也欢迎大家提交自己的 loading 动画组件或者直接微信发给我也可以. Github 地址:https://github.c ...
- 把java编译成exe和安装包
由于某些项目甲方迟迟不结算尾款,这就很烦,只能想一些办法 我们知道java,python之类的代码是没有隐私可言的,那么怎么办,总要发给甲方验收,这就要做一些操作来确保自己的利益. 通过在源代码里加上 ...
- 谈谈MySQL bin log的写入机制、以及线上的参数是如何配置的
目录 一.binlog 的高速缓存 二.刷盘机制 三.推荐的策略 推荐阅读 问个问题吧!为什么你需要了解binlog的落盘机制呢? 我来回答一下: 上一篇文章提到了生产环境中你可以使用binlog ...
- I/O-外部设备
目录 输入设备 输出设备 显示器 阴极射线管(CRT)显示器 字符显示器 图形显示器 图像显示器 打印机 小结 外存储器 磁盘存储器 磁盘设备的组成 存储区域 硬盘存储器 磁盘的性能指标 磁盘地址 硬 ...
- 20201128-2 【自动化办公】读写csv文件
Exercise 1 import csv # 设置员工发展基金确认表路径 source_path = './员工发展基金确认表.csv' # 设置存放拆分结果文件的文件夹路径 result_path ...
- 2020软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!
测试技术面试题 1.什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台.软件平台上是否可以正常的运行,即是通常说的软件的可移植性. 兼容的类型,如果细分的话 ...
- vue 实现一个商城项目
在学习了 vue 之后,决定做一个小练习,仿写了一个有关购物商城的小项目.下面就对项目做一个简单的介绍. 项目源码: github 项目的目录结构 -assets 与项目有关的静态资源,包括 css, ...