




Preview text:
lOMoAR cPSD| 59735516
Họ và tên : Hoàng Kim Trường Mã sinh viên : 22027530
1.Thiết kế một message (msgs) gồm 3 trường thông tin (string nameStudent, int
sudentCode, float GPA) và cấu hình trong package lOMoAR cPSD| 59735516
2.Viết một node publisher (python/ C++) tên là /info_upload ể ăng thông tin từ
sinh viên lên topic /info
Impor rospy : Thư viện chính là việc với ROS Hàm
def publish_student_info(): •
Tạo và gửi thông tin sinh viên lên một ROS topic (/info).
pub = rospy.Publisher('/info', StudentInfo, queue_size=10) •
Tạo một publisher ể gửi message kiểu StudentInfo lên topic /info. •
queue_size=10: Hàng ợi chứa tối a 10 message lOMoAR cPSD| 59735516
3.Viết một node subscriber (python/ C++) tên là /info_receiver ể nhận thông tin
từ topic /info, sau ó in ra màn hình bằng log ,tên sv và iểm gpa thuộc loại gì
(trung bình, khá, giỏi, xuất sắc) ví dụ log: "NguyenVanA_xuatSac"
Import rospy : Thư viện chính là việc với ROS
Hàm def list_gpa(gpa) tạo ra 1 hàm chứa các trường hợp của GPA Hàm callback(msg): •
Nhận dữ liệu từ topic /info, message có dạng StudentInfo. • Lấy iểm GPA từ message. •
Gọi classify_gpa(msg.GPA) ể phân loại iểm
rospy.init_node('info_upload', anonymous=True)
Tạo 1 node có tên là infor_upload, anonymous = True ể không bi trùng tên node
rospy.loginfo(f"Publishing: {msg.nameStudent}, {msg.studentCode},
{msg.GPA}") pub.publish(msg)
• rospy.loginfo(): Hiển thị log ể kiểm tra dữ liệu gửi i.
• pub.publish(msg): Gửi message lên topic /info.
Bật terminal thứ nhất , nhập “roscore” ể khởi tạo master quản lý các node lOMoAR cPSD| 59735516
Sử dụng terminal thứ 2, chạy rosrun cho publisher ể upload dữ liệu \ lOMoAR cPSD| 59735516
Sử dụng terminal thứ 3, rosrun cho subscriber , truy cập ể lấy dữ liệu Sử dụng rqt_graph
Dữ liệu từ node infor_upload ( pushliser) , cung cấp các thông tin về sinh viên , gửi
lên qua roscore với topic là /infor, infor_receiver truy cập vào /infor và nhận dữ liệu và
phân loại dựa trên thông tin ã nhận ược