diff --git a/README.md b/README.md index 1a24f66..cd11bfe 100644 --- a/README.md +++ b/README.md @@ -123,17 +123,17 @@ Well, here is the output of the command: ```bash Primary supported modes (with aliases): - px4_v1_14_0_cyphal_quadcopter,cq | Cyphal PX4 v1.14-beta Quadrotor x (4001) - px4_v1_14_0_cyphal_quadplane_vtol,csv | Cyphal PX4 v1.14-beta Standard VTOL (13000) - dronecan_quadrotor,dq | DroneCAN PX4 v1.14-beta Quadrotor (4001) - dronecan_vtol_v1_14_0,dv | DroneCAN PX4 v1.14-beta Standard VTOL (13000) - dronecan_vtol_v1_12_1,dvo | DroneCAN PX4 v1.12 vtol 13070 + px4_v1_14_0_cyphal_quadcopter,cq | Cyphal PX4 v1.14-beta Quadrotor x (4001) + px4_v1_14_0_cyphal_quadplane_vtol,csv | Cyphal PX4 v1.14-beta Standard VTOL (13000) + px4_v1_14_0_dronecan_quadrotor,dq | DroneCAN PX4 v1.14-beta Quadrotor (4001) + px4_v1_14_0_beta_dronecan_vtol,dv | DroneCAN PX4 v1.14-beta Standard VTOL (13000) + px4_v1_12_1_dronecan_vtol,dvo | DroneCAN PX4 v1.12 vtol 13070 Other modes: - sitl_inno_vtol | MAVLink PX4 v1.12 vtol 13070 - sitl_flight_goggles | MAVLink PX4 v1.12 Quadrotor (4001) - cyphal_and_dronecan | 2 CAN AP v4.4.0 Copter - px4_v1_14_0_cyphal_octorotor,co | Cyphal PX4 v1.14-beta Octorotor Coaxial (12001) + sitl_inno_vtol | MAVLink PX4 v1.12 vtol 13070 + sitl_flight_goggles | MAVLink PX4 v1.12 Quadrotor (4001) + cyphal_and_dronecan | 2 CAN AP v4.4.0 Copter + px4_v1_14_0_cyphal_octorotor,co | Cyphal PX4 v1.14-beta Octorotor Coaxial (12001) ``` diff --git a/scripts/docker.sh b/scripts/docker.sh index 2776833..18458f1 100755 --- a/scripts/docker.sh +++ b/scripts/docker.sh @@ -13,19 +13,19 @@ Options: Supported modes (with aliases): ------------------------------------------------------------------------------- - Command | Protocol Autopilot SW Airframe + Command | Protocol Autopilot SW Airframe ------------------------------------------------------------------------------- - px4_v1_14_0_cyphal_quadcopter,cq | Cyphal PX4 v1.14-beta Quadrotor x (4001) + px4_v1_14_0_cyphal_quadcopter,cq | Cyphal PX4 v1.14-beta Quadrotor x (4001) px4_v1_14_0_cyphal_quadplane_vtol,csv | Cyphal PX4 v1.14-beta Standard VTOL (13000) px4_v1_14_0_cyphal_octoplane_vtol,cv8 | Cyphal PX4 v1.14-beta VTOL 8 motors (13050) - dronecan_quadrotor,dq | DroneCAN PX4 v1.14-beta Quadrotor (4001) - dronecan_vtol_v1_14_0,dv | DroneCAN PX4 v1.14-beta Standard VTOL (13000) - dronecan_vtol_v1_12_1,dvo | DroneCAN PX4 v1.12 vtol 13070 + px4_v1_14_0_dronecan_quadrotor,dq | DroneCAN PX4 v1.14-beta Quadrotor (4001) + px4_v1_14_0_beta_dronecan_vtol,dv | DroneCAN PX4 v1.14-beta Standard VTOL (13000) + px4_v1_12_1_dronecan_vtol,dvo | DroneCAN PX4 v1.12 vtol 13070 ------------------------------------------------------------------------------- - px4_v1_14_0_cyphal_octorotor,co | Cyphal PX4 v1.14-beta Octorotor Coaxial (12001) - sitl_inno_vtol | MAVLink PX4 v1.12 vtol 13070 - sitl_flight_goggles | MAVLink PX4 v1.12 Quadrotor (4001) - cyphal_and_dronecan | 2 CAN AP v4.4.0 Copter + px4_v1_14_0_cyphal_octorotor,co | Cyphal PX4 v1.14-beta Octorotor Coaxial (12001) + sitl_inno_vtol | MAVLink PX4 v1.12 vtol 13070 + sitl_flight_goggles | MAVLink PX4 v1.12 Quadrotor (4001) + cyphal_and_dronecan | 2 CAN AP v4.4.0 Copter ------------------------------------------------------------------------------- Commands (with aliases): @@ -138,173 +138,131 @@ setup_cyphal_and_dronecan_hitl_config() { echo "- CYPHAL_DEV_PATH_SYMLINK is" $CYPHAL_DEV_PATH_SYMLINK } -build_docker_image() { +docker_build_image() { docker build -t $IMAGE_NAME .. } -pull_docker_image() { +docker_pull_image() { docker pull $IMAGE_NAME } -push_docker_image() { +docker_push_image() { docker push $IMAGE_NAME } -dronecan_vtol_v1_12_1() { - kill_all_related_containers - setup_dronecan_hitl_config - slcan_checker& - vehicle="px4_v1_12_1_dronecan_vtol" - if [[ $OPTIONS == "--force" ]]; then - ${REPOSITORY_DIR}/scripts/configurator.py ${REPOSITORY_DIR}/configs/vehicles/${vehicle}.yaml - fi - docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh ${vehicle} -} - -dronecan_vtol_v1_14_0() { - kill_all_related_containers - setup_dronecan_hitl_config - slcan_checker& - vehicle="px4_v1_14_0_beta_dronecan_vtol" - if [[ $OPTIONS == "--force" ]]; then - ${REPOSITORY_DIR}/scripts/configurator.py ${REPOSITORY_DIR}/configs/vehicles/${vehicle}.yaml - fi - docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh ${vehicle} -} - -px4_v1_14_0_dronecan_quadrotor() { - kill_all_related_containers - setup_dronecan_hitl_config - slcan_checker& - vehicle="px4_v1_14_0_dronecan_quadrotor" - if [[ $OPTIONS == "--force" ]]; then - ${REPOSITORY_DIR}/scripts/configurator.py ${REPOSITORY_DIR}/configs/vehicles/${vehicle}.yaml - fi - docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh ${vehicle} -} - -sitl_inno_vtol() { - kill_all_related_containers - setup_mavlink_sitl_config - docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh sitl_inno_vtol +docker_countainer_run_interactive() { + setup_cyphal_hitl_config + docker container run --rm -it $DOCKER_FLAGS $IMAGE_NAME /bin/bash } -sitl_flight_goggles() { - kill_all_related_containers +docker_container_run_test() { setup_mavlink_sitl_config - docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh sitl_flight_goggles + docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./uav_dynamics/uav_hitl_dynamics/catkin_test.sh --docker } -px4_v1_14_0_cyphal_quadcopter() { - kill_all_related_containers - setup_cyphal_hitl_config - slcan_checker& - vehicle="px4_v1_14_0_cyphal_quadcopter" - if [[ $OPTIONS == "--force" ]]; then - ${REPOSITORY_DIR}/scripts/configurator.py ${REPOSITORY_DIR}/configs/vehicles/${vehicle}.yaml +docker_kill_all_related_containers() { + containers=$(docker ps -q --filter ancestor=$IMAGE_NAME) + if [ ! -z "${containers}" ]; then + printf "Killing the following containers: " + docker kill $containers fi - docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh ${vehicle} } -px4_v1_14_0_cyphal_octorotor() { - kill_all_related_containers - setup_cyphal_hitl_config + +docker_container_run_dronecan() { + docker_kill_all_related_containers + setup_dronecan_hitl_config slcan_checker& - vehicle="px4_v1_14_0_cyphal_octorotor" if [[ $OPTIONS == "--force" ]]; then ${REPOSITORY_DIR}/scripts/configurator.py ${REPOSITORY_DIR}/configs/vehicles/${vehicle}.yaml fi docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh ${vehicle} } -px4_v1_14_0_cyphal_quadplane_vtol() { - kill_all_related_containers +docker_container_run_cyphal() { + docker_kill_all_related_containers setup_cyphal_hitl_config slcan_checker& - vehicle="px4_v1_14_0_cyphal_quadplane_vtol" if [[ $OPTIONS == "--force" ]]; then ${REPOSITORY_DIR}/scripts/configurator.py ${REPOSITORY_DIR}/configs/vehicles/${vehicle}.yaml fi docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh ${vehicle} } -px4_v1_14_0_cyphal_octoplane_vtol() { - kill_all_related_containers - setup_cyphal_hitl_config - slcan_checker& - vehicle="px4_v1_14_0_cyphal_octoplane_vtol" - if [[ $OPTIONS == "--force" ]]; then - ${REPOSITORY_DIR}/scripts/configurator.py ${REPOSITORY_DIR}/configs/vehicles/${vehicle}.yaml - fi +docker_container_run_mavlink() { + docker_kill_all_related_containers + setup_mavlink_sitl_config docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh ${vehicle} } -cyphal_and_dronecan_inno_vtol() { +docker_container_run_cyphal_and_dronecan_inno_vtol() { echo "Cyphal and DroneCAN mode is a special mode that uses:" echo "- slcan0 based on the 1-st sniffer for DroneCAN communication (sensors)" echo "- slcan1 based on the 2-nd sniffer for Cyphal communication (Actuators only)" - kill_all_related_containers + docker_kill_all_related_containers setup_cyphal_and_dronecan_hitl_config slcan_checker& docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./scripts/run_sim.sh cyphal_and_dronecan_inno_vtol } -run_interactive() { - setup_cyphal_hitl_config - docker container run --rm -it $DOCKER_FLAGS $IMAGE_NAME /bin/bash -} - -kill_all_related_containers() { - containers=$(docker ps -q --filter ancestor=$IMAGE_NAME) - if [ ! -z "${containers}" ]; then - printf "Killing the following containers: " - docker kill $containers - fi -} - -test() { - setup_mavlink_sitl_config - docker container run --rm $DOCKER_FLAGS $IMAGE_NAME ./uav_dynamics/uav_hitl_dynamics/catkin_test.sh --docker -} - ## Start from here set -e cd "$(dirname "$0")" setup_image_name_and_version OPTIONS=$2 +# Common commands: if [ "$1" = "build" ] || [ "$1" = "b" ]; then - build_docker_image + docker_build_image elif [ "$1" = "pull" ]; then - pull_docker_image + docker_pull_image elif [ "$1" = "push" ]; then - push_docker_image -elif [ "$1" = "dronecan_vtol_v1_12_1" ] || [ "$1" = "dvo" ]; then - dronecan_vtol_v1_12_1 -elif [ "$1" = "dronecan_vtol_v1_14_0" ] || [ "$1" = "dv" ]; then - dronecan_vtol_v1_14_0 -elif [ "$1" = "dronecan_quadrotor" ] || [ "$1" = "dq" ]; then - px4_v1_14_0_dronecan_quadrotor -elif [ "$1" = "sitl_inno_vtol" ]; then - sitl_inno_vtol -elif [ "$1" = "sitl_flight_goggles" ]; then - sitl_flight_goggles + docker_push_image +elif [ "$1" = "interactive" ] || [ "$1" = "i" ]; then + docker_countainer_run_interactive +elif [ "$1" = "test" ]; then + docker_container_run_test +elif [ "$1" = "kill" ]; then + docker_kill_all_related_containers + +# DroneCAN commands: +elif [ "$1" = "px4_v1_12_1_dronecan_vtol" ] || [ "$1" = "dvo" ]; then + vehicle="px4_v1_12_1_dronecan_vtol" + docker_container_run_dronecan +elif [ "$1" = "px4_v1_14_0_beta_dronecan_vtol" ] || [ "$1" = "dv" ]; then + vehicle="px4_v1_14_0_beta_dronecan_vtol" + docker_container_run_dronecan +elif [ "$1" = "px4_v1_14_0_dronecan_quadrotor" ] || [ "$1" = "dq" ]; then + vehicle="px4_v1_14_0_dronecan_quadrotor" + docker_container_run_dronecan + +# Cyphal commands: elif [ "$1" = "px4_v1_14_0_cyphal_quadcopter" ] || [ "$1" = "cq" ]; then - px4_v1_14_0_cyphal_quadcopter + vehicle="px4_v1_14_0_cyphal_quadcopter" + docker_container_run_cyphal elif [ "$1" = "px4_v1_14_0_cyphal_octorotor" ] || [ "$1" = "co" ]; then - px4_v1_14_0_cyphal_octorotor + vehicle="px4_v1_14_0_cyphal_octorotor" + docker_container_run_cyphal elif [ "$1" = "px4_v1_14_0_cyphal_quadplane_vtol" ] || [ "$1" = "csv" ]; then - px4_v1_14_0_cyphal_quadplane_vtol + vehicle="px4_v1_14_0_cyphal_quadplane_vtol" + docker_container_run_cyphal elif [ "$1" = "px4_v1_14_0_cyphal_octoplane_vtol" ] || [ "$1" = "cv8" ]; then - px4_v1_14_0_cyphal_octoplane_vtol + vehicle="px4_v1_14_0_cyphal_octoplane_vtol" + docker_container_run_cyphal + +# MAVLink commands: +elif [ "$1" = "sitl_inno_vtol" ]; then + vehicle="sitl_inno_vtol" + docker_container_run_mavlink +elif [ "$1" = "sitl_flight_goggles" ]; then + vehicle="sitl_flight_goggles" + docker_container_run_mavlink + +# DroneCAN + Cyphal commands: elif [ "$1" = "cyphal_and_dronecan" ]; then - cyphal_and_dronecan_inno_vtol -elif [ "$1" = "interactive" ] || [ "$1" = "i" ]; then - run_interactive -elif [ "$1" = "test" ]; then - test -elif [ "$1" = "kill" ]; then - kill_all_related_containers + docker_container_run_cyphal_and_dronecan_inno_vtol + +# Help: else print_help fi