![]() |
RMVL
2.1.1
Robotic Manipulation and Vision Library
|
上一篇教程:为基于 ARM 的 Linux 系统配置交叉编译 ↑
Doxygen 是用于构建文档系统的工具,包含非常多的实用特性,包括:
可在官方网站的下载和安装页面进行查看,一些 Linux 发行版也提供了有关 Doxygen 的包,例如 Ubuntu 可通过以下命令进行安装。
build 文件夹,并 cd buildcmake,或使用 cmake-gui make 有关文档的一切内容均放置在 <path-to-rmvl>/doc 中,下面列举一些关于文档生成重要的部分
make doxygen 提供文档构建指南。内部定义了有关文档构建范式的所有内容,包括构建类型(HTML、LaTeX 等)、构建工作空间、源代码中的构建内容等;此外,RMVL 的文档在构建中会自动递归索引项目顶级目录下的所有文件,最终生成包含以下几个部分
源代码 中的实体,包括类、函数、枚举等内容,这些内容需要被定义在相应的头文件中。
为了给类、函数或其他实体生成文档,需要使用特定的注释方式,比如说
/**
* @brief 计算相机中心与目标中心之间的相对角度
* @note 公式推导参考函数 @ref calculateRelativeCenter() ,现直接给出结果 \f[\begin{bmatrix}
* \tan{yaw}\\\tan{pitch}\\1\end{bmatrix}=\begin{bmatrix}f_x&0&u_0\\0&f_y&v_0\\0&0&1
* \end{bmatrix}^{-1}\begin{bmatrix}u\\v\\1\end{bmatrix}\f]
*
* @param[in] cameraMatrix 相机内参矩阵
* @param[in] center 像素坐标系下的目标中心
* @return 相对角度,目标在图像右方,point.x 为正,目标在图像下方,point.y 为正
*/
cv::Point2f calculateRelativeAngle(const cv::Matx33f &cameraMatrix, cv::Point2f center);
[in]、[out] 和 [in out] 做区分,例如 @param[in] cameraMatrix 相机内参矩阵结果如下
| [in] | cameraMatrix | 相机内参矩阵 |
note - 注解,可包含对类、函数的详细介绍或者使用注意事项,也可包含一些公式信息,具体的公式写法在后续的 f 会进行介绍,note 的使用如下
@note 公式推导参考函数 @ref rm::calculateRelativeCenter
结果如下
return - 表示返回值
@return 相对角度
结果如下
f - 公式 内联公式使用 f$ 命令开始
\f$ ... \f$
块公式使用 f[ 和 f] 命令
\f[ ... \f]
示例
若状态向量包含以下内容:\f$[p, v, a]\f$ ,然而观测向量仅包含 \f$[p, v]\f$,
在这种情况下,需要使用一个观测转换矩阵 \f$H_{2\times3}\f$。在上述例子中可表示为
\f[\begin{bmatrix}p\\v\end{bmatrix}=\begin{bmatrix}1&0&0\\0&1&0\end{bmatrix}
\begin{bmatrix}p\\v\\a\end{bmatrix}\f]结果如下
若状态向量包含以下内容: \([p, v, a]\) ,然而观测向量仅包含 \([p, v]\), 在这种情况下,需要使用一个观测转换矩阵 \(H_{2\times3}\)。在上述例子中可表示为
\[\begin{bmatrix}p\\v\end{bmatrix}=\begin{bmatrix}1&0&0\\0&1&0\end{bmatrix} \begin{bmatrix}p\\v\\a\end{bmatrix}\]
Doxygen 支持部分 Markdown 语法与扩展,本篇教程页面同样使用了很多的 Markdown 语法。
每个文档页面都应该为自己设置一个 ID,比如本篇教程的标题和 ID 如下
为 RMVL 撰写说明文档 {#tutorial_document}
使用以下命令进行子页面的跳转
@subpage xxx
使用以下命令进行页面内或其他地方的引用
@ref xxx
使用以下命令创建代码块
@code{.cpp}
std::cout << "Hello World" << std::endl;
@endcode
渲染结果如下
使用以下命令创建按钮
### 按钮示例
@add_toggle_cpp
This is C++.
@code{.cpp}
std::cout << "Hello World" << std::endl;
@endcode
@end_toggle
@add_toggle_python
This is Python.
@code{.py}
print("Hello World")
@endcode
@end_toggle渲染结果如下
1.12.0