ROS开发(ubuntu)笔记·1

 学习网址:Introduction · GitBook (autolabor.com.cn)

b站:【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程_哔哩哔哩_bilibili

  1. 创建一个ROS Workspace
  2. 小笔记(Terminator)
  3. Launch 文件
  4. ROS文件系统相关命令
  5. ROS计算图

创建一个ROS Workspace 的简单方法:

mkdir -p ~/catkin_ws/src(在/home/自己的用户名目录/下创建一个catkin_ws工作空间/创建文件夹src)

cd ~/catkin_ws/src(进入工作空间catkin_ws中的文件夹src)

catkin_init_workspace(对工作空间进行初始化,会在src留下一个CMakeLists.txt文件)

cd ~/catkin_ws/ (返回到catkin_ws中)

catkin_make (执行完该命令后,发现工作空间catkin_ws中有三个目录: build devel src                src是在第一条命令创建工作空间时就创建了,另外两个是这时创建的)     

source devel/setup.bash

对于 source ./devel/setup.bash 的解释(使用source构建环境变量)

将对应的工作空间的路径加入环境变量ROS_PACKAGE_PATH中。

如果新开了一个终端命令行,在使用该工作空间前,必须先将该工作空间的路径加入环境变量ROS_PACKAGE_PATH中

这句话的目的就是在开新的terminal的时候,运行这个setup.bash,而这个setup.bash的作用是让一些ROS* 开头的命令可以使用。

在工作空间的devel文件夹中存在几个setup.*sh形式的环境变量设置脚本。使用source命令运行这些脚本文件,则工作空间的环境变量设置可以生效(如可以找到该工作空间内的项目)

echo $ROS_PACKAGE_PATH (查看当前环境变量)

小笔记:

  1. 在ubuntu中,要在当前文件夹中创建一个新文件,可以打开当前路径的终端,输入 touch 文件名
  2. 在主目录中摁Ctrl+H可找到 . 开头的文件(隐藏文件)
  3. 在ROS中,需要频繁的使用到终端,且可能需要同时开启多个窗口,推荐一款较为好用的终端:Terminator                                                                                                                            安装:
    sudo apt install terminator

 Terminator的 快捷操作:

第一部分:关于在同一个标签页内操作

Alt+Up                          //移动到上面的终端
Alt+Down                        //移动到下面的终端
Alt+Left                        //移动到左边的终端
Alt+Right                       //移动到右边的终端
Ctrl+Shift+O                    //水平分割终端
Ctrl+Shift+E                    //垂直分割终端
Ctrl+Shift+Right                //在垂直分割的终端中将分割条向右移动
Ctrl+Shift+Left                 //在垂直分割的终端中将分割条向左移动
Ctrl+Shift+Up                   //在水平分割的终端中将分割条向上移动
Ctrl+Shift+Down                 //在水平分割的终端中将分割条向下移动
Ctrl+Shift+S                    //隐藏/显示滚动条
Ctrl+Shift+F                    //搜索
Ctrl+Shift+C                    //复制选中的内容到剪贴板
Ctrl+Shift+V                    //粘贴剪贴板的内容到此处
Ctrl+Shift+W                    //关闭当前终端
Ctrl+Shift+Q                    //退出当前窗口,当前窗口的所有终端都将被关闭
Ctrl+Shift+X                    //最大化显示当前终端(再一次操作就是撤销)
Ctrl+Shift+Z                    //最大化显示当前终端并使字体放大
Ctrl+Shift+N or Ctrl+Tab        //移动到下一个终端
Ctrl+Shift+P or Ctrl+Shift+Tab  //Crtl+Shift+Tab 移动到之前的一个终端

第二部分:有关各个标签之间的操作

F11                             //全屏开关
Ctrl+Shift+T                    //打开一个新的标签
Ctrl+PageDown                   //移动到下一个标签
Ctrl+PageUp                     //移动到上一个标签
Ctrl+Shift+PageDown             //将当前标签与其后一个标签交换位置
Ctrl+Shift+PageUp               //将当前标签与其前一个标签交换位置
Ctrl+Plus (+)                   //增大字体
Ctrl+Minus (-)                  //减小字体
Ctrl+Zero (0)                   //恢复字体到原始大小
Ctrl+Shift+R                    //重置终端状态
Ctrl+Shift+G                    //重置终端状态并clear屏幕
Super+g                         //绑定所有的终端,以便向一个输入能够输入到所有的终端
Super+Shift+G                   //解除绑定
Super+t                         //绑定当前标签的所有终端,向一个终端输入的内容会自动输入到其他终端
Super+Shift+T                   //解除绑定
Ctrl+Shift+I                    //打开一个窗口,新窗口与原来的窗口使用同一个进程
Super+i                         //打开一个新窗口,新窗口与原来的窗口使用不同的进程

Launch文件 

目的:在一个程序中可能需要启动多个节点(需要启动多个窗口),如果每次都调用rosrun逐一启动,会造成效率低下,而通过使用launch文件,可以一次性启动多个ROS节点

2.实现

  1. 选定功能包右击 ---> 添加 launch 文件夹

  2. 选定 launch 文件夹右击 ---> 添加 launch 文件

  3. 编辑 launch 文件内容

    <launch>
        <node pkg="helloworld" type="demo_hello" name="hello" output="screen" />
        <node pkg="turtlesim" type="turtlesim_node" name="t1"/>
        <node pkg="turtlesim" type="turtle_teleop_key" name="key1" />
    </launch>
    
    • node ---> 包含的某个节点

    • pkg -----> 功能包

    • type ----> 被运行的节点文件(与cmakelist里面节点的名字)

    • name --> 为节点命名(可任意取)

    • output-> 设置日志的输出目标

  4. 运行 launch 文件(在此之前先输入 source ./devel/setup.bash)

    roslaunch 包名 launch文件名

  5. 运行结果: 一次性启动了多个节点

ROS文件系统相关命令

1.增

catkin_create_pkg 自定义包名 依赖包 === 创建新的ROS功能包

sudo apt install xxx === 安装 ROS功能包

2.删

sudo apt purge xxx ==== 删除某个功能包

3.查(就是在普通的linux命令前加上ros)

rospack list === 列出所有功能包

rospack find 包名 === 查找某个功能包是否存在,如果存在返回安装路径

roscd 包名 === 进入某个功能包(输入 cd - 就可以退出当前功能包)

rosls 包名 === 列出某个包下的文件

apt search xxx === 搜索某个功能包

4.改

rosed 包名 文件名 === 修改功能包文件

需要安装 vim

比如:

输入rosed turtlesim Color.msg                                                                                                        输入完之后会出现:

这时只需把红色圈里面的 sudo apt install vim 复制粘贴到下面的命令行中然后回车,再安装vim 

5.1  roscore    是 ROS 的系统先决条件节点和程序的集合, 必须运行 roscore 才能使 ROS 节点进行通信。

运行roscore 将启动:

  • ros master

  • ros 参数服务器

  • rosout 日志节点

5.2  rosrun

rosrun  包名  可执行文件名 === 运行指定的ROS节点

5.3  roslaunch

roslaunch  包名  launch文件名 === 执行某个包下的 launch 文件

忘记时就看这儿:什么是SDK:什么是SDK - 简书 (jianshu.com)

ROS计算图

ROS文件结构,是磁盘上 ROS 程序的存储结构,是静态的,而 ros 程序运行之后,不同的节点之间是错综复杂的,ROS 中提供了一个实用的工具:rqt_graph

rqt_graph能够创建一个显示当前系统运行情况的动态图形。ROS 分布式系统中不同进程需要进行数据交互,计算图可以以点对点的网络形式表现数据交互过程。rqt_graph是rqt程序包中的一部分。

 跳过安装,直接演示:(以ROS内置小乌龟案例来演示计算图)

1.直接在vscode中运行 打开 小乌龟

 2.打开后,新开一个终端输入rqt_graph 或 rosrun rqt_graph rqt_graph 

3.接下来就会出现: 

上图中,左侧是键盘控制,右侧是乌龟运动,中间是两者间的数据交互(载体是/turtle1/cmd_vel)      具体实现:当我们按键盘时,会将信息封装进/turtle1/cmd_vel这种类型的数据中,再传进/turtle_GUI,再对数据进行解析,然后转化成窗口中乌龟的运动。

  • 12
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值