ROS官网初级教程学习总结(1-4)
教程网址: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程序包的构成
- 必须包含catkin compliant package.xml文件。这个package.xml文件提供有关程序包的元信息。
- 必须包含一个catkin 版本的CMakeLists.txt文件
- 每个目录下只能有一个程序包
最简单的程序包也许就像这样:
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)相关推荐
- 【GStreamer】官网基本教程学习(basic-tutorial)
目录 下载和编译 basic-tutorial-1.c 直接创建管道播放视频 basic-tutorial-2.c 创建元件-->装入管道-->连接元件 0.gstreamer 函数调用顺 ...
- ROS2官网安装教程补充
ROS2官网安装教程补充 1. 问题 1.1. 源慢 1.2. source 1.3. colcon 2. 解决办法 2.1. 源慢 2.2. source 2.3. colcon 1. 问题 按照 ...
- Node.js 官网入门教程(一) CommonJS 模块规范、Node.js REPL、console、CLI、exports
Node.js 官网入门教程(一) CommonJS 模块规范.Node.js REPL.console.CLI.exports 文章目录 Node.js 官网入门教程(一) CommonJS 模块规 ...
- UE4 蓝图编程官网初级练习目录
官网教程 很坑的是官网的教程是按字典序排的,没有整理新手学习路线的 本章学习内容: UE4 蓝图编程学习之路1----新手入门 蓝图快速入门指南 蓝图总览 UE4 蓝图编程学习之路2----常规脚本编 ...
- React.js 官网入门教程 分离文件 操作无法正常显示HelloWord
对着React官网的教程练习操作,在做到分离文件练习时,按照官网步骤来却怎么也无法正常显示HelloWord. 经测试,html文件中内容改为: <!DOCTYPE html> <h ...
- Node.js 官网入门教程(二) npm(安装、包版本、卸载、npx)、package.json(scripts、devDependencies)package-lock.json(语义版本规则符号
Node.js 官网入门教程(二) npm(包管理.安装.包版本.卸载.npx).package.json(scripts.devDependencies).package-lock.json(语义版 ...
- vnc官网下载,vnc官网下载教程图解
VNC [ Virtual Network Computing ]是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的.VNC是在基于UNIX和Linux操作系统的免费的开放源 ...
- java htmlunit教程_htmlunit官网简易教程(翻译)
1 环境搭建: 1)下载 从链接:http://sourceforge.net/projects/htmlunit/files/htmlunit/ 下载最新的bin文件 2)关于bin文件 里面主要包 ...
- Kubernetes四探(官网Tutorials的学习)
2022年10月2日: 国庆是充电的好机会.继续学习官网的Tutorials. 先推荐一个学习kubernetes 的好去处. https://labs.play-with-k8s.com 就是有点慢 ...
最新文章
- php设置at定时,laravel定时任务
- idea maven中的profiles是干什么的
- Linux中的用户和组
- everytime you feel nervous
- 套接字错误处理函数的封装思想及函数实现
- linux基础系统命令大全
- 和upm_官方辟谣!UPM减免15%学费是假的?
- Windows Server 2003 R2与SP2 的区别
- SpringBoot-Mail 发邮件(单发、群发、加附件、HTML格式)
- 模版 ----- 实数二分
- 当芯片教父遇上伊隆马斯克:自动驾驶路在何方
- with 语句的妙用
- LSB最低有效位算法实现
- [PHP] - visitFile()遍历指定文件夹
- opencl编程简单的入门知识
- DEMATEL算法程序
- 关于坑爹的QQ互联成为开发者的坑
- 企业微信有网页版登录吗?
- html5广告的版式设计,永不过时!5种网页版式设计分享
- 技术苍穹与平台沃土:华为构筑产业数字化的太极之道
热门文章
- Database System Concepts(Fourth Edition)
- 关于vertical-align:middle的理解
- gitlab合并错代码还原命令
- Windows 无法验证此设备所需的驱动程序的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。 (代码 52)
- 什么,你还在一条一条的insert?
- 群晖挂pt 路由器虚拟服务器设置,设置远程唤醒NAS要几步?用群晖路由只要4步!...
- Union can only be performed on tables with the compatible column types
- linux cmos摄像头,Linux摄像头驱动4——CMOS摄像头
- QQ空间过滤器,千军万马(97779)网盘资源下载地址提取器,Discuz 论坛隐藏内容自动回复 成功上架到 chrome 商店...
- 美国食品药品监督管理局将部署人工智能来协助食品监管