Node
- 각 프로세스들을 Node의 단위로 관리
- 노드들끼리 데이터를 주고받기 위해서는 어떤 노드가 생겼고, id는 볓번이고 등의 정보가 공유되어야 함.
- 이를 관리해주는 것이 ROS Master
rosrun & roslaunch
Node를 실행시키는 방식
1) roslaunch : launch파일을 통해 한번에 여러개의 Node를 동시에 실행
roslaunch <package-name> <launch-file-name.launch>
2) rosrun : 단 하나의 Node를 실행
rosrun <package-name> <executable-file-name>
launch file
- .launch 파일은 xml형식으로 구성
1) line의 시작과 끝, 태그
<tag />
or
<tag (value)>
...
</tag>
2. tag 종류
- <launch> : launch 파일임을 알려주는 tag
- <include> : launch 파일에서 다른 launch파일을 가져올 수 있음
<include file="$(arg dollar)$(arg path)/launch/robot_description.launch"/>
<include file="$(find gazebo_ros)/launch/empty_world.launch">
- <node> : 단일 node를 추가하고자 하는 경우에 사용. 직접 만든 노드를 launch파일로 만들고자 할 때 사용
<node pkg="rviz" type="rviz" name="rviz" args="-d $(arg dollar)$(arg path)/rviz/tinybot.rviz"/>
- <arg> : 프로그래밍 언어에서 변수를 설정하듯, 해당 파일 안에서 사용될 argument를 지정
# argument 설정
<arg name="test_arg" value="Hello"/>
<arg name="test_arg2" default="0"/>
# argument 사용
<arg name="package_name" default="gcamp_gazebo" />
<arg name="path" value="(find $(arg package_name))" />
- $(find pkg) : 다른 패키지에 있는 파일을 가졍로 수 있음(단, launch file 안에 넣기 전에 rosrun을 통해 작동이상이 없는지 확인 필요)
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<include file="$(find gazebo_ros)/launch/empty_world.launch">
3) 주석 <!-- -- >
Message(통신) 방식
- Topic : 연속성을 가진 단방향 통신방법(Publisher -> Subscriber)이며 메시지(카메라 정보)가 전송된다. 1:1, 1:N, N:1, N:N통신도 가능 -> 센서데이터와 같이 일방적인 전송(90%비율로 많이 사용)
- Publisher(노드) : 메시지를 보내는 주체
- Subscriber(노드) : 메시지를 받는 주체
- Service : 요청과 응답을 둘다 하는 일회성 양방향 통신(서버 <-> 클라이언트)
- Action : 1) 액션 복표 전달 2) 액션피드백(중간결과)전달 3) 액션 결과 전달
ROS명령어
- roscd(ros + cd) : 지정한 ros패키지의 디렉토리로 이동, ls, cp, ed와 같이 활용 가능
ROS 실행 명령어
- roscore : 1) master(ros네임 서비스) 2) rosout(로그 기록) 3) parameter server(파라미터 관리)
- rosrun : 노드 실행
- roslaunch : 노드를 여러개 실행 및 실행 옵션 설정정
- rosclean : ros 로그파일을 검사하거나 삭제
ROS 정보 명령어
- rostopic : ros토익 정보 확인
- rosservice : ros서비스 정보 확인
- rosnode : ros 노드 정보 확인
- rosparam : 파라미터 정보 확인, 수정
- rosbag : 영상정보저장 및 재생
ROS melodic 명령어
- melodic_create_pkg : 패키지 자동 생성
- melodic_make : 멜로딕 빌드 시스템에 기반을 둔 빌드
- melodic_eclipse : 멜로딕 빌드 시스테믕로 생성한 패키지를 이클립스에서 사용할 수 있게 변경
ROS 패키지 명령어
- rospack : ros 패키지와 관련된 정보 보기
- rosinstall : ros추가 패키지 설치
참고자료
http://wiki.ros.org/ROS/CommandLineTools
'리눅스 > ROS' 카테고리의 다른 글
[ROS] 로봇팔 시뮬레이션 제어 및 통신 (2) | 2023.03.18 |
---|---|
[ROS] 초기 설정 및 에러 폭탄 (0) | 2022.02.10 |