ROS ROS官网

ROS 简介

  1. ROS 是 Robot Operation System 的简写,并且 他诞生在2000年后,至今有10余年了,运行在 Linux(Ubuntu)
  2. ROS 不是 真正意义上的 OS(操作系统)
  3. 类似Java JVM 只是运行在操作系统上的一个软件来管理 Robot 的操作。 因为在过去 需要做很多事情。 机器人架构,底层算法,激光感应器Draw Mapping, 算法。

ROS 安装

  1. Github 上搜索 重德智能
  2. 重德智能 上找到 ROS-Academy-for-Beginners(是开源的项目,里有介绍,以及下载 与 安装 教程)

ROS IDE推荐

  1. 软件名称: RoboWare
  2. 软件安装: 见 roboware

ROS 编译工具

  1. ** catkin ** 编译工具 基于CMake 开发的
  2. ** catkin_make ** 初始化 并 建立 工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

编译

cd ~/catkin_ws #回到工作空间
catkin_make
source ~/catkin_ws/devel/setup.bash
#编译完成后要source刷新环境
  1. 执行后会在当前目录下生成 builddevel 两个文件夹

    build 里是CMakecatkin 缓存的中间文件

    build 里是 目标文件,一些生成的 头文件 或者 代码文件,这里不需要管。

    src 就是写代码的 地方 ,不需要去** build & devel** 文件夹

package

  • ROS 软件的基本组织形式
  • catkin 编译的基本单元
  • 一个package可以包含多个可执行文件(节点)

package 包含 CMakeList.txtpackage.xml 这是 最精简结构

CMakeList.txt 规定catkin编译的规则

例如:源文件、依赖项、目标文件

package.xml 定义package的属性

例如: 包名、版本号、作者、依赖等

<?xml version="1.0" encoding="UTF-8"?>
<package><!--根标签-->
<name/><!--包名-->
<version/><!--版本号-->
<description/><!--包描述-->
<maintainer/><!--维护者-->
<license/><!--软件许可-->
<buildtool_depend/><!--编译工具-->
<build_depend/><!--编译时的依赖-->
<run_depend/><!--运行时的依赖-->
</package>

ROS 开发 常用命令

  1. rospack
  • 查找某个pkg的地址

    rospack find package_name
  • 列出本地所有的pkg

    rospack list
  • roscd

    • 跳转到某个pkg路径下

      roscd package_name
  • rosls
    • 列举某个pkg下的文件信息

      rosls package_name
  • rosed
    • 编辑pkg种的文件

      rosed pakage_name file_name
  • catkin_create_pkg
    • 创建一个pkg

      catkin_create_pkg <pkg_name>[deps]
  • rosdep
    • 安装某个pkg所需的依赖

      rosdep install [pkg_name]

ROS lesson 1的更多相关文章

  1. ROS知识(6)----基于Eclipse开发

    可以利用Eclipse集成开发环境进行ROS开发,从而提高研发效率.以色列巴尔伊兰大学的Mr. Roi Yehoshua开设了一门ROS课程,课程2( Lesson 2)讲解了如何利用Eclipse在 ...

  2. Lesson 18 He often does this!

    Text After I had had lunch at a village pub, I looked for my bag. I had left it on a chair beside th ...

  3. 阿里云VPS服务器,ROS内网穿透

    Aliyun Windows Server 2008 R2中建立vpn服务器,ros中使用pptp拨号连接 2.在Aliyun服务器中,修改hosts,将内网分配的ip映射到指定的域名,在Aliyun ...

  4. QT下调试基于ros的catkin项目

    1.首先告诉qt ros的搜索路径,通过修改qt creator 桌面启动程序来实现 sudo    gedit ~/.local/share/applications/DigiaQtOpenSour ...

  5. ROS学习(三)—— ROS文件系统

    一.预备工作 使用ros0tutorials程序包,先下载: sudo apt-get install ros-<distro>-ros-tutorials 其中<distro> ...

  6. ROS学习(二)—— 配置ROS环境

    一.管理环境 p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚 ...

  7. ROS学习(一)—— 环境搭建

    一.配置Ubuntu软件仓库且选择ROS正确版本 二.添加source.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubun ...

  8. [ROS] Studying Guidance

    Reference: https://www.zhihu.com/question/35788789 安装指南:http://wiki.ros.org/indigo/Installation/Ubun ...

  9. ros::spin() 和 ros::spinOnce() 区别及详解

    版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...

随机推荐

  1. 【POJ 1364】 King

    [题目链接] 点击打开链接 [算法] 差分约束系统 [代码] #include <algorithm> #include <bitset> #include <cctyp ...

  2. 21 WPF数据视图

    视图对象 当你绑定集合到ItemsControl,在幕后数据视图被安静地创造.视图位于数据源和绑定控件之间.数据视图是通往数据源的一个窗口.它跟踪当前项目,它支持诸如排序,过滤,和分组特征.这些特征独 ...

  3. springmvc 用fasterxml.jackson返回son数据

    一,引入fasterxm.jackson包 <dependency> <groupId>com.fasterxml.jackson.core</groupId> & ...

  4. centos6之前版本的启动流程

    centos6 之前的系统启动: linux启动流程: 1)加电自检 2)读取MBR,引导加载程序grub,完成grub的三个阶段. 3)加载系统内核kernel,执行系统初始化信息. 4)启动用户空 ...

  5. bzoj 1700: [Usaco2007 Jan]Problem Solving 解题【dp】

    很像贪心的dp啊 这个定金尾款的设定让我想起了lolita和jk制服的尾款地狱-- 设f[i][j]为从j到i的付定金的最早月份然后从f[k][j-1]转移来,两种转移f[i][j]=min(f[i] ...

  6. bzoj 1578: [Usaco2009 Feb]Stock Market 股票市场【背包】

    参考:https://blog.csdn.net/mars_ch/article/details/53011234 我背包真是好不熟练啊-- 第一天买了第三天卖相当于第一天买了第二天卖第二天再买第三天 ...

  7. (前缀和 内存分配)51NOD 1081 子段求和

    给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和.   例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} -1.3 + 7 + 9 ...

  8. 论文翻译-SELF TRAINING AUTONOMOUS DRIVING AGENT

    文献地址 链接:https://pan.baidu.com/s/1gHrpnOf1FXLp9u8OJ2-oCg 提取码:y2w6 作者 Shashank Kotyan, Danilo Vasconce ...

  9. http升级https(转)

    让你的网站免费支持 HTTPS 及 Nginx 平滑升级 为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上 ...

  10. python自动化测试学习笔记-8单元测试unittest模块

    官方参考文档:http://docs.python.org/2.7/library/unittest.html unittest是一个python版本的junit,junit是java中的单元测试框架 ...