이번 시간에는, 지난 강의에서 살펴보았던 미로찾기 예제의 코드를 분석해보고자 하며, 분석 과정에서, 제가 마주쳤던 문제들과, 디버깅 포인트들도 함께 공유하고자 합니다.
$ roslaunch gcamp_gazebo maze_world.launch
# 새 터미널
$ rosrun action_tutorial maze_action_server.py
==== MazeActionClass Constructed ====
==== Waiting for Client Goal... ====
# 새 터미널
$ rosrun action_tutorial maze_action_client.py
[INFO] [1610254457.453111, 322.000000]: Action Server Found.../maze_action_server
Enter numbers [or stop] :
action_tutorial/
├── CMakeLists.txt
├── action
**│ └── Maze.action**
├── launch
│ ├── fibonacci_server.launch
**│ └── maze_runner.launch**
├── package.xml
└── src
├── fibonacci_action_client.py
├── fibonacci_action_server.py
├── gazebo_handler_test.py
**├── maze_action_client.py
├── maze_action_server.py**
└── **mazepkg**
├── **__init__.py**
├── **basic_cmd_vel.py**
├── **gazebo_handler.py**
└── **image_converter.py**
gcamp_gazebo/
├── CMakeLists.txt
├── launch
│ ├── gazebo_world.launch
**│ ├── maze_world.launch**
│ └── robot_description.launch
└── ...
maze_world.launch
****를 통해 사진과 같은 새로운 world를 gazebo_ros와 함께 사용할 수 있습니다.maze_runner.launch
파일은 단순히 action server를 실행시키기 위한 간단한 launch file입니다.<launch>
<node pkg="action_tutorial" type="maze_action_server.py" name="maze_action_server" output="screen" />
</launch>
server 부터 살펴보겠습니다. class 설계를 하기 앞서, 해당 클래스에게 필요한 instance, method를 기능에 맞추어 생각해 보겠습니다.