RMVL  2.5.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
RDT CLI 工具

RDT 命令行工具的使用教程

作者
赵曦
日期
2026/06/06
版本
1.0

下一篇教程:LPSS CLI 工具


前言

RMVL Dev Tools(简称 rdt)提供了 RMVL 安装、更新、开发、提交与移除等常用工作流的命令行入口,能够减少手动输入重复命令的成本。本工具的主入口为 rdt,可通过输入

rdt help

来查看具体帮助。

用法

rdt <command> [args...]
命令
help显示详细帮助信息
create创建一个新的 RMVL 模块
update更新 RMVL 或 rdt 工具
dev开始开发 RMVL
git执行常用 Git 工作流
remove移除 RMVL 组件
version显示 rdt 工具版本

此工具支持的根命令有 rdtlpsslviz,更多信息请参考官方手册:

create 命令

创建一个新的 RMVL 模块。该命令会在当前目录下生成主模块的基本目录结构和必要文件,也可以同时创建若干依赖主模块的子模块。

用法

rdt create <module_name> [sub_module_1 [sub_module_2] ...]
参数
module_name要创建的主模块名称
sub_module_<n>可选的子模块名称,可输入多个

主模块会作为 RMVL 中的独立模块,生成的核心 CMake 命令形如

rmvl_add_module(
  <module_name>
  DEPENDS core
)

如果指定了子模块,每个子模块也会作为独立模块,并依赖主模块,核心 CMake 命令形如

rmvl_add_module(
  <sub_module>
  DEPENDS <module_name>
)

示例

# 创建 my_module 主模块,并包含 sub1、sub2 和 sub3 三个子模块
rdt create my_module sub1 sub2 sub3

update 命令

更新 RMVL 代码、文档、库文件或 rdt 工具。

用法

rdt update [help | tool | doc | code | lib | all] [args...]
命令
help显示此帮助信息
tool更新 rdt 工具到最新版本,并自动更新 RMVL 代码
doc执行 Doxygen 文档生成,并推送到 cv-rmvl.github.io 仓库
code更新 RMVL 仓库至最新的 2.x 分支代码
lib执行完整的编译安装流程以更新 RMVL 动态/静态库
all依次执行 codelib 两个步骤,即更新代码并以 Release 模式编译安装
警告
rdt update code 会在 RMVL 仓库中执行 git stashgit checkout 2.xgit reset --hard origin/2.x,请在执行前确认本地更改已经妥善保存。

doc 子命令

生成 Doxygen 文档,并将生成结果提交推送到 cv-rmvl.github.io 仓库的指定文档目录中。

用法

rdt update doc <folder>
参数
folder文档存放的文件夹名称,例如 2.x

示例

# 生成当前 RMVL 的 Doxygen 文档,并发布到 docs/2.x
rdt update doc 2.x

lib 子命令

编译并安装 RMVL 动态/静态库。

用法

rdt update lib <mode>
参数
mode编译模式,包括 releasedebug

示例

# 以 Release 模式编译并安装 RMVL
rdt update lib release
# 以 Debug 模式编译并安装 RMVL
rdt update lib debug

常用更新示例

# 仅更新 RMVL 代码
rdt update code
# 更新代码后以 Release 模式编译安装
rdt update all
# 更新 rdt 工具,执行时会先更新 RMVL 代码
rdt update tool

dev 命令

使用常见开发工具打开本地 RMVL 仓库。

用法

rdt dev [help | code | nvim | dir]
命令
help显示此帮助信息
code在 Visual Studio Code 中打开本地 RMVL
nvim在 Neovim 中打开本地 RMVL
dirLinux 上使用 Nautilus 打开本地 RMVL

示例

# 使用 VS Code 打开 RMVL 仓库
rdt dev code
# 使用 Neovim 打开 RMVL 仓库
rdt dev nvim

git 命令

执行 RMVL 开发中常用的 Git 工作流。该命令提供交互式界面,会引导输入提交类型、影响范围、摘要、详细说明等内容。

用法

rdt git [help | commit | squash | reword | newbr | update]
命令
help显示此帮助信息
commit执行 git add .git commit 提交本地更改
squash创建临时提交并压缩至上一个提交
reword修改上一个提交的消息,不修改提交内容
newbr创建新分支并应用提交
update适用于 RMVL 的更新组合拳,将从 upstream 更新本地仓库,并推送至 origin

commit 子命令

提交当前仓库中的本地更改。执行后会进入交互式流程,并生成符合约定式提交风格的 commit message。

用法

rdt git commit

该命令最终会执行

git add .
git commit -m <commit_title>

若填写了详细说明,则会额外通过第二个 -m 写入 commit body。

squash 子命令

将当前本地更改压缩到上一个提交中,并保留上一个提交的消息。

用法

rdt git squash

该命令会创建临时提交,然后执行软重置和 amend,核心流程为

git add .
git commit -m "rdt squash temporary commit"
git reset --soft HEAD~1
git commit --amend --no-edit

执行过程中可以选择是否在压缩完成后执行 git push --force-with-lease

reword 子命令

修改上一个提交的消息,但不修改提交内容。

用法

rdt git reword

该命令会重新收集提交消息,并执行

git commit --amend --only -m <commit_title>

若填写了详细说明,则会额外通过第二个 -m 写入 commit body。

newbr 子命令

创建新分支,并将当前本地更改提交到这个新分支。

用法

rdt git newbr

该命令会在交互式流程中要求输入新分支名称和提交消息,并可以选择是否推送到 origin。核心流程为

git switch -c <branch_name>
git add .
git commit -m <commit_title>
git push -u origin <branch_name>

如果选择不推送到远程,则不会执行最后一步。

update 子命令

执行适用于 RMVL 的分支同步流程。

用法

rdt git update

该命令将依次执行以下操作:

git checkout 2.x
git pull upstream 2.x
git push origin 2.x
git checkout master
git reset --hard 2.x
git remote prune origin
git push origin master
git push upstream master
警告
rdt git update 会切换分支、重置 master 分支并向远程仓库推送,请仅在确认本地仓库状态、远程地址和权限都正确时使用。

remove 命令

移除 RMVL 组件或 rdt 工具。

用法

rdt remove [help | tool | lib]
命令
help显示此帮助信息
tool移除 rmvl-dev-tools 工具
lib移除 RMVL 动态/静态库

tool 子命令

移除 rmvl-dev-tools 工具。执行后会进入交互式流程,可选择是否同时移除本地 RMVL 仓库和 rdt 工具仓库。

用法

rdt remove tool
警告
该命令可能删除本地仓库目录,请根据交互提示谨慎选择。

lib 子命令

移除已安装到系统目录中的 RMVL 库文件、头文件、CMake 配置和文档。

用法

rdt remove lib

该命令会移除以下路径中的 RMVL 安装内容:

/usr/local/lib/librmvl_*
/usr/local/lib/cmake/RMVL
/usr/local/include/RMVL
/usr/local/share/doc/RMVL

version 命令

显示 rdt 工具版本。

用法

rdt version [log]
参数
log可选参数,指定后会显示当前版本和详细更新日志,否则仅显示版本号

示例

# 显示当前 rdt 版本
rdt version
# 显示当前版本和详细更新日志
rdt version log