< >
Home » ROS1/2命令管理器 » ROS命令管理器-RCM介绍

ROS命令管理器-RCM介绍

RCM 解决了什么问题? RCM初始设计用于管理ROS1/ROS2各类源码的安装脚本和通过界面方式启动脚本,经过不断扩展完善,目前已经成为Ubuntu/Linux下基于bash的shell脚本管理工具。

RCM是一款基于bash的智能化shell脚本管理和源码部署工具,可以管理,创建,修改脚本,利用公有脚本和私有脚本,安装和部署项目代码。安装后,可以将符合定义的shell脚本转换为以RCM为命令,脚本路径,脚本名称为子命令的系统命令。同时提供强大的Tab自动补全功能,实现脚本的快速查找。

提供三种模式运行脚本:

  • 自动补全模式: rcm <tab><tab> <tab><tab> <tab><tab> (2.x系列以上支持)
  • 搜索模式: rcm -s <脚本名> (1.x以上支持)
  • 界面模式: rcm-gui点击RCM(commands)图标(1.x系列以上支持)

目录:

  • RCM是什么?
  • 为什么使用RCM?
  • 特色
  • 安装
  • 卸载
  • 系统和依赖
  • 目录结构
  • 相关参考

RCM是什么

RCM是一款基于bash的智能化shell脚本管理和源码部署工具,可以管理,创建,修改脚本,利用公有脚本和私有脚本,安装和部署项目代码。安装后,可以将符合定义的shell脚本转换为以RCM为命令,脚本路径,脚本名称为子命令的系统命令。同时提供强大的Tab自动补全功能,实现脚本的快速查找。

提供三种模式运行脚本:

  • 自动补全模式: rcm <tab><tab> <tab><tab> <tab><tab> (2.x系列以上支持)
  • 搜索模式: rcm -s <脚本名> (1.x以上支持)
  • 界面模式: rcm-gui点击RCM(commands)图标(1.x系列以上支持)

为什么使用RCM

从15年开始接触到ros开始,就一直采用shell脚本的方式搭建ros环境,遇到无数的坑
相信你如果一直都使用ros,难免跟我一样会遇到如下问题:

  • rosdep update 因为网站连接问题,经常不好用
  • ros1/ros2的国外源经常出错或导致安装缓慢
  • ubuntu系统国外源也经常出错或导致安装缓慢
  • python的国外源也经常出错或导致安装缓慢
  • 各种包的版本问题,各种安装异常
  • ros1/ros2包源码安装,经常不成功
  • 不同架构下的,安装方法也不一样

所以需要保证每次安装的统一: 统一的环境,统一配置,统一的安装方式 尽可能减少出现问题的概率。

单个版本解决方法,就是每次安装好,赶紧备份一个版本,出问题就恢复一下,继续干活,但是,每当一个新的ros版本出来,难免就要升级,上面的问题不可避免的又出来了。

我就想,如果开发一个工具,写好安装脚本,大家可以共享,很多问题,就可以避免,毕竟这个脚本是大家经过测试的。

每个人可以自己根据安装的流程,生成一个执行脚本,通过这个脚本来完成相应的工作,就可以达到统一化
如果每个人可以把自己的脚本共享出来,这个脚本就可以实现了复用,大家就可以节省很多时间。

因为维护统一脚本,出现问题,更容易解决。根据不同的需求,也可以建立不同的脚本来解决。
基于上面的需求开发了这个工具。比如我想安装ros1, 找到这个脚本,点击一键安装即可,多简单。

上述问题,适合所有采用shell脚本进行安装和维护的情况。

特色

  • 系统调用:以 rcm 为主命令,脚本存储路径、脚本名称作为子命令,进行全局调用。
  • 自动补全:支持 Tab 自动补全,加快命令的索引和调用,如:rcm system check_ace方式运行。
  • 搜索模式:支持采用-s参数搜索运行,如:rcm -s <脚本名> 方式运行。
  • 直达模式:支持采用-si参数搜索运行,如:rcm -si <脚本名> 方式运行。
  • 桌面模式:支持桌面运行,如:rcm-gui 方式启动界面。
  • 帮助选项:每个命令默认支持帮助提示,通过附加 --help-h 选项,即可查看命令的功能描述。
  • debug mode:每个命令默认支持debug mode,通过附加 --debug-x 选项,即可进入命令的debug mode。
  • 私有命令:支持私有命令,相关脚本文件不会加入 git 管理。
  • ROS1/ROS2:支持众多ROS1和ROS2相关包安装脚本。

自动补全模式:

请输入图片描述

搜索模式:

请输入图片描述

界面模式:

请输入图片描述

安装

桌面版/完整版: 界面需要ubuntu桌面下运行,shell在终端下运行。需要进行python代码的编译

  • 一键安装桌面版
  • 方法一:
curl -k https://www.ncnynl.com/rcm.sh | bash -
  • 方法二:
curl -k https://gitee.com/ncnynl/commands/raw/master/online.sh | bash -
  • 新开终端,输入:
commands

命令行版: shell在终端下运行, 不需要进行python代码编译

  • 一键安装命令行版
  • 方法一:
curl -k https://www.ncnynl.com/rcms.sh | bash -
  • 方法二:
curl -k https://gitee.com/ncnynl/commands/raw/master/online_shell.sh | bash -
  • 新开终端,输入:
rcm <tab><tab>

rcm-install.gif

升级

更新 RCM,体验最新功能,命令如下:

rcm -u  或 rcm system update 

卸载

卸载 RCM,命令如下:

./tools/commands/uninstall.sh

系统和依赖

  • 系统和依赖包
#系统版本,ubuntu20.04 以上版本
ubuntu 20.04 +

#针对shell版本
bash

#针对桌面版
python3.8 
pyqt5
  • 适合ROS版本
ros2 galactic +
ros1 noetic

目录结构

  • 目录树
├── CHANGELOG.rst        #日志
├── commands_completion  #自动补全相关目录
├── commands.desktop     #桌面
├── commands_docker      #docker相关目录(待完善)
├── commands_extra       #所有命令相关目录
├── commands_i18n        #多语言相关目录
├── commands.png         #LOGO
├── commands_src         #桌面版源码相关目录
├── config_git.sh        #git配置
├── desktop.sh           #桌面调用脚本
├── images               #图片相关目录
├── install_completion.sh#自动补全安装脚本
├── install_desktop.sh   #桌面安装脚本
├── install_docker.sh    #docker安装脚本(待完善)
├── install_extra.sh     #shell脚本安装脚本
├── install_i18n.sh      #多语言安装脚本
├── install.sh           #桌面版安装脚本
├── install_shell.sh     #命令行版安装脚本
├── install_simple.sh    #简化版使用脚本
├── install_src.sh       #桌面版编译脚本
├── LICENSE              #开源协议
├── logo.png             #logo
├── online_docker.sh     #docker版在线安装脚本
├── online.sh            #桌面版在线安装脚本
├── online_shell.sh      #命令行版在线安装脚本
├── README.md            #本文件
├── shell.sh             #更新所有脚本
├── sync_extra.sh        #同步应用目录的脚本到开发目录下
├── sync_gitee.sh        #不升级更新代码
├── test                 #测试相关目录
├── uninstall.sh         #卸载
└── version.txt          #版本
  • 本程序的所有源码都安装在用户根目录~/tools/commands
  • 本程序的脚本分成两个目录,应用目录和开发目录,两者相互独立不影响使用和开发。
  • 应用目录: 在用户根目录下的~/commands目录下
  • 开发目录:在用户根目下的~/tools/commands/commands_extra目录下
  • 开发好的脚本,通过运行./install_extra.sh同步到应用目录即可使用

相关参考

开发灵感:

  • https://www.ncnynl.com/archives/202206/5316.html

安装说明:

  • https://www.ncnynl.com/archives/202206/5317.html

使用说明:

  • https://www.ncnynl.com/archives/202206/5320.html

命令集目录说明:

  • https://www.ncnynl.com/archives/202206/5321.html
  • https://www.ncnynl.com/archives/202206/5323.html
  • https://www.ncnynl.com/archives/202206/5324.html

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros命令管理器