ROS에서 유파를 실장해 보았다.

9860 단어 유파ROS
최근 Qiita가 할머니로 넘치고 있으므로, 편승하면 어쩌면 LGTM받을지도 모르기 때문에 아직 보지 않은 것을 사용해 실장하려고 생각했으므로, ROS 를 사용해 갑니다.

srv 파일



Yubaba.srv
string name
---
string new_name

이름을 입력하면 새 이름을 반환하는 서비스입니다.

서비스 프록시


import rospy
from std_msgs.msg import String, Empty
from yubaba.srv import Yubaba

def listen_to_yubaba(msg):
    print(msg.data)


yubaba_proxy = rospy.ServiceProxy("/yubaba/name_service", Yubaba)
yubaba_words = rospy.Subscriber("/yubaba/words", String, listen_to_yubaba)
greet_yubaba = rospy.Publisher("greet_yubaba", Empty, queue_size=1)

if __name__ == "__main__":
    rospy.init_node("client")
    greet_yubaba.publish()
    name = input()
    new_name = yubaba_proxy(name)

유바바 때문에


import rospy
import random
from yubaba.srv import Yubaba
from std_msgs.msg import String, Empty

class YubabaNode:

    def __init__(self):
        rospy.init_node("yubaba")
        self.yubaba_service = rospy.Service("~name_service", Yubaba, self.name_service)
        self.word_publisher = rospy.Publisher("~words", String, queue_size=1)
        self.greet_subscriber = rospy.Subscriber("greet_yubaba", Empty, self.start)

    def start(self, msg):
        self.word_publisher.publish("契約書だよ。そこに名前を書きな。")


    def name_service(self, req):
        name = req.name
        self.word_publisher.publish(f"フン。{name}というのかい。贅沢な名だねぇ。")
        rospy.sleep(0.5)
        new_name = random.choice(name)
        self.word_publisher.publish(f"今からお前の名前は{new_name}だ。いいかい、{new_name}だよ。分かったら返事をするんだ、{new_name}!!")
        return new_name

if __name__ == "__main__":
    yubaba = YubabaNode()
    rospy.spin()

덤의 listener


import sys
import rospy
from std_msgs.msg import String

def listen_to_yubaba(msg):
    print(msg.data)

yubaba_words = rospy.Subscriber("/yubaba/words", String, listen_to_yubaba)

if __name__ == "__main__":
    args = sys.argv
    rospy.init_node(f"listener{args[1]}")
    rospy.spin()


실행 예





구성



  • 유바바 노드
  • /yubaba/words: 유파 할머니의 고마운 말.
  • /yubaba/name_service: 이름을 새롭게 바꾸는 녀석입니다.

  • /greet_yubaba: 우선은 할머니에게 인사.

  • 요약



    혹시 ROS + 湯婆婆 = 老婆婆??

    좋은 웹페이지 즐겨찾기