教程网址:http://wiki.ros.org/cn/ROS/Tutorials。
本博客为1-4小节。

安装并配置ROS环境

安装ROS

安装时记得换个好点的软件源,要不然会因为网络连接问题一直失败。

管理环境

export | grep ROS 主要是查看环境变量是否设置。

ROSLISP_PACKAGE_DIRECTORIES=”” //这个是关于lisp语言的
ROS_DISTRO=”kinetic”
ROS_ETC_DIR=”/opt/ros/kinetic/etc/ros” //一些配置文件
ROS_MASTER_URI=”http://localhost:11311” //master地址,远程连接时有用
ROS_PACKAGE_PATH=”/opt/ros/kinetic/share” //ROS包的环境变量
ROS_ROOT=”/opt/ros/kinetic/share/ros” //ROS core包的位置

创建ROS工作空间

创建一个新的catkin工作空间后,source一下新生成的setup.*sh文件(source devel/setup.bash), 在当前shell下执行echo $ROS_PACKAGE_PATH会看到ROS_PACKAGE_PATH环境变量已包含你新建的工作空间程序包目录。

ROS文件系统介绍

安装程序包

直接使用apt-get安装,如安装ros-tutorials:
$ sudo apt-get install ros-<distro>-ros-tutorials

快速了解文件系统概念

Packages: 软件包,ROS应用程序代码的组织单元,每个软件包都可以包含程序库、可执行文件、脚本或者其它手动创建的东西。
Manifest (package.xml,软件包的根目录下): 清单,是对于’软件包’相关信息的描述,用于定义软件包相关元信息之间的依赖关系,这些信息包括版本、维护者和许可协议等。

文件系统工具

程序代码是分布在众多ROS软件包当中,当使用命令行工具(比如ls和cd)来浏览时会非常繁琐,因此ROS提供了专门的命令工具来简化这些操作。

rospack

# rospack find [包名称]:返回软件包的路径信息。

roscd

直接切换(cd)工作目录到某个软件包或者软件包集当中。
# roscd [本地包名称[/子目录]]

roscd log

切换到ROS保存日记文件的目录下。

rosls

rosls [本地包名称[/子目录]]:直接按软件包的名称而不是绝对路径执行ls命令。

Tab 自动补全输入

创建ROS程序包

catkin程序包的构成

  1. 必须包含catkin compliant package.xml文件。这个package.xml文件提供有关程序包的元信息。
  2. 必须包含一个catkin 版本的CMakeLists.txt文件
  3. 每个目录下只能有一个程序包
    最简单的程序包也许就像这样:
my_package/CMakeLists.txtpackage.xml

catkin工作空间

一个简单的工作空间也许看起来像这样:

workspace_folder/        -- WORKSPACEsrc/                   -- SOURCE SPACECMakeLists.txt       -- 'Toplevel' CMake file, provided by catkinpackage_1/CMakeLists.txt     -- CMakeLists.txt file for package_1package.xml        -- Package manifest for package_1...package_n/CMakeLists.txt     -- CMakeLists.txt file for package_npackage.xml        -- Package manifest for package_n

创建一个catkin程序包

# catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

程序包依赖关系

一级依赖

$ rospack depends1 <package_name>

间接依赖

$ rospack depends <package_name>

自定义程序包

自定义 package.xml

描述标签

<description>

维护者标签

<maintainer

许可标签

<license>

依赖项标签

<build_depend>
<buildtool_depend>
<run_depend>
<test_depend>

自定义 CMakeLists.txt

编译ROS程序包

使用 catkin_make

catkin_make 是一个命令行工具,你可以认为catkin_make是在CMake标准工作流程中依次调用了cmake 和 make。
$ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
catkin_make会编译src文件夹下的所有catkin工程。

开始编译你的程序包

执行完catkin_make 后,使用ls查看:

build  //cmake 和 make是在这里被调用来配置并编译你的程序包。
devel  //在你安装程序包之前存放可执行文件和库文件的地方
src

ROS官网初级教程学习总结(1-4)相关推荐

  1. 【GStreamer】官网基本教程学习(basic-tutorial)

    目录 下载和编译 basic-tutorial-1.c 直接创建管道播放视频 basic-tutorial-2.c 创建元件-->装入管道-->连接元件 0.gstreamer 函数调用顺 ...

  2. ROS2官网安装教程补充

    ROS2官网安装教程补充 1. 问题 1.1. 源慢 1.2. source 1.3. colcon 2. 解决办法 2.1. 源慢 2.2. source 2.3. colcon 1. 问题 按照 ...

  3. Node.js 官网入门教程(一) CommonJS 模块规范、Node.js REPL、console、CLI、exports

    Node.js 官网入门教程(一) CommonJS 模块规范.Node.js REPL.console.CLI.exports 文章目录 Node.js 官网入门教程(一) CommonJS 模块规 ...

  4. UE4 蓝图编程官网初级练习目录

    官网教程 很坑的是官网的教程是按字典序排的,没有整理新手学习路线的 本章学习内容: UE4 蓝图编程学习之路1----新手入门 蓝图快速入门指南 蓝图总览 UE4 蓝图编程学习之路2----常规脚本编 ...

  5. React.js 官网入门教程 分离文件 操作无法正常显示HelloWord

    对着React官网的教程练习操作,在做到分离文件练习时,按照官网步骤来却怎么也无法正常显示HelloWord. 经测试,html文件中内容改为: <!DOCTYPE html> <h ...

  6. Node.js 官网入门教程(二) npm(安装、包版本、卸载、npx)、package.json(scripts、devDependencies)package-lock.json(语义版本规则符号

    Node.js 官网入门教程(二) npm(包管理.安装.包版本.卸载.npx).package.json(scripts.devDependencies).package-lock.json(语义版 ...

  7. vnc官网下载,vnc官网下载教程图解

    VNC [ Virtual Network Computing ]是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的.VNC是在基于UNIX和Linux操作系统的免费的开放源 ...

  8. java htmlunit教程_htmlunit官网简易教程(翻译)

    1 环境搭建: 1)下载 从链接:http://sourceforge.net/projects/htmlunit/files/htmlunit/ 下载最新的bin文件 2)关于bin文件 里面主要包 ...

  9. Kubernetes四探(官网Tutorials的学习)

    2022年10月2日: 国庆是充电的好机会.继续学习官网的Tutorials. 先推荐一个学习kubernetes 的好去处. https://labs.play-with-k8s.com 就是有点慢 ...

最新文章

  1. php设置at定时,laravel定时任务
  2. idea maven中的profiles是干什么的
  3. Linux中的用户和组
  4. everytime you feel nervous
  5. 套接字错误处理函数的封装思想及函数实现
  6. linux基础系统命令大全
  7. 和upm_官方辟谣!UPM减免15%学费是假的?
  8. Windows Server 2003 R2与SP2 的区别
  9. SpringBoot-Mail 发邮件(单发、群发、加附件、HTML格式)
  10. 模版 ----- 实数二分
  11. 当芯片教父遇上伊隆马斯克:自动驾驶路在何方
  12. with 语句的妙用
  13. LSB最低有效位算法实现
  14. [PHP] - visitFile()遍历指定文件夹
  15. opencl编程简单的入门知识
  16. DEMATEL算法程序
  17. 关于坑爹的QQ互联成为开发者的坑
  18. 企业微信有网页版登录吗?
  19. html5广告的版式设计,永不过时!5种网页版式设计分享
  20. 技术苍穹与平台沃土:华为构筑产业数字化的太极之道

热门文章

  1. Database System Concepts(Fourth Edition)
  2. 关于vertical-align:middle的理解
  3. gitlab合并错代码还原命令
  4. Windows 无法验证此设备所需的驱动程序的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。 (代码 52)
  5. 什么,你还在一条一条的insert?
  6. 群晖挂pt 路由器虚拟服务器设置,设置远程唤醒NAS要几步?用群晖路由只要4步!...
  7. Union can only be performed on tables with the compatible column types
  8. linux cmos摄像头,Linux摄像头驱动4——CMOS摄像头
  9. QQ空间过滤器,千军万马(97779)网盘资源下载地址提取器,Discuz 论坛隐藏内容自动回复 成功上架到 chrome 商店...
  10. 美国食品药品监督管理局将部署人工智能来协助食品监管