Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@strv

ROS関連メモ

ROS関連メモ

ROSは巨大なので,ちょいちょい情報を見失ったり,フォーラムで言及されているだけだったりすることがあるので,ここに困ったときのメモを残します.
適宜困ったことがある度に追記します.

ROSのお約束

ROSで使う単位系

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/

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

gazebo

kinetic でコンパイルが通らなくなった

apt upgrade したらコンパイルが通らなくなった.
どうやらprotocolbufferのバージョン不整合らしい.
これを解決するためには,protocolbufferのバージョンを下げるか,gazeboをソースからコンパイルするかどちらかになるので,今回は前者を選んでみた.
方法はgazebo Answersに書かれている一番したの投稿と基本的には同じで,ただもともとインストールされているものは削除しないでやってみても多分大丈夫.

6
Help us understand the problem. What is going on with this article?
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
6
Help us understand the problem. What is going on with this article?