Carpe Diem

備忘録。https://github.com/jun06t

ROSパッケージの作成

授業でやっているのでメモ的に。 授業とは違って基礎的な部分をちゃんと学んでいこうという方針です。 一応コピペ使って授業はなんとかこなしていますが、中身を理解していないため難しくなると本当に手の出しようがない状態になります。なのでROS勉強記録というサイトを参考に基礎を学んでいきます。 インストール等はすでに環境がそろっているので飛ばします。 よくROSのドキュメントで出てくるbegginer_tutorialsの作成から パッケージ作成 http://www.ros.org/wiki/ROS/Tutorials/CreatingPackage このドキュメントを参考にします。 rosのパッケージを作るにはいろんなファイルを用意しないといけませんが、それを自動でやってくれるコマンドがあります。それが下。 $ roscreate-pkg [package_name] 依存するパッケージがある時は以下のように書きます。 $ roscreate-pkg [package_name] [depend1] [depend2] [depend3] ただしバグがあるようなので以下のように変更してください。 ros/tools/roscreate/src/roscreate/roscreatepkg.py py_path = os.path.join(p, 'src') ↓ py_path = os.path.join(p, 'src', package) これが済んだら $ roscd ros_tutorials $ roscreate-pkg beginner_tutorials std_msgs rospy roscpp としてパッケージができる。 はずなんですが、ros_tutorialsが/opt下にあるとPermmision Deniedをくらいます。/opt以下はプロテクトされているようです。 $ sudo roscreate~ ならいいのかなと思ったんですが、root権限ではそもそもrosコマンドが使用できないようで。 どうすればいいのかと思って探してみたらやっぱり同じ状態の人がいました。 OSError: [Errno 13] Permission denied つまり単純に言えばプロテクトのかかっている/opt以下に作らなければいいんです。 ただしパッケージパスを通しましょう、とのこと。~/practice下に作るなら $ emacs -nw .bashrc 一番下にでも export ROS_PACKAGE_PATH=~/practice:$ROS_PACKAGE_PATH と追加しましょう。これでroscdとかも使えます。 上記の設定をしたらもう一度 $ cd ~/practice $ roscreate-pkg beginner_tutorials std_msgs rospy roscpp とすればきちんと作成できるようになります。 お疲れさまでした。 ソース: ROSパッケージの作成