본문 바로가기

[패스트캠퍼스 11월 환급 챌린지]

패스트캠퍼스 환급챌린지 1일차 : Service/Interface Programming

[본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.]

https://fastcampus.info/4oKQD6b

 

 

 

 

[강의 시작 | 강의 종료]

강의 시작 강의 종료

 

 

 

 

[Before]

Service Programming Before
Interface Programming Before

 

 

 

 

[After]

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

 

 

 

 

[강의 후기]

Service, Interface에 대해 다룬 2개의 강의를 들었습니다.

 

-Service-

Service란  Request,Response의 형식을 띈 통신 방법입니다. 이번 강의에선 Server를 기반으로 돌려놓은 상태에서, 작성한 Service 코드를 호출해 원하는 값을 얻고 로봇을 움직이게 하는 실습을 진행했습니다.

  • Service를 생성하는 방법
class TiagoMoveServer(Node):
    def __init__(self):
        super().__init__('tiago_move_server')
        self.srv = self.create_service(SetBool, 'tiago_move', self.tiago_move_callback) #각각 인터페이스 타임, Service 이름, 호출 할 callback 함수이다.

 

  • Service에서 callback 함수의 형태
 def tiago_move_callback(self, request, response):
 	...
    	...
    	...
    	return response

 

등등, Python 코드에서 Service를 생성하는 방법과 호출하는 방법이 이번 강의의 주된 강의 내용이었습니다. 

 

-Interface-

Interface란 ROS 노드간에 주고받는 데이터의 형태를 칭합니다. 로봇에게 명령 할 내용의 Request/ 응답받을 내용의 Response를 담은 서비스파일(.srv)을 만들고 호출하여 사용자가 설정한 값대로 로봇이 움직이는것을 확인할 수 있었습니다. 

이번 강의에서도 Service에 대해 다뤘는데, 전 강의는 작성되어 있는 서비스파일(.srv)을 다뤘지만, 이번 강의에서는 서비스 파일(.srv)을 직접 만들고, 원하는 데이터를 받아 로봇을 조종하는 실습을 했습니다.

  • 서비스 파일(.srv)의 형태
float64 ...
float64 ...
float64 ...
---
bool ...
string ...

# '---' 선을 기준으로 위쪽은 Request, 아래쪽은 Response가 됩니다.

 

  • Service를 생성하는 방법
class MovementServer(Node):
    def __init__(self):
        super().__init__('movement_server')
        self.srv = self.create_service(MoveRobot, 'move_robot', self.move_robot_callback) #각각 인터페이스 타입, Service 이름, 호출 할 callback 함수이다.

 

  • Service에서 호출되는 callback 함수의 형태
def tiago_move_callback(self, request, response):
	.....
        .....
        .....
        return response

 

등등 Service 파일(.srv)의 형태와 Service 생성 및 호출이 주된 강의 내용이었습니다.

 

 

 

- 생각해볼 점-

이전에 자율주행 자동차를 주제로 RC 자동차를 Python을 사용해 코딩하면서 조건문과 제어문을 사용하여 단순하게 실습을 했었습니다. 이번에 Service, Interface에 대한 강의를 듣고 나서 다음 실습때는 Server를 구축하고, 로봇을 제어하는 Service를 생성해 코드가 깔끔하게 돌아가도록 실습해보고 싶습니다. 아직 강의를 많이 들은 것이 아니라 어떻게 해야할 지는 정확히 모르겠지만, 복습을 통해 습득하면 알게될 것입니다. 앞으로 강의가 많이 남아있고 시간도 여유가 있기에 꼼꼼히 복습하여 내것으로 만들것입니다.