【探索之路】机器人篇(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开篇
机器人的定义 首先,什么才是机器人?机器人是不是必须和人一样的外形?我们先看一看维基百科给机器人的定义: 由上可见,机器人并不是和人一样的外形,而是可以模拟人类行为或者思想再或者是模拟其他生物的机械. ...
随机推荐
- Bootstrap Blazor 组件介绍 Table (二)自定义模板列功能介绍
Bootstrap Blazor 是一套企业级 UI 组件库,适配移动端支持各种主流浏览器,已经在多个交付项目中使用.通过本套组件可以大大缩短开发周期,节约开发成本.目前已经开发.封装了 70 多个组 ...
- java45
Collection c2 = new ArrayList(); c2.add("a"); c2.add("b"); //移除集合中的某个元素 c2.remov ...
- Appium之测试微信小程序
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:Oschina.云+社区.知乎等各大平台都有. 目录 一.往期回顾 二.测试微信小程序 1.准备工作 2.操作步骤 3.注意 4.强制设置安卓的进程 ...
- 20200520_windows2012安装python和django环境
http://httpd.apache.org/download.cgi#apache24 配置文件修改后, 记得去阿里云开放端口 ServerName 172.18.196.189:9080 →不能 ...
- 第三十九章、PyQt显示部件:OpenGL Widget部件功能简介及使用其显示图片
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 OpenGL Widget部件是一个Op ...
- Python中可迭代对象是什么?
Python中可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过__iter__( )方法或__getitem__( )方法访问. __i ...
- 理解 tf.reduce_sum(),以及tensorflow的维axis
易错点:注意带上参数axis,否则的话,默认对全部元素求和,返回一个数值int 参考:https://www.jianshu.com/p/30b40b504bae tf.reduce_sum( inp ...
- js 实现字符串翻转
字符串作在程序中是非常常见的,因为程序中绝大部分的数据都可以当作字符串来处理.在这里介绍几种翻转字符串的方法. (1)使用字符串函数 //使用数组翻转函数 function reverseString ...
- EF 查询外键对应的实例
EF 查询外键对应的实例 1. 查询时易遇到的情况: 能查询到外键值,但对应的外键实例为null. 解决方法: (1) 使用EF的include // 我的应用如下 // SampleResult ...
- AcWing 127. 任务
题目链接 参考y神的思路QWQ 算法:贪心 对于每一个任务: \(y\) 的差异最多能使利润\(w\)浮动\(2 * 100 = 200\)元. \(x\) 差\(1\),则会使利润\(w\)浮动\( ...