2023年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

カテゴリー

ブログパーツ

無料ブログはココログ

« 光を追いかけるロボットをROSで作る(1) | トップページ | ubuntuラズパイのWiFi接続 »

2016年4月16日 (土)

光を追いかけるロボットをROSで作る(おしまい)

回路ができたら前回の投稿と同じ手順で、CDSに懐中電灯で光をあてるとLEDが点灯することを確認しておきます。感度は半固定抵抗VRをドライバーで回して調整します。

Dscn3385

最後にトピックbrinkcontをサブスクライブして、turtlebotを動かすトピックcmd_vel_mux/input/naviをパブリッシュするノードのpythonプログラム、seeker.pyを下記のように作り、パッケージrptestフォルダのscriptsにおきます。

#!/usr/bin/env python
import roslib
import rospy
import time

from geometry_msgs.msg import Twist
from sensor_msgs.msg import Joy

#callback
def joy_callback(light_sens):
    if light_sens.buttons[0] == 1: # light in
        twist.linear.x = 0.1
        twist.angular.z = 0
    else:
        twist.linear.x = 0
        twist.angular.z = 0.4
    pub.publish(twist)


#main
if __name__ == '__main__':
    
    rospy.init_node('light_seeker')
    rospy.Subscriber('brinkcont' , Joy ,joy_callback)    
    pub = rospy.Publisher('cmd_vel_mux/input/navi', Twist, queue_size=10)
    twist = Twist()
        
    rospy.spin()

内容は簡単なので説明は割愛します。ついでにローンチファイルも作っておきましょう。下記内容で、lightseeker.launchという名前のローンチファイルを作り、パッケージrptestフォルダにlaunchフォルダを作り、そこに置きます。

<launch>
    <node pkg="rptest" type="dsens.py" name="dsens" />
    <node pkg="rptest" type="brinker.py" name="brinker" />
    <node pkg="rptest" type="seeker.py" name="lightseeker" />
</launch>

brinkerノードはCDSが反応したかどうかモニターするだけなので起動しなくとも良いのですが、うまく動かない時に原因がわかりやすいので起動しておいたほうが良いです。

下記手順で起動するとビデオのように動きます。試してみてください。

$ roslaunch turtlebot_bringup minimal.launch

$ roslaunch rptest lightseeker.launch

こんな簡単なプロジェクトでも実際にROSで動かすものを作ってみると、いろいろとわかることが多いと思います。

« 光を追いかけるロボットをROSで作る(1) | トップページ | ubuntuラズパイのWiFi接続 »

ROSさんお手やわらかに」カテゴリの記事

ラズパイでROS」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 光を追いかけるロボットをROSで作る(おしまい):

« 光を追いかけるロボットをROSで作る(1) | トップページ | ubuntuラズパイのWiFi接続 »