$ roscd msg_send (한번에 해당 디렉토리로 이동)
$ mkdir msg
$ cd msg
$ gedit my_msg.msg
string first_name
string last_name
int32 age
int32 score
string phone_number
int32 id_number
$ gedit package.xml
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
$ gedit CMakeLists.txt
message_generation
추가
add_message_files 주석 풀고 my_msg.msg
추가
generate_message 주석 풀기
CATKIN_DEPENDS message_runtime
추가$ cm
$ rosmsg show msg_send/my_msg
또는
$ rosmsg show my_msg
$ cd devel/lib/python2.7/dist-packages/msg_send/msg/
$ cat _my_msg.py
$ cs
$ cd msg_send/src/
$ gedit msg_sender.py
#!/usr/bin/env python
import rospy
from msg_send.msg import my_msg
rospy.init_node('msg_sender', anonymous=True)
pub = rospy.Publisher('msg_to_xycar', my_msg)
msg = my_msg()
msg.first_name = "nayoung"
msg.last_name = "Choi"
msg.id_number = 20210815
msg.phone_number = "010-9072-7247"
rate = rospy.Rate(1)
while not rospy.is_shutdown():
pub.publish(msg)
print("sending message")
rate.sleep()
$ gedit msg_receiver.py
#!/usr/bin/env python3
import rospy
from msg_send.msg import my_msg
def callback(msg):
print ("1. Name: ", msg.last_name + msg.first_name)
print ("2. ID: ", msg.id_number)
print ("3. Phone Number: " , msg.phone_number)
rospy.init_node('msg_receiver', anonymous=True)
sub = rospy.Subscriber('msg_to_xycar', my_msg, callback)
rospy.spin()
$ chmod +x msg_sender.py msg_receiver.py
$ cm
terminal 1 : $ roscore
terminal 2 : $ rosrun msg_send msg_receiver.py
terminal 3 : $ rosrun msg_send msg_sender.py
terminal 4 : $ rqt_graph