ROS学习笔记(一)搭建工作空间

任务

安装完成ROS后,用两天左右时间将ROS的wiki官网的例程基本过了一遍。对大体的框架,如Topic、Service有了直观的了解,但具体的应用还是需要自主练习,下面把练习过程记录的笔记按步骤整理分享。虽然官网上的教程已经足够详细,但一些命令对于初接触命令行比较陌生,依葫芦画瓢时没有时间细究,如今逐渐理解便在此详解。

搭建工作空间

确认环境变量

命令行输入

printenv | grep ROS

命令含义:printenv 是bash命令——打印环境变量,而grep正则表达式语句,此命令即为,筛选出所有包括ROS字符的变量。
查询了bash的维基百科后我才了解,这也是一门编程语言,我后期在B站中学习了一些视频资源(正点原子),实践写了一个自动登录的脚本,代码和文章见网盘资源:

链接:https://pan.baidu.com/s/1PyKnaKeSl_dPtcQgKBJH-Q
提取码:7yog

主要检查ROS_ROOT 和 ROS_PACKAGE_PATH是否定义如下:
路径

创建工作空间

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make

分别输入这几行命令,就完成了一个基本空间的配置

  1. 再解读一下,mkdir同样是bash命令,意为创建目录(make directory),而指令-p 能够一次创建多级目录,具体表现为:如果本行命令不加该指令,且~/catkin_ws/目录不存在,则命令无法执行。

知识点: Ubuntu(Linux)文件系统简述

根目录/,包含所有文件
home目录~/,每次打开新的命令窗口默认处在位置,也即$前面提示的地址,如图所示
(这个命令就是在home目录中创建工作空间catkin_ws了)
此外 ./表示当前目录,../表示上一级目录,且可以叠加使用,例:../../表示上两级目录
基本的命令: ls列出当前目录下文件,cd [目录名称]进入某目录 home地址

  1. 第二行便是进入我们创建的工作空间catkin_ws
  2. 最后一行便是ROS中的命令,上面两个命令都是Linux系统的基础操作,而这一命令使得这个工作空间有了ROS的血液!必不可少.这行的含义即是让工作空间使用catkin体系,将ROS开发的程序编译等更加方便.

添加环境变量

刚才那一步只是使得catkin_ws具有了ROS的特性,但ROS系统安装在我们的Ubuntu系统之中,所以我们还需要将空间和我们的Ubuntu系统联系起来,仍然在上一步处于工作空间catkin_ws 中输入命令:

source devel/setup.bash

解释:source同样是bash命令,这行的含义也正是执行devel/setup.bash这个包含bash语句的脚本
那到底发生了什么呢?
教程中可以通过命令行语句

echo $ROS_PACKAGE_PATH

观察输出结果是否变为如下

/home/youruser/catkin_ws/src:/opt/ros/kinetic/share

于我,验证了所有的ROS变量改变如下:

lazy@lazy-Surface-Laptop-2:~/catkin_ws$ printenv | grep ROS
ROS_ETC_DIR=/opt/ros/melodic/etc/ros
ROS_ROOT=/opt/ros/melodic/share/ros
ROS_MASTER_URI=http://localhost:11311
ROS_VERSION=1
ROS_PYTHON_VERSION=2
ROS_PACKAGE_PATH=/opt/ros/melodic/share
ROSLISP_PACKAGE_DIRECTORIES=
ROS_DISTRO=melodic
lazy@lazy-Surface-Laptop-2:~/catkin_ws$ source devel/setup.bash
lazy@lazy-Surface-Laptop-2:~/catkin_ws$ printenv | grep ROS
ROS_ETC_DIR=/opt/ros/melodic/etc/ros
ROS_ROOT=/opt/ros/melodic/share/ros
ROS_MASTER_URI=http://localhost:11311
ROS_VERSION=1
ROS_PYTHON_VERSION=2
ROS_PACKAGE_PATH=/home/lazy/catkin_ws/src:/opt/ros/melodic/share
ROSLISP_PACKAGE_DIRECTORIES=/home/lazy/catkin_ws/devel/share/common-lisp
ROS_DISTRO=melodic

bashROS_PACKAGE_PATHROSLISP_PACKAGE_DIRECTORIES都发生了变化.

总结

这一步完成了工作空间的搭建,可以放心告一段落.总体而言,每个语句都不用过于小心翼翼,它们并没有伤害整个系统的可能,如果遇到问题可以放心直接删除工作空间文件catkin_ws 命令:

sudo rm -r ~/catkin_ws/

解释: sudo升级为Ubuntu系统的高级权限(肆意妄为), rm移除(remove)文件,指令-r 允许递归删除该文件夹(~/catkin_ws/)下所有文件.

重新来过.
此外,工作空间的名称也可按需取名,不过初学者为方便与教程保持一致,默认使用这个最好不过了.

资源推荐:

b站视频:
正点原子【第一期】手把手教你学Linux之Ubuntu入门篇
可以有选择看几个感兴趣的,不过里面的确有很多新知识,对系统的了解加深了不少.
【古月居】古月 · ROS入门21讲
由于学校组织有直播课,并没有看这里的视频,但可以找一下课程相关的资源,之后我的学习也主要按照课件中布置的任务展开.
YouTube视频:ROS kinetic tutorials讲解的比较直观,可以把topic和service了解.

预告

对小海龟仿真(turtlesim)的一些探索.

  • topic
  • service
  • rqt-plot
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章