meta data for this page
  •  

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

lab:ros:etc [2020/06/02 20:39] (現在)
strv 作成
ライン 1: ライン 1:
 +# ROS関連メモ
 +
 +ROSは巨大なので,ちょいちょい情報を見失ったり,フォーラムで言及されているだけだったりすることがあるので,ここに困ったときのメモを残します.
 +適宜困ったことがある度に追記します.
 +
 +# ROSのお約束
 +
 +## ROSで使う単位系
 +
 +http://​www.ros.org/​reps/​rep-0103.html
 +
 +# catkin_make
 +
 +## 指定したパッケージだけビルド
 +
 +```
 +catkin_make --pkg パッケージ名
 +```
 +ディレクトリ名じゃなくてパッケージ名なので注意.
 +
 +## ビルドに使うスレッド数の設定
 +
 +```
 +catkin_make -j1
 +```
 +
 +catkin_makeに```-j```オプションを渡すと,makeにまで浸透する.
 +通常では,勝手にCPU数と同じだけのスレッド数が指定されるので,同時ビルドになりメモリ使用量が多くなりがち.
 +
 +## 最適化オプション
 +
 +```
 +catkin_make -DCMAKE_CXX_FLAGS=-O0
 +```
 +
 +# rosparam
 +
 +## rosrunのオプション
 +rosrunするときにオプションで配列のパラメータを渡すときの挙動がcppとpythonで違うらしい.
 +
 +[https://​answers.ros.org/​question/​58838/​how-to-assign-array-to-a-parameter-with-rosrun/​](https://​answers.ros.org/​question/​58838/​how-to-assign-array-to-a-parameter-with-rosrun/​)
 +
 +cppだとダメみたい.
 +自分の環境でもだめだった.
 +
 +# topic
 +
 +## publish の latch 機能
 +
 +時々,「一度だけTopicをpublishできればいい」ということがあるのですが,そういう時はpublisherを定義するときにadvertiseのlatchをtrueにする.
 +latch引数はデフォルト引数でfalseになってるので,普通の使い方になれていると存在を忘れがち.
 +
 +これをfalseのままにしておくと,publishしたtopicが読めないことが多い.
 +trueにすると,最後にpublishしたtopicを保持(latch)してくれるので,publishしたあとに別のノードを起動して,subscriveし始めてもtopicを読むことができる.
 +
 +参考 : [http://​docs.ros.org/​jade/​api/​roscpp/​html/​classros_1_1NodeHandle.html#​a6b655c04f32c4c967d49799ff9312ac6](http://​docs.ros.org/​jade/​api/​roscpp/​html/​classros_1_1NodeHandle.html#​a6b655c04f32c4c967d49799ff9312ac6)
 +
 +# gazebo
 +
 +## kinetic でコンパイルが通らなくなった
 +
 +apt upgrade したらコンパイルが通らなくなった.
 +どうやらprotocolbufferのバージョン不整合らしい.
 +これを解決するためには,protocolbufferのバージョンを下げるか,gazeboをソースからコンパイルするかどちらかになるので,今回は前者を選んでみた.
 +方法は[gazebo Answers](http://​answers.gazebosim.org/​question/​18096/​this-file-was-generated-by-an-older-version-of-protoc/​)に書かれている一番したの投稿と基本的には同じで,ただもともとインストールされているものは削除しないでやってみても多分大丈夫.