이전 글에서 roslaunch 명령어를 통해 로봇이 포함된 gazebo, 시각화를 위한 rviz를 동시에 실행했다. 이후 rosrun 함수를 통해 telpoperation을 추가적으로 실행했었다. 이러한 함수들에 대해 공부해볼 것이다.
- Node
우선 ROS는 각 프로세스들을 Node의 단위로 관리한다는 것을 알아야한다.
각 프로세스 즉 노드들이 서로 데이터를 주고 받기 위해서는 어떤 노드가 존재하며, 이 노드의 정보는 무엇이고 등의 정보 공유가 필요할 것이다. 이를 위해 각 노드들을 관리하는 것이 바로 ROS Master이다.
참고를 위해 launch를 하면 다음과 같은 결과가 터미널에 나올 것이다. 여기서 NODES 부분에서 여러 노드들이 실행된 걸 알 수 있다.
$ cd ~/gcamp_ws
$ sds
$ roslaunch gcamp_gazebo gazebo_world.launch
... logging to /home/kimsooyoung/.ros/log/7f9651be-4e53-11eb-b4c9-9cb6d08bf543/roslaunch-kimsooyoung-XPS-13-9370-32277.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
xacro: in-order processing became default in ROS Melodic. You can drop the option.
started roslaunch server http://localhost:35661/
SUMMARY
========
PARAMETERS
* /gazebo/enable_ros_network: True
* /joint_state_publisher/use_gui: False
* /robot_description: <?xml version="1....
* /rosdistro: melodic
* /rosversion: 1.14.10
* /use_sim_time: True
NODES
/
gazebo (gazebo_ros/gzserver)
gazebo_gui (gazebo_ros/gzclient)
joint_state_publisher (joint_state_publisher/joint_state_publisher)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
rviz (rviz/rviz)
urdf_spawner (gazebo_ros/spawn_model)
auto-starting new master
process[master]: started with pid [32301]
ROS_MASTER_URI=http://localhost:11311
...
- roscore
roscore
ROS Master를 실행시키는 명령이다. ROS Master는 하나만 존재할 수 있기에 여러번 실행할 수 없다.
- roslaunch
roslaunch gcamp_gazebo gazebo_world.launch
launch 파일을 실행한다. ROSMaster를 포함해 모든 노드들이 실행된다.
- 실행 중인 노드들 확인하기
실행 중인 노드를 확인하고 싶으면 다음 커맨드를 사용한다.
$ roslaunch gcamp_gazebo gazebo_world.launch
# 런치 파일에 포함된 모든 노드들이 실행됐다.
$ rosnode list # 1) 실행중인 노드들이 나온다.
$ rosnode info /<노드 이름> # 2) 특정 노드의 정보를 확인할 수 있다.
rqt_graph # 3) 모든 노드들이 어떻게 연결되어 있는지 시각화 해준다.
화살표 방향을 통해 어떤 방향으로 통신이 이루어지는지 확인할 수 있다. 이전 강의에서 원격 조종을 했었다. 이를 다시 실행한 후 rqt_graph를 확인해보겠다.
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
rqt_graph
teleop_twist_keyboard 라는 Node가 추가되었고, /cmd_vel을 통해 /gazebo와 연결됐다.
더 자세한 정보를 알고 싶다면 rosnode info /<노드 이름> 함수를 사용하면 된다.
다음 글에서 새로 생겨난 파일들과 node를 실행하는 방법에 대해 더 자세히 다루겠다.
출처)
https://www.youtube.com/watch?v=MN5Gixvu2rc
'Robotics > ROS' 카테고리의 다른 글
4. rosrun, roslaunch, launch (0) | 2025.02.10 |
---|---|
2. Gazebo 환경과 사용법 (0) | 2025.02.10 |
1. ROS란?, ROS 설치 (0) | 2025.02.10 |