1、ROS概述
ROS全称Robot Operating System(机器人操作系统);
“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体。
2、ROS安装
2.1 安装配置虚拟机软件
VMware或virtualbox
源文件:VMware16.0安装教程
2.2 安装ubuntu
源文件:ubuntu-releases-20.04安装包下载_开源镜像站-阿里云
安装教程:Vm虚拟机安装Linux系统教程
2.3 安装 ROS
Ubuntu install of ROS Noetic:noetic/Installation/Ubuntu - ROS Wiki
Ubuntu install of ROS Melodic:melodic/Installation/Ubuntu - ROS Wiki
2.4 卸载ROS
sudo apt remove ros-noetic-*
sudo apt remove ros-melodic-*
2.5 测试ROS
ROS 内置了一些小程序,可以通过运行这些小程序以检测 ROS 环境是否可以正常运行:
①首先启动三个命令行(ctrl + alt + T)
②命令行1键入:roscore
③命令行2键入:rosrun turtlesim turtlesim_node(此时会弹出图形化界面)
④命令行3键入:rosrun turtlesim turtle_teleop_key(可以通过上下左右控制图中乌龟的运动)
3、ROS中的程序操作的基本流程:
3.1 创建工作空间并初始化
mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make
3.2 创建一个功能包
(进入 src 创建 ros 包并添加依赖)
cd src
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
3.3 编辑源文件
// C++版本:进入ros包的src目录——自定义的包cd src——新建c++文件:(文件名自定义)C++源码实现(文件名自定义)add_executable(步骤3的源文件名src/步骤3的源文件名.cpp)target_link_libraries(步骤3的源文件名${catkin_LIBRARIES})
# Python版本:进入ros包添加scripts文件夹——新建python文件cd scripts下的*.py权限:chmod +x *.py编辑ros包下的CamkeList.txt文件catkin_install_python(PROGRAMS scripts/自定义文件名.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
3.4 编辑配置文件
// C++版本:cd 自定义空间名称catkin_make
# Python版本: 进入工作空间目录并编译cd 自定义空间名称: catkin_make
3.5 编译并执行
// C++版本:进入工作空间目录并执行roscore(主目录下面操作)cd 工作空间source ./devel/setup.bashrosrun 包名 c++文件名(没有.cpp)
# Python版本: 进入工作空间目录并执行roscore(主目录下面操作)cd 工作空间source ./devel/setup.bashrosrun 包名 自定义文件名.py
4、ROS集成开发环境搭建
4.1 安装终端
sudo apt install terminator
4.1.1 关于在同一个标签内的操作
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 移动到之前的一个终端
4.1.2 关于各个标签之间的操作
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 //打开一个新窗口,新窗口与原来的窗口使用不同的进程
4.2 安装VScode
源文件:https://code.visualstudio.com/updates/v1_85
安装:sudo dpkg -i xxxx.deb
卸载:sudo dpkg --purge code
vscode 集成 ROS 插件
vscode 使用基本配置:
①创建 ROS 工作空间
mkdir -p xxx_ws/src(必须得有 src)
cd xxx_ws
catkin_make
②启动 vscode
cd xxx_ws
code .
③vscode 中编译 ros
快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build
可以点击配置设置为默认,修改.vscode/tasks.json 文件
{
// 有关 tasks.json 格式的文档,请参见// https://go.microsoft.com/fwlink/?LinkId=733558"version": "2.0.0","tasks": [{"label": "catkin_make:debug", //代表提示的描述性信息"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行"command": "catkin_make",//这个是我们需要运行的命令"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”**"group": {"kind":"build","isDefault":true},**"presentation": {"reveal": "always"//可选always或者silence,代表是否输出信息},"problemMatcher": "$msCompile"}]
}
④创建 ROS 功能包
选定 src 右击 ---> create catkin package
其他 IDE:IDEs - ROS Wiki
5、ROS架构
5.1 ROS文件系统
WorkSpace --- 自定义的工作空间build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。src: 源码package:功能包(ROS基本单元)包含多个节点、库与配置文件,包名所有字母小写,只能由字母、数字与下划线组成CMakeLists.txt 配置编译规则,比如源文件、依赖项、目标文件package.xml 包信息,比如:包名、版本、作者、依赖项...(以前版本是 manifest.xml)scripts 存储python文件src 存储C++源文件include 头文件msg 消息通信格式文件srv 服务通信格式文件launch 可一次性运行多个节点 config 配置信息CMakeLists.txt: 编译的基本配置
5.2 ROS文件系统相关命令
5.2.1 增
创建新的ROS功能包:catkin_create_pkg 自定义包名 依赖包
安装 ROS功能包:sudo apt install xxx
5.2.2 删
删除某个功能包:sudo apt purge xxx
5.2.3 查
列出所有功能包:rospack list
查找某个功能包是否存在,如果存在返回安装路径:rospack find 包名
进入某个功能包:roscd 包名
列出某个包下的文件:rosls 包名
搜索某个功能包:apt search xxx
5.2.4 改
修改功能包文件(需要安装 vim):rosed 包名 文件名
5.2.5 执行
roscore:ROS 的系统先决条件节点和程序的集合, 必须运行roscore才能使ROS节点进行通信
rosrun 包名 可执行文件名:运行指定的ROS节点
roslaunch 包名 launch文件名.launch:执行某个包下的 launch 文件
5.2.6 ROS计算图
rqt_graph能够创建一个显示当前系统运行情况的动态图形。ROS 分布式系统中不同进程需要进行数据交互,计算图可以以点对点的网络形式表现数据交互过程。
安装:sudo apt install ros-<distro>-rqtsudo apt install ros-<distro>-rqt-common-plugins
使用:rosrun rqt_graph rqt_graph 等价于 rqt_graph