公式の日本語のROSページであるこちらを参考にROSの開発環境をUbuntuのパソコンに構築します。
ROSを利用して開発を行うために、作業用ディレクトリを作成し、catkinコマンドで作業用ディレクトリを初期化します。
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws
$ catkin_make
ROSを利用できる環境にするためsetup.bashを読み込みます。
$ source ~/catkin_ws/devel/setup.bash
この作業は毎回必要となるため、「~/.bashrc」の以下の部分をエディタなどで
#source /opt/ros/indigo/setup.bash
source ~/catkin_ws/devel/setup.bash
を修正し、追加することでその作業を省略できます。
ディレクトリを移動して、パッケージを作成します。
$ cd ~/catkin_ws/src
$ catkin_create_pkg <自作のパッケージ名> rospy roscpp std_msgs
ここでもう一度catkin_makeを行います。
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
これで自作のパッケージを利用することができます。 確認のため
catkin_ws$ roscd <自作のパッケージ名>
をすると
catkin_ws/src/<自作のパッケージ名>$
と移動できれば成功です。
PLEN2はアクセスポイントになっています。PLEN2にはそれぞれ異なるアクセスポイントの名前と同じパスワードが設定されています。
ssid:PLEN2dev<MACアドレス>
password:plenproject
PLEN2に接続できたらifconfigコマンドを利用してPCに割り振られたIPアドレスを調べ、以下の様にROSの環境変数の設定を行います。
export ROS_IP=<割り振られたIPアドレス>
export ROS_HOSTNAME=<割り振られたIPアドレス>
export ROS_MASTER_URI=http://192.168.42.1:11311
この設定を行うことで異なるパソコン間でROSを利用することが可能となります。
それでは簡単にPLEN2の目を点滅させてみます。言語はPythonを利用します。まずPythonのプログラムを保存するためにscriptsディレクトリを作成します。
$ mkdir scripts
$ cd scripts
以下のプログラムをpythonファイルとして保存します。
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def talker():
rospy.init_node('PCnode', anonymous=True)
pub = rospy.Publisher('PcToControl', String, queue_size=10)
rate = rospy.Rate(1)
hello_str = String()
hello_str.data ="gpio,w,off"
while not rospy.is_shutdown():
if ("on" in hello_str.data):
hello_str.data = "gpio,w,off"
elif ("off" in hello_str.data):
hello_str.data = "gpio,w,on"
rospy.loginfo("%s",hello_str.data)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
このプログラムはPLEN2の目を一秒ごとに点滅させるものです。「PcToControl」という名前で「Topic」に「Publish」するとPLEN2はそのTopicを読んでくれます。 最後に
$ chmod 755 <保存したpythonファイル>
$ python <保存したpythonファイル>
で実行することができます。
他にもPublishする内容を変更することでPLEN2を動かしたりすることが可能です。例えば、スロット4のモーションを再生したい場合は
serial,w,$PM04
としてPublishすることでPLEN2を動かすことができます。