-
Notifications
You must be signed in to change notification settings - Fork 2
run.sh 명령어 및 입력 인수
kestr31 edited this page Aug 2, 2024
·
1 revision
scripts/run.sh <type> <argument(s)>
-
scripts/run.sh
는 PX4-SITL 시뮬레이션 컨테이너들의 배포(=생성), 실행, 제거를 수행하는 스크립트이다. - 본 스크립트는 선택적으로 컨테이너 집합체와 단독 컨테이너에 대한 제어가 가능하다.
- 스크립트는
bash
쉘과docker compose
의profile
기능을 이용해 구현되었다.
순번 | Type | 설명 | Compose 서비스(들) | 비고 |
---|---|---|---|---|
1 | gazebo-classic-sitl |
PX4 - Gazebo-Classic SITL 시뮬레이션 컨테이너 배포 |
px4-env gz-sim ros2-env qgc-app
|
SITL |
2 | gazebo-classic-airsim-sitl |
PX4 - Gazebo-Classic - AirSim SITL 시뮬레이션 컨테이너 배포 |
px4-env gz-sim-airsim airsim-binary ros2-env-airsim qgc-app
|
SITL |
3 | px4 |
PX4-Autopilot 컨테이너 배포 | px4-env |
단일 컨테이너 배포 |
4 | gazebo-classic |
Gazebo-Classic 컨테이너 배포 | gz-sim |
단일 컨테이너 배포 |
5 | airsim |
Airsim 컨테이너 배포 | airsim-binary |
단일 컨테이너 배포 |
6 | ros2 |
ROS2 컨테이너 배포 | ros2-env |
단일 컨테이너 배포 |
scripts/run.sh gazebo-classic-sitl <argument(s)>
- 해당 입력 인수는 PX4 - Gazebo-Classic SITL 시뮬레이션에 대한 것이다.
- 사용자는 특정 컨테이들만을 디버그 모드로 실행하도록 설정할 수 있다.
- 예시:
- QGroundControl을 디버그 모드로 실행하는 경우:
scripts/run.sh gazebo-classic-sitl debug qgc
- PX4-Autopilot과 ROS2를 디버그 모드로 실행하는 경우:
scripts/run.sh gazebo-classic-sitl debug px4 ros2
- QGroundControl을 디버그 모드로 실행하는 경우:
순번 | 입력 인수 | 설명 | 비고. |
---|---|---|---|
1 | run |
PX4 - Gazebo-Classic SITL 컨테이너 배포 및 실행 | - |
2 | debug |
PX4 - Gazebo-Classic SITL 컨테이너(들)을(를) 디버그 모드로 실행 | 추가 입력 인수 선택지(s):px4 gazebo-classic ros2 qgc
|
3 | stop |
배포된 PX4 - Gazebo-Classic SITL 컨테이너 제거 | - |
scripts/run.sh gazebo-classic-airsim-sitl <argument(s)>
- 해당 입력 인수는 PX4 - Gazebo-Classic - AirSim SITL 시뮬레이션에 대한 것이다.
- 사용자는 특정 컨테이들만을 디버그 모드로 실행하도록 설정할 수 있다.
- 예시:
- QGroundControl을 디버그 모드로 실행하는 경우:
scripts/run.sh gazebo-classic-airsim-sitl debug qgc
- PX4-Autopilot과 ROS2를 디버그 모드로 실행하는 경우:
scripts/run.sh gazebo-classic-airsim-sitl debug px4 ros2
- QGroundControl을 디버그 모드로 실행하는 경우:
순번 | 입력 인수 | 설명 | 비고. |
---|---|---|---|
1 | run |
PX4 - Gazebo-Classic - AirSim SITL 컨테이너 배포 및 실행 | - |
2 | debug |
PX4 - Gazebo-Classic - AirSim SITL 컨테이너(들)을(를) 디버그 모드로 실행 | 추가 입력 인수 선택지(s):px4 gazebo-classic airsim ros2 qgc
|
3 | stop |
배포된 PX4 - Gazebo-Classic - AirSim SITL 컨테이너 제거 | - |
scripts/run.sh px4 <argument(s)>
- 해당 입력 인수는 PX4-Autopilot에 대한 것이다.
- 사용자는 PX4-Autopilot의 소스 코드를 클론하고 이를 빌드하는 등 PX4-Autopilot 관련 요소에 대한 개발에 이를 활용할 수 있다.
- 또한 사용자는 PX4 - Gazebo-Classic SITL 시뮬레이션을 하나의 컨테이너 내에서 실행할 수도 있다.
- 하나의 컨테이너에서 실행되는 PX4 - Gazebo-Classic SITL 시뮬레이션은 "결합된" 상태로 실행된다.
- 즉, PX4-Autopilot과 Gazebo-Classic 모두가
gazebo-classic-sitl
명령어의 경우와 달리 하나의 컨테이너에서 실행된다는 것이다.
순번 | 입력 인수 | 설명 | 비고 |
---|---|---|---|
1 | debug |
PX4-Autopilot 컨테이너를 디버그 모드로 실행 | sleep infinity |
2 | stop |
배포된 PX4-Autopilot 컨테이너 제거 | - |
3 | clone |
PX4-Autopilot 소스 코드를 저장소로부터 클론 | 기본 설정으로 v1.14.3 을 클론 |
4 | build |
PX4-Autopilot과 Gazebo-Classic SITL 플러그인 빌드 |
make px4_sitl gazebo-classic (빌드만 수행) |
5 | clean |
PX4-Autopilot 빌드 결과물 삭제 | make distclean |
6 | sitl-gazebo-classic-standalone |
PX4 - Gazebo-Classic - SITL 시뮬레이션 실행 | make px4_sitl gazebo-classic |
scripts/run.sh gazebo-classic <argument(s)>
- 해당 입력 인수는 Gazebo-Classic에 대한 것이다.
- 사용자는 Gazebo-Classic world들과
.sdf
모델의 개발에 컨테이너를 활용할 수 있다. - 사용자는 PX4-Autopilot의 Gazebo-Classic SITL 시뮬레이션 부분만을 따로 실행할 수도 있다.
순번 | 입력 인수 | 설명 | 비고 |
---|---|---|---|
1 | debug |
Gazebo-Classic 컨테이너를 디버그 모드로 실행 | sleep infinity |
2 | stop |
배포된 Gazebo-Classic 컨테이너 삭제 | - |
3 | sitl-px4 |
PX4-Autopilot의 Gazebo-Classic SITL 시뮬레이션 부분만을 실행 |
sitl_run.sh (수정 파일) |
scripts/run.sh airsim <argument(s)>
- 해당 입력 인수는 AirSim에 대한 것이다.
- 사용자는 AirSim Unreal 바이너리의 실행을 확인하거나, AirSim API를 사용하는 코드를 개발하는데 컨테이너를 활용할 수 있다.
-
airsim
컨테이너는 AirSim 컨테이너 작업 공간에 배치된 사용자 정의 스크립트의 실행을 지원한다.- 예시로, 사용자가 AirSim 컨테이너 작업 공간의
scripts
경로 내에test.sh
스크립트를 배치했을 경우...- AirSim 컨테이너 작업 공간 기본 값:
~/Documents/A4VAI-SITL/AirSim
- 실행 명령어:
scripts/run.sh airsim test.sh
- AirSim 컨테이너 작업 공간 기본 값:
- 예시로, 사용자가 AirSim 컨테이너 작업 공간의
순번 | 입력 인수 | 설명 | 비고 |
---|---|---|---|
1 | debug |
AirSim 컨테이너를 디버그 모드로 실행 | sleep infinity |
2 | stop |
배포된 AirSim container 삭제 | - |
3 | auto |
AirSim 컨테이너 작업 공간에 위치하는 Unreal 바이너리 자동 실행 | Unreal 바이너리 폴더의 이름은 반드시 binary 여야 함 |
4 | *.sh |
AirSim 컨테이너 작업 공간의 scripts 경로 내에 위치한 사용자 정의 스크립트 실행 |
Bash 스크립트여야 하며, 실행 권한이 있어야 한다(chmod +x ). |
scripts/run.sh ros2 <argument(s)>
- 해당 입력 인수는 ROS2 Galactic에 대한 것이다.
- 사용자는 ROS2 패키지를 빌드하고 ROS2 Topic을 확인하는데 컨테이너를 활용할 수 있다.
- 사용자는 모든 ROS2 Workspace 내에 위치한 패키지를 빌드하거나, 특정 ROS2 Workspace 내의 패키지를 빌드할 수 있다.
- 예를 들어, 사용자가 ROS2 작업 공간 내
ros_ws_1
와ros_ws_3
ROS2 Workspace 내의 패키지들만을 빌드하는 경우...- ROS2 컨테이너 작업 공간 기본 값:
~/Documents/A4VAI-SITL/ROS2
- 실행 명령어:
scripts/run.sh ros2 build ros_ws_1 ros_ws_3
- ROS2 컨테이너 작업 공간 기본 값:
- 예를 들어, 사용자가 ROS2 작업 공간 내
-
ros2
컨테이너는 ROS2 컨테이너 작업 공간에 배치된 사용자 정의 스크립트의 실행을 지원한다.- 예시로, 사용자가 ROS2 컨테이너 작업 공간의
scripts
경로 내에test.sh
스크립트를 배치했을 경우...- 실행 명령어:
scripts/run.sh ros2 test.sh
- 실행 명령어:
- 예시로, 사용자가 ROS2 컨테이너 작업 공간의
순번 | 입력 인수 | 설명 | 비고 |
---|---|---|---|
1 | debug |
ROS2 컨테이너를 디버그 모드로 실행 | sleep infinity |
2 | stop |
배포된 ROS2 컨테이너 삭제 | - |
3 | build |
ROS2 workspace(들) 내의 ROS2 패키지 빌드 | 추가 입력 인수 선택지: 빌드 대상 ROS2 Workspace(들) |
4 | *.sh |
ROS2 컨테이너 작업 공간의 scripts 경로 내에 위치한 사용자 정의 스크립트 실행 |
Bash 스크립트여야 하며, 실행 권한이 있어야 한다(chmod +x ). |
scripts/run.sh qgc <argument(s)>
- 해당 입력 인수는 QGroundControl에 대한 것이다.
- 사용자는 컨테이너에 내장된 QGroundControl을 실행할 수 있다.
순번 | 입력 인수 | 설명 | 비고 |
---|---|---|---|
1 | debug |
QGroundControl 컨테이너를 디버그 모드로 실행 | sleep infinity |
2 | stop |
배포된 QGroundControl container 제거 | - |
3 | run |
QGroundControl 실행 | Name of the Unreal binary directory must be binary
|