Help us understand the problem. What is going on with this article?

独自ルール:GitLab上でのROS2のドキュメント

ROS2関係トップページへ

ROS2のnode libraryを作成し,内部の誰かに使ってもらうときのドキュメンテーションについて.

概要

内部の誰かが自分のプロジェクト(プログラム)を使用する時,主に以下の状況が考えられる.

  1. ROS2の勉強のため
  2. カスタマイズ・改変のため
  3. libraryを利用するため

1,2の場合,ソースを見ることになるが3の場合別にソースを見る必要はない.使えればよい.
ここでは,そのような人に向けたドキュメントの雛形を考える.
言わずもがな当研究室の独自ルールであるが,一般的なより良いお話があれば参考にしたいです.

必要な情報一覧

  • パッケージ名
    • package.xmlやCMakeLists.txtなどで必要
  • node名とインクルードファイル
    • std::make_sharedで実体化するのに必要
  • parameter
    • parameter利用のために必要
    • yaml形式で表現するのが楽
  • 提供するservice名と必要なsrvのクラス名,インクルードファイル
    • service利用のために必要
  • 提供するpublish名と必要なmsgのクラス名,インクルードファイル
    • publish利用のために必要
  • 必要な他のnodeとインクルードファイル
    • 当該nodeの情報一覧へのリンクとして表現
  • 内部で使用するclient/subscribeは,そのサービスを提供するnodeを知っておいて起動する必要があるので必要

ドキュメント

内部GitLabのwikisに書くのがよろし.
例えば「Info_for_user」のページを作成する.

「#や##」と「[](#...)」によってジャンプできるようにしている.
注意としては,[...](#...)の#以降について.

  • 大文字は小文字に
  • スペースはハイフン(-)に
  • ピリオドなどは削除
  • 二つ以上の-はひとつの-に

例えば
# QValues.srv

は[QValues.srv](#qvaluessrv)となる.

GitLabでの目次

[[TOC]]で目次をつくってくれる.

[[_TOC_]]

----

# "パッケージ名1"
## "ノード名1"
...

## "ノード名2"
* #include "package_name/hoge.hpp"
* "namespace::クラス名"
* param info
    * [yaml]("リンク")
* service info
    * "サービス名"
        * 意味・概要
        * ["srvファイル名"](#"srvファイル名")
* client info
    * "使用するサービス名"
        * ["提供を確認しているnode1"]("Info for userの当該node1へのリンク")
        * ["提供を確認しているnode2"]("Info for userの当該node2へのリンク")
        *  ...
* publish info
    * "トピック名"
        * 意味・概要
        * ["msgファイル名"](#"msgファイル名")
* subscribe info
    * "使用するトピック名"
        * ["提供を確認しているnode1"]("Info for userの当該node1へのリンク")
        * ["提供を確認しているnode2"]("Info for userの当該node2へのリンク")
        *  ...
* rclcpp::executorの種類
    * SingleThreadedExecutor
        * OK/NG
    * MultiThreadedExecutor
        * OK/NG

# パッケージ名2  メッセージ専用なら以下のようにsrvとmsgで分けたり.
## "srvファイル"
* #include "srv_package_name/add_two_ints.hpp" //ディレクトリなどは適当...
* request
    * uint32 a
        * 意味・概要
    * uint32 b
        * 意味・概要
* response
    * uint sum
        * 意味・概要

## "msgファイル"
* #include "msg_package_name/two_ints.hpp" //ディレクトリなどは適当...
* topic
    * uint32 a
        * 意味・概要
    * uint32 b
        * 意味・概要

# その他
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした