From 79ec41124f5e5f727853910f5b93d78ff4851a19 Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Mon, 13 Nov 2023 08:41:37 +0100 Subject: [PATCH] updated examples --- .../tmux/one_drone/config/custom_config.yaml | 6 +- .../tmux/one_drone/session.yml | 7 +- .../config/custom_config.yaml | 7 +- .../tmux/one_drone_3dlidar/session.yml | 7 +- .../one_drone_vio/config/custom_config.yaml | 25 + .../one_drone_vio/config/network_config.yaml | 15 + .../one_drone_vio/config/world_config.yaml | 34 + .../tmux/one_drone_vio/kill.sh | 14 + .../tmux/one_drone_vio/layout.json | 115 ++ .../tmux/one_drone_vio/session.yml | 60 ++ .../tmux/one_drone_vio/start.sh | 27 + .../three_drones/config/custom_config.yaml | 25 + .../three_drones/config/network_config.yaml | 17 + .../tmux/three_drones/config/rviz.rviz | 997 ++++++++++++++++++ .../three_drones/config/tf_connector.yaml | 23 + .../three_drones/config/world_config.yaml | 34 + .../tmux/three_drones/kill.sh | 14 + .../tmux/three_drones/layout.json | 105 ++ .../tmux/three_drones/session.yml | 69 ++ .../tmux/three_drones/start.sh | 27 + 20 files changed, 1611 insertions(+), 17 deletions(-) create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/custom_config.yaml create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/network_config.yaml create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/world_config.yaml create mode 100755 ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/kill.sh create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/layout.json create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/session.yml create mode 100755 ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/start.sh create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/custom_config.yaml create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/network_config.yaml create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/rviz.rviz create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/tf_connector.yaml create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/world_config.yaml create mode 100755 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/kill.sh create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/layout.json create mode 100644 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/session.yml create mode 100755 ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/start.sh diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone/config/custom_config.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone/config/custom_config.yaml index 9fce17b..008985b 100644 --- a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone/config/custom_config.yaml +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone/config/custom_config.yaml @@ -8,7 +8,7 @@ mrs_uav_managers: "gps_baro", ] - initial_state_estimator: "gps_baro" # will be used as the first state estimator + initial_state_estimator: "gps_garmin" # will be used as the first state estimator agl_height_estimator: "garmin_agl" # only slightly filtered height for checking min height (not used in control feedback) uav_manager: @@ -20,6 +20,6 @@ mrs_uav_managers: tracker: "LandoffTracker" after_takeoff: - controller: "MpcController" - # controller: "Se3Controller" + controller: "MpcController" # more robust + # controller: "Se3Controller" # more precise tracker: "MpcTracker" diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone/session.yml b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone/session.yml index cc87347..04ccd98 100644 --- a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone/session.yml +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone/session.yml @@ -16,15 +16,12 @@ windows: layout: tiled panes: - waitForRos; roslaunch mrs_uav_gazebo_simulation simulation.launch world_name:=grass_plane gui:=true + - waitForGazebo; rosservice call /mrs_drone_spawner/spawn "1 $UAV_TYPE --enable-rangefinder" - waitForControl; gz camera -c gzclient_camera -f $UAV_NAME; history -s gz camera -c gzclient_camera -f $UAV_NAME - status: layout: tiled panes: - waitForHw; roslaunch mrs_uav_status status.launch - - spawn: - layout: tiled - panes: - - waitForGazebo; rosservice call /mrs_drone_spawner/spawn "1 $UAV_TYPE --enable-rangefinder --enable-ground-truth" - hw_api: layout: tiled panes: @@ -51,7 +48,7 @@ windows: panes: - waitForControl; roslaunch mrs_uav_core rviz.launch - waitForControl; roslaunch mrs_rviz_plugins load_robot.launch - - waitForTime; waitForControl; roslaunch mrs_rviz_plugins rviz_interface.launch + - waitForControl; roslaunch mrs_rviz_plugins rviz_interface.launch - layout: layout: tiled panes: diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_3dlidar/config/custom_config.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_3dlidar/config/custom_config.yaml index 249e548..008985b 100644 --- a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_3dlidar/config/custom_config.yaml +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_3dlidar/config/custom_config.yaml @@ -6,10 +6,9 @@ mrs_uav_managers: state_estimators: [ "gps_garmin", "gps_baro", - "ground_truth", ] - initial_state_estimator: "gps_baro" # will be used as the first state estimator + initial_state_estimator: "gps_garmin" # will be used as the first state estimator agl_height_estimator: "garmin_agl" # only slightly filtered height for checking min height (not used in control feedback) uav_manager: @@ -21,6 +20,6 @@ mrs_uav_managers: tracker: "LandoffTracker" after_takeoff: - controller: "MpcController" - # controller: "Se3Controller" + controller: "MpcController" # more robust + # controller: "Se3Controller" # more precise tracker: "MpcTracker" diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_3dlidar/session.yml b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_3dlidar/session.yml index 68f2571..67ddffc 100644 --- a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_3dlidar/session.yml +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_3dlidar/session.yml @@ -16,15 +16,12 @@ windows: layout: tiled panes: - waitForRos; roslaunch mrs_uav_gazebo_simulation simulation.launch world_name:=forest gui:=true + - waitForGazebo; rosservice call /mrs_drone_spawner/spawn "1 $UAV_TYPE --enable-rangefinder --enable-ouster --ouster-model OS0-128 --use-gpu-ray --horizontal-samples 128 --rotation-freq 10" - waitForControl; gz camera -c gzclient_camera -f $UAV_NAME; history -s gz camera -c gzclient_camera -f $UAV_NAME - status: layout: tiled panes: - waitForHw; roslaunch mrs_uav_status status.launch - - spawn: - layout: tiled - panes: - - waitForGazebo; rosservice call /mrs_drone_spawner/spawn "1 $UAV_TYPE --enable-rangefinder --enable-ground-truth --enable-ouster --ouster-model OS0-128 --use-gpu-ray --horizontal-samples 128 --rotation-freq 10" - hw_api: layout: tiled panes: @@ -51,7 +48,7 @@ windows: panes: - waitForControl; roslaunch mrs_uav_core rviz.launch - waitForControl; roslaunch mrs_rviz_plugins load_robot.launch - - waitForTime; waitForControl; roslaunch mrs_rviz_plugins rviz_interface.launch + - waitForControl; roslaunch mrs_rviz_plugins rviz_interface.launch - layout: layout: tiled panes: diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/custom_config.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/custom_config.yaml new file mode 100644 index 0000000..008985b --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/custom_config.yaml @@ -0,0 +1,25 @@ +mrs_uav_managers: + + estimation_manager: + + # loaded state estimator plugins + state_estimators: [ + "gps_garmin", + "gps_baro", + ] + + initial_state_estimator: "gps_garmin" # will be used as the first state estimator + agl_height_estimator: "garmin_agl" # only slightly filtered height for checking min height (not used in control feedback) + + uav_manager: + + takeoff: + + during_takeoff: + controller: "MpcController" + tracker: "LandoffTracker" + + after_takeoff: + controller: "MpcController" # more robust + # controller: "Se3Controller" # more precise + tracker: "MpcTracker" diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/network_config.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/network_config.yaml new file mode 100644 index 0000000..08f370d --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/network_config.yaml @@ -0,0 +1,15 @@ +# 1. This list is used by NimbroNetwork for mutual communication of the UAVs +# The names of the robots have to match hostnames described in /etc/hosts. +# +# 2. This list is used by MpcTracker for mutual collision avoidance of the UAVs. +# The names should match the true "UAV_NAMES" (the topic prefixes). +# +# network_config:=~/config/network_config.yaml +# +# to the core.launch and nimbro.launch. + +network: + + robot_names: [ + uav1, + ] diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/world_config.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/world_config.yaml new file mode 100644 index 0000000..9b55067 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/config/world_config.yaml @@ -0,0 +1,34 @@ +world_origin: + + units: "LATLON" # {"UTM, "LATLON"} + + origin_x: 47.397743 + origin_y: 8.545594 + +safety_area: + + enabled: true + + horizontal: + + # the frame of reference in which the points are expressed + frame_name: "world_origin" + + # polygon + # + # x, y [m] for any frame_name except latlon_origin + # x = latitude, y = longitude [deg] for frame_name=="latlon_origin" + points: [ + -50, -50, + 50, -50, + 50, 50, + -50, 50, + ] + + vertical: + + # the frame of reference in which the max&min z is expressed + frame_name: "world_origin" + + max_z: 15.0 + min_z: 0.5 diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/kill.sh b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/kill.sh new file mode 100755 index 0000000..28d50b0 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/kill.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Absolute path to this script. /home/user/bin/foo.sh +SCRIPT=$(readlink -f $0) +# Absolute path this script is in. /home/user/bin +SCRIPTPATH=`dirname $SCRIPT` +cd "$SCRIPTPATH" + +export TMUX_SESSION_NAME=simulation +export TMUX_SOCKET_NAME=mrs + +# just attach to the session +tmux -L $TMUX_SOCKET_NAME split-window -t $TMUX_SESSION_NAME +tmux -L $TMUX_SOCKET_NAME send-keys -t $TMUX_SESSION_NAME "sleep 1; tmux list-panes -s -F \"#{pane_pid} #{pane_current_command}\" | grep -v tmux | cut -d\" \" -f1 | while read in; do killp \$in; done; exit" ENTER diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/layout.json b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/layout.json new file mode 100644 index 0000000..34fdbb2 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/layout.json @@ -0,0 +1,115 @@ +[ +{ + "border": "normal", + "floating": "auto_off", + "fullscreen_mode": 0, + "layout": "splith", + "percent": 0.25, + "type": "con", + "nodes": [ + { + "border": "normal", + "floating": "auto_off", + "layout": "splith", + "percent": 1, + "type": "con", + "nodes": [ + { + "border": "normal", + "floating": "auto_off", + "layout": "splitv", + "percent": 0.5, + "type": "con", + "nodes": [ + { + "border": "pixel", + "current_border_width": 3, + "floating": "auto_off", + "geometry": { + "height": 460, + "width": 724, + "x": 0, + "y": 0 + }, + "name": "Gazebo", + "percent": 0.5, + "swallows": [ + { + "instance": "^gazebo$" + } + ], + "type": "con" + }, + { + "border": "pixel", + "current_border_width": 3, + "floating": "auto_off", + "geometry": { + "height": 460, + "width": 724, + "x": 0, + "y": 0 + }, + "name": "rqt_image_view__ImageView - rqt", + "percent": 0.5, + "swallows": [ + { + "instance": "^rqt_image_view$" + } + ], + "type": "con" + } + ] + }, + { + "border": "normal", + "floating": "auto_off", + "layout": "splitv", + "percent": 0.5, + "type": "con", + "nodes": [ + { + "border": "pixel", + "current_border_width": 3, + "floating": "auto_off", + "geometry": { + "height": 460, + "width": 724, + "x": 0, + "y": 0 + }, + "name": "default.rviz* - RViz", + "percent": 0.5, + "swallows": [ + { + "instance": "^rviz$" + } + ], + "type": "con" + }, + { + "border": "pixel", + "current_border_width": 3, + "floating": "auto_off", + "geometry": { + "height": 460, + "width": 724, + "x": 0, + "y": 0 + }, + "name": "runVim session.yml", + "percent": 0.5, + "swallows": [ + { + "instance": "^urxvt$" + } + ], + "type": "con" + } + ] + } + ] + } + ] +} +] diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/session.yml b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/session.yml new file mode 100644 index 0000000..e4053bf --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/session.yml @@ -0,0 +1,60 @@ +# do not modify these +root: ./ +name: simulation +socket_name: mrs +attach: false +tmux_options: -f /etc/ctu-mrs/tmux.conf +# you can modify these +pre_window: export UAV_NAME=uav1; export RUN_TYPE=simulation; export UAV_TYPE=f330 +startup_window: status +windows: + - roscore: + layout: tiled + panes: + - roscore + - gazebo: + layout: tiled + panes: + - waitForRos; roslaunch mrs_uav_gazebo_simulation simulation.launch world_name:=mrs_city gui:=true + - waitForGazebo; rosservice call /mrs_drone_spawner/spawn "1 $UAV_TYPE --enable-rangefinder --enable-vio" + - waitForControl; gz camera -c gzclient_camera -f $UAV_NAME; history -s gz camera -c gzclient_camera -f $UAV_NAME + - status: + layout: tiled + panes: + - waitForHw; roslaunch mrs_uav_status status.launch + - vio_data: + layout: tiled + panes: + - waitForHw; rostopic echo /$UAV_NAME/vio/imu + - waitForHw; rosrun rqt_image_view rqt_image_view /$UAV_NAME/vio/camera/image_raw + - hw_api: + layout: tiled + panes: + - waitForTime; roslaunch mrs_uav_px4_api api.launch + - core: + layout: tiled + panes: + - waitForHw; roslaunch mrs_uav_core core.launch + platform_config:=`rospack find mrs_uav_gazebo_simulation`/config/mrs_uav_system/$UAV_TYPE.yaml + custom_config:=./config/custom_config.yaml + world_config:=./config/world_config.yaml + network_config:=./config/network_config.yaml + - takeoff: + layout: tiled + panes: + - waitForHw; roslaunch mrs_uav_autostart automatic_start.launch + - 'waitForControl; rosservice call /$UAV_NAME/hw_api/arming 1; sleep 2; rosservice call /$UAV_NAME/hw_api/offboard' + - goto: + layout: tiled + panes: + - 'history -s rosservice call /$UAV_NAME/control_manager/goto \"goal: \[0.0, 10.0, 1.5, 0.0\]\"' + - rviz: + layout: tiled + panes: + - waitForControl; roslaunch mrs_uav_core rviz.launch + - waitForControl; roslaunch mrs_rviz_plugins load_robot.launch + - waitForControl; roslaunch mrs_rviz_plugins rviz_interface.launch + - layout: + layout: tiled + panes: + - waitForControl; sleep 3; ~/.i3/layout_manager.sh ./layout.json diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/start.sh b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/start.sh new file mode 100755 index 0000000..5bb2275 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/one_drone_vio/start.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Absolute path to this script. /home/user/bin/foo.sh +SCRIPT=$(readlink -f $0) +# Absolute path this script is in. /home/user/bin +SCRIPTPATH=`dirname $SCRIPT` +cd "$SCRIPTPATH" + +export TMUX_SESSION_NAME=simulation +export TMUX_SOCKET_NAME=mrs + +# start tmuxinator +tmuxinator start -p ./session.yml + +# if we are not in tmux +if [ -z $TMUX ]; then + + # just attach to the session + tmux -L $TMUX_SOCKET_NAME a -t $TMUX_SESSION_NAME + +# if we are in tmux +else + + # switch to the newly-started session + tmux detach-client -E "tmux -L $TMUX_SOCKET_NAME a -t $TMUX_SESSION_NAME" + +fi diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/custom_config.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/custom_config.yaml new file mode 100644 index 0000000..008985b --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/custom_config.yaml @@ -0,0 +1,25 @@ +mrs_uav_managers: + + estimation_manager: + + # loaded state estimator plugins + state_estimators: [ + "gps_garmin", + "gps_baro", + ] + + initial_state_estimator: "gps_garmin" # will be used as the first state estimator + agl_height_estimator: "garmin_agl" # only slightly filtered height for checking min height (not used in control feedback) + + uav_manager: + + takeoff: + + during_takeoff: + controller: "MpcController" + tracker: "LandoffTracker" + + after_takeoff: + controller: "MpcController" # more robust + # controller: "Se3Controller" # more precise + tracker: "MpcTracker" diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/network_config.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/network_config.yaml new file mode 100644 index 0000000..e218803 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/network_config.yaml @@ -0,0 +1,17 @@ +# 1. This list is used by NimbroNetwork for mutual communication of the UAVs +# The names of the robots have to match hostnames described in /etc/hosts. +# +# 2. This list is used by MpcTracker for mutual collision avoidance of the UAVs. +# The names should match the true "UAV_NAMES" (the topic prefixes). +# +# network_config:=~/config/network_config.yaml +# +# to the core.launch and nimbro.launch. + +network: + + robot_names: [ + uav1, + uav2, + uav3, + ] diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/rviz.rviz b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/rviz.rviz new file mode 100644 index 0000000..06451ed --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/rviz.rviz @@ -0,0 +1,997 @@ +Panels: + - Class: rviz/Displays + Help Height: 0 + Name: Displays + Property Tree Widget: + Expanded: + - /TF1/Frames1 + - /TF1/Tree1 + Splitter Ratio: 0.6970587968826294 + Tree Height: 361 + - Class: rviz/Selection + Name: Selection + - Class: rviz/Tool Properties + Expanded: + - /2D Pose Estimate1 + - /2D Nav Goal1 + - /Publish Point1 + - /Plan path1 + - /Custom Goal1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 + - Class: rviz/Time + Name: Time + SyncMode: 0 + SyncSource: "" +Preferences: + PromptSaveOnExit: true +Toolbars: + toolButtonStyle: 2 +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.20000000298023224 + Cell Size: 1 + Class: rviz/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 100 + Reference Frame: + Value: true + - Alpha: 0.5 + Cell Size: 5 + Class: rviz/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 100 + Reference Frame: + Value: true + - Class: rviz/TF + Enabled: false + Filter (blacklist): "" + Filter (whitelist): "" + Frame Timeout: 15 + Frames: + All Enabled: false + Marker Alpha: 1 + Marker Scale: 1 + Name: TF + Show Arrows: true + Show Axes: true + Show Names: true + Tree: + {} + Update Interval: 0 + Value: false + - Class: rviz/Group + Displays: + - Class: rviz/Group + Displays: + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav1/trajectory_generation/markers/final + Name: final + Namespaces: + {} + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav1/trajectory_generation/markers/original + Name: original + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: TrajectoryGeneration + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 0; 0; 255 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: MpcPredictionTrajectory + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav1/control_manager/mpc_tracker/predicted_trajectory_debugging + Unreliable: true + Value: true + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.10000000149011612 + Axes Radius: 0.05000000074505806 + Class: rviz/PoseArray + Color: 255; 25; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: MpcInnerReference + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Axes + Topic: /uav1/control_manager/mpc_tracker/mpc_reference_debugging + Unreliable: true + Value: true + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 255; 25; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: Poses + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav1/control_manager/mpc_tracker/trajectory_processed/poses + Unreliable: true + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav1/control_manager/mpc_tracker/trajectory_processed/markers + Name: Markers + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: PostprocessedTrajectory + Enabled: true + Name: MpcTracker + - Class: rviz/Group + Displays: + - Angle Tolerance: 0.009999999776482582 + Class: rviz/Odometry + Covariance: + Orientation: + Alpha: 0.5 + Color: 255; 255; 127 + Color Style: Unique + Frame: Local + Offset: 1 + Scale: 1 + Value: true + Position: + Alpha: 0.30000001192092896 + Color: 204; 51; 204 + Scale: 1 + Value: true + Value: false + Enabled: true + Keep: 1 + Name: odom_main + Position Tolerance: 0.009999999776482582 + Queue Size: 10 + Shape: + Alpha: 1 + Axes Length: 0.5 + Axes Radius: 0.10000000149011612 + Color: 0; 25; 255 + Head Length: 1 + Head Radius: 0.30000001192092896 + Shaft Length: 1 + Shaft Radius: 0.05000000074505806 + Value: Axes + Topic: /uav1/estimation_manager/odom_main + Unreliable: true + Value: true + Enabled: true + Name: EstimationManager + - Class: rviz/Group + Displays: + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav1/control_manager/safety_area_markers + Name: SafetyhArea + Namespaces: + "": true + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav1/control_manager/safety_area_coordinates_markers + Name: SafetyAreaCoordinates + Namespaces: + "": true + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav1/control_manager/disturbances_markers + Name: Disturbances + Namespaces: + control_manager: true + Queue Size: 100 + Value: true + - Angle Tolerance: 0.009999999776482582 + Class: rviz/Odometry + Covariance: + Orientation: + Alpha: 0.5 + Color: 255; 255; 127 + Color Style: Unique + Frame: Local + Offset: 1 + Scale: 1 + Value: true + Position: + Alpha: 0.30000001192092896 + Color: 204; 51; 204 + Scale: 1 + Value: true + Value: true + Enabled: true + Keep: 1 + Name: control_reference + Position Tolerance: 0.009999999776482582 + Queue Size: 10 + Shape: + Alpha: 1 + Axes Length: 1 + Axes Radius: 0.10000000149011612 + Color: 255; 25; 0 + Head Length: 0.30000001192092896 + Head Radius: 0.10000000149011612 + Shaft Length: 1 + Shaft Radius: 0.05000000074505806 + Value: Axes + Topic: /uav1/control_manager/control_reference + Unreliable: true + Value: true + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 0; 170; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: Poses + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav1/control_manager/trajectory_original/poses + Unreliable: true + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav1/control_manager/trajectory_original/markers + Name: Markers + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: OriginalTrajectory + - Alpha: 0.10000000149011612 + Class: mrs_rviz_plugins/Bumper + Collision alpha: 0.5 + Collision color: 255; 0; 0 + Color: 204; 51; 204 + Colorize collisions: true + Display mode: sensor types + Enabled: true + History Length: 1 + Horizontal collision threshold: 1 + Name: Bumper + Queue Size: 10 + Show sectors with no data: false + Show undetected obstacles: true + Topic: /uav1/bumper/obstacle_sectors + Unreliable: true + Value: true + Vertical collision threshold: 1 + Enabled: true + Name: ControlManager + - Alpha: 1 + Class: rviz/RobotModel + Collision Enabled: false + Enabled: true + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + uav1/fcu: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav1/fcu/arms: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav1/fcu/props: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav1/fcu/uav_marker: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Name: UAVModel + Robot Description: /uav1/robot_model + TF Prefix: "" + Update Interval: 0 + Value: true + Visual Enabled: true + Enabled: true + Name: uav1 + - Class: rviz/Group + Displays: + - Class: rviz/Group + Displays: + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav2/trajectory_generation/markers/final + Name: final + Namespaces: + {} + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav2/trajectory_generation/markers/original + Name: original + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: TrajectoryGeneration + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 0; 0; 255 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: MpcPredictionTrajectory + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav2/control_manager/mpc_tracker/predicted_trajectory_debugging + Unreliable: true + Value: true + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.10000000149011612 + Axes Radius: 0.05000000074505806 + Class: rviz/PoseArray + Color: 255; 25; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: MpcInnerReference + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Axes + Topic: /uav2/control_manager/mpc_tracker/mpc_reference_debugging + Unreliable: true + Value: true + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 255; 25; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: Poses + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav2/control_manager/mpc_tracker/trajectory_processed/poses + Unreliable: true + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav2/control_manager/mpc_tracker/trajectory_processed/markers + Name: Markers + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: PostprocessedTrajectory + Enabled: true + Name: MpcTracker + - Class: rviz/Group + Displays: + - Angle Tolerance: 0.009999999776482582 + Class: rviz/Odometry + Covariance: + Orientation: + Alpha: 0.5 + Color: 255; 255; 127 + Color Style: Unique + Frame: Local + Offset: 1 + Scale: 1 + Value: true + Position: + Alpha: 0.30000001192092896 + Color: 204; 51; 204 + Scale: 1 + Value: true + Value: false + Enabled: true + Keep: 1 + Name: odom_main + Position Tolerance: 0.009999999776482582 + Queue Size: 10 + Shape: + Alpha: 1 + Axes Length: 0.5 + Axes Radius: 0.10000000149011612 + Color: 0; 25; 255 + Head Length: 1 + Head Radius: 0.30000001192092896 + Shaft Length: 1 + Shaft Radius: 0.05000000074505806 + Value: Axes + Topic: /uav2/estimation_manager/odom_main + Unreliable: true + Value: true + Enabled: true + Name: EstimationManager + - Class: rviz/Group + Displays: + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav2/control_manager/safety_area_markers + Name: SafetyhArea + Namespaces: + "": true + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav2/control_manager/safety_area_coordinates_markers + Name: SafetyAreaCoordinates + Namespaces: + "": true + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav2/control_manager/disturbances_markers + Name: Disturbances + Namespaces: + control_manager: true + Queue Size: 100 + Value: true + - Angle Tolerance: 0.009999999776482582 + Class: rviz/Odometry + Covariance: + Orientation: + Alpha: 0.5 + Color: 255; 255; 127 + Color Style: Unique + Frame: Local + Offset: 1 + Scale: 1 + Value: true + Position: + Alpha: 0.30000001192092896 + Color: 204; 51; 204 + Scale: 1 + Value: true + Value: true + Enabled: true + Keep: 1 + Name: control_reference + Position Tolerance: 0.009999999776482582 + Queue Size: 10 + Shape: + Alpha: 1 + Axes Length: 1 + Axes Radius: 0.10000000149011612 + Color: 255; 25; 0 + Head Length: 0.30000001192092896 + Head Radius: 0.10000000149011612 + Shaft Length: 1 + Shaft Radius: 0.05000000074505806 + Value: Axes + Topic: /uav2/control_manager/control_reference + Unreliable: true + Value: true + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 0; 170; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: Poses + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav2/control_manager/trajectory_original/poses + Unreliable: true + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav2/control_manager/trajectory_original/markers + Name: Markers + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: OriginalTrajectory + - Alpha: 0.10000000149011612 + Class: mrs_rviz_plugins/Bumper + Collision alpha: 0.5 + Collision color: 255; 0; 0 + Color: 204; 51; 204 + Colorize collisions: true + Display mode: sensor types + Enabled: true + History Length: 1 + Horizontal collision threshold: 1 + Name: Bumper + Queue Size: 10 + Show sectors with no data: false + Show undetected obstacles: true + Topic: /uav2/bumper/obstacle_sectors + Unreliable: true + Value: true + Vertical collision threshold: 1 + Enabled: true + Name: ControlManager + - Alpha: 1 + Class: rviz/RobotModel + Collision Enabled: false + Enabled: true + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + uav2/fcu: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav2/fcu/arms: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav2/fcu/props: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav2/fcu/uav_marker: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Name: UAVModel + Robot Description: /uav2/robot_model + TF Prefix: "" + Update Interval: 0 + Value: true + Visual Enabled: true + Enabled: true + Name: uav2 + - Class: rviz/Group + Displays: + - Class: rviz/Group + Displays: + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav3/trajectory_generation/markers/final + Name: final + Namespaces: + {} + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav3/trajectory_generation/markers/original + Name: original + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: TrajectoryGeneration + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 0; 0; 255 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: MpcPredictionTrajectory + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav3/control_manager/mpc_tracker/predicted_trajectory_debugging + Unreliable: true + Value: true + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.10000000149011612 + Axes Radius: 0.05000000074505806 + Class: rviz/PoseArray + Color: 255; 25; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: MpcInnerReference + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Axes + Topic: /uav3/control_manager/mpc_tracker/mpc_reference_debugging + Unreliable: true + Value: true + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 255; 25; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: Poses + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav3/control_manager/mpc_tracker/trajectory_processed/poses + Unreliable: true + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav3/control_manager/mpc_tracker/trajectory_processed/markers + Name: Markers + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: PostprocessedTrajectory + Enabled: true + Name: MpcTracker + - Class: rviz/Group + Displays: + - Angle Tolerance: 0.009999999776482582 + Class: rviz/Odometry + Covariance: + Orientation: + Alpha: 0.5 + Color: 255; 255; 127 + Color Style: Unique + Frame: Local + Offset: 1 + Scale: 1 + Value: true + Position: + Alpha: 0.30000001192092896 + Color: 204; 51; 204 + Scale: 1 + Value: true + Value: false + Enabled: true + Keep: 1 + Name: odom_main + Position Tolerance: 0.009999999776482582 + Queue Size: 10 + Shape: + Alpha: 1 + Axes Length: 0.5 + Axes Radius: 0.10000000149011612 + Color: 0; 25; 255 + Head Length: 1 + Head Radius: 0.30000001192092896 + Shaft Length: 1 + Shaft Radius: 0.05000000074505806 + Value: Axes + Topic: /uav3/estimation_manager/odom_main + Unreliable: true + Value: true + Enabled: true + Name: EstimationManager + - Class: rviz/Group + Displays: + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav3/control_manager/safety_area_markers + Name: SafetyhArea + Namespaces: + "": true + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav3/control_manager/safety_area_coordinates_markers + Name: SafetyAreaCoordinates + Namespaces: + "": true + Queue Size: 100 + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav3/control_manager/disturbances_markers + Name: Disturbances + Namespaces: + control_manager: true + Queue Size: 100 + Value: true + - Angle Tolerance: 0.009999999776482582 + Class: rviz/Odometry + Covariance: + Orientation: + Alpha: 0.5 + Color: 255; 255; 127 + Color Style: Unique + Frame: Local + Offset: 1 + Scale: 1 + Value: true + Position: + Alpha: 0.30000001192092896 + Color: 204; 51; 204 + Scale: 1 + Value: true + Value: true + Enabled: true + Keep: 1 + Name: control_reference + Position Tolerance: 0.009999999776482582 + Queue Size: 10 + Shape: + Alpha: 1 + Axes Length: 1 + Axes Radius: 0.10000000149011612 + Color: 255; 25; 0 + Head Length: 0.30000001192092896 + Head Radius: 0.10000000149011612 + Shaft Length: 1 + Shaft Radius: 0.05000000074505806 + Value: Axes + Topic: /uav3/control_manager/control_reference + Unreliable: true + Value: true + - Class: rviz/Group + Displays: + - Alpha: 1 + Arrow Length: 0.30000001192092896 + Axes Length: 0.30000001192092896 + Axes Radius: 0.009999999776482582 + Class: rviz/PoseArray + Color: 0; 170; 0 + Enabled: true + Head Length: 0.07000000029802322 + Head Radius: 0.029999999329447746 + Name: Poses + Queue Size: 10 + Shaft Length: 0.23000000417232513 + Shaft Radius: 0.009999999776482582 + Shape: Arrow (Flat) + Topic: /uav3/control_manager/trajectory_original/poses + Unreliable: true + Value: true + - Class: rviz/MarkerArray + Enabled: true + Marker Topic: /uav3/control_manager/trajectory_original/markers + Name: Markers + Namespaces: + {} + Queue Size: 100 + Value: true + Enabled: true + Name: OriginalTrajectory + - Alpha: 0.10000000149011612 + Class: mrs_rviz_plugins/Bumper + Collision alpha: 0.5 + Collision color: 255; 0; 0 + Color: 204; 51; 204 + Colorize collisions: true + Display mode: sensor types + Enabled: true + History Length: 1 + Horizontal collision threshold: 1 + Name: Bumper + Queue Size: 10 + Show sectors with no data: false + Show undetected obstacles: true + Topic: /uav3/bumper/obstacle_sectors + Unreliable: true + Value: true + Vertical collision threshold: 1 + Enabled: true + Name: ControlManager + - Alpha: 1 + Class: rviz/RobotModel + Collision Enabled: false + Enabled: true + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + uav3/fcu: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav3/fcu/arms: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav3/fcu/props: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + uav3/fcu/uav_marker: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Name: UAVModel + Robot Description: /uav3/robot_model + TF Prefix: "" + Update Interval: 0 + Value: true + Visual Enabled: true + Enabled: true + Name: uav3 + Enabled: true + Global Options: + Background Color: 255; 255; 255 + Default Light: true + Fixed Frame: uav1/world_origin + Frame Rate: 60 + Name: root + Tools: + - Class: rviz/Interact + Hide Inactive Objects: true + - Class: rviz/MoveCamera + - Class: rviz/Select + - Class: rviz/FocusCamera + - Class: rviz/Measure + - Class: rviz/SetInitialPose + Theta std deviation: 0.2617993950843811 + Topic: /initialpose + X std deviation: 0.5 + Y std deviation: 0.5 + - Class: rviz/SetGoal + Topic: /move_base_simple/goal + - Class: rviz/PublishPoint + Single click: true + Topic: /clicked_point + - Class: mrs_rviz_plugins/ControlTool + - Class: mrs_rviz_plugins/WaypointPlanner + Drone name: uav1 + Fly now: true + Height offset: 0 + Loop: false + Shape: Axes + Stop at waypoints: false + Topic: trajectory_generation/path + Use heading: true + - Class: mrs_rviz_plugins/NamedSetGoal + Name: name + Topic: goal + Value: true + Views: + Current: + Class: rviz/Orbit + Distance: 14.05187702178955 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Field of View: 0.7853981852531433 + Focal Point: + X: -0.012971354648470879 + Y: -0.16276033222675323 + Z: 1.279098391532898 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.3103984594345093 + Target Frame: uav1/fcu + Yaw: 2.810394048690796 + Saved: ~ +Window Geometry: + Displays: + collapsed: false + Height: 506 + Hide Left Dock: false + Hide Right Dock: true + QMainWindow State: 000000ff00000000fd000000040000000000000156000001a4fc020000000bfb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b000001a4000000c700fffffffb0000001400760069006f005f00630061006d0065007200610000000122000000bd0000000000000000fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d00610067006501000001400000009f0000000000000000fb0000001400760069006f005f00630061006d00650072006100000001400000009f0000000000000000fb0000001400760069006f005f00630061006d00650072006100000001400000009f00000000000000000000000100000116000001a4fc0200000004fb0000001e0054006f006f006c002000500072006f0070006500720074006900650073000000003b000000e40000005c00fffffffb0000000a005600690065007700730000000125000000ba000000a000fffffffb0000001e0054006f006f006c002000500072006f0070006500720074006900650073000000016d0000016e0000000000000000fb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000038f0000003efc0100000002fb0000000800540069006d006500000000000000038f0000035700fffffffb0000000800540069006d006501000000000000045000000000000000000000024c000001a400000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Time: + collapsed: false + Tool Properties: + collapsed: true + Views: + collapsed: true + Width: 936 + X: 966 + Y: 32 diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/tf_connector.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/tf_connector.yaml new file mode 100644 index 0000000..ded21b3 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/tf_connector.yaml @@ -0,0 +1,23 @@ +# the connecting root frame will be named like this +connecting_frame_id: "common_origin" + +# these are the tf subtrees to be connected through the respective root frames so that the equal frames are equal +connections: + - root_frame_id: "uav1/fcu" + equal_frame_id: "uav1/world_origin" + + - root_frame_id: "uav2/fcu" + equal_frame_id: "uav2/world_origin" + + - root_frame_id: "uav3/fcu" + equal_frame_id: "uav3/world_origin" + + # you can add further connections here: + # - root_frame_id: "another_root" + # equal_frame_id: "another_equal" + +# if true, older messages than the last update of the respective frame connection will be ignored +ignore_older_messages: false + +# if no update of a certain connection happens for this duration, it will be forced +max_update_period: 0.1 # seconds (set to zero to disable) diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/world_config.yaml b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/world_config.yaml new file mode 100644 index 0000000..9b55067 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/config/world_config.yaml @@ -0,0 +1,34 @@ +world_origin: + + units: "LATLON" # {"UTM, "LATLON"} + + origin_x: 47.397743 + origin_y: 8.545594 + +safety_area: + + enabled: true + + horizontal: + + # the frame of reference in which the points are expressed + frame_name: "world_origin" + + # polygon + # + # x, y [m] for any frame_name except latlon_origin + # x = latitude, y = longitude [deg] for frame_name=="latlon_origin" + points: [ + -50, -50, + 50, -50, + 50, 50, + -50, 50, + ] + + vertical: + + # the frame of reference in which the max&min z is expressed + frame_name: "world_origin" + + max_z: 15.0 + min_z: 0.5 diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/kill.sh b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/kill.sh new file mode 100755 index 0000000..28d50b0 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/kill.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Absolute path to this script. /home/user/bin/foo.sh +SCRIPT=$(readlink -f $0) +# Absolute path this script is in. /home/user/bin +SCRIPTPATH=`dirname $SCRIPT` +cd "$SCRIPTPATH" + +export TMUX_SESSION_NAME=simulation +export TMUX_SOCKET_NAME=mrs + +# just attach to the session +tmux -L $TMUX_SOCKET_NAME split-window -t $TMUX_SESSION_NAME +tmux -L $TMUX_SOCKET_NAME send-keys -t $TMUX_SESSION_NAME "sleep 1; tmux list-panes -s -F \"#{pane_pid} #{pane_current_command}\" | grep -v tmux | cut -d\" \" -f1 | while read in; do killp \$in; done; exit" ENTER diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/layout.json b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/layout.json new file mode 100644 index 0000000..3b10030 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/layout.json @@ -0,0 +1,105 @@ +[ + { + "border": "normal", + "floating": "auto_off", + "fullscreen_mode": 0, + "layout": "splith", + "percent": 0.5, + "type": "con", + "nodes": [ + { + "border": "normal", + "floating": "auto_off", + "layout": "splith", + "percent": 1, + "type": "con", + "nodes": [ + { + "border": "normal", + "floating": "auto_off", + "layout": "splitv", + "percent": 1, + "type": "con", + "nodes": [ + { + "border": "normal", + "floating": "auto_off", + "layout": "splith", + "percent": 0.5, + "type": "con", + "nodes": [ + { + "border": "pixel", + "current_border_width": 3, + "floating": "auto_off", + "geometry": { + "height": 460, + "width": 724, + "x": 0, + "y": 0 + }, + "name": "Gazebo", + "percent": 0.5, + "swallows": [ + { + "instance": "^gazebo$" + } + ], + "type": "con" + }, + { + "border": "pixel", + "current_border_width": 3, + "floating": "auto_off", + "geometry": { + "height": 460, + "width": 724, + "x": 0, + "y": 0 + }, + "name": "default_simulation.rviz* - RViz", + "percent": 0.5, + "swallows": [ + { + "instance": "^rviz$" + } + ], + "type": "con" + } + ] + }, + { + "border": "normal", + "floating": "auto_off", + "layout": "splith", + "percent": 0.5, + "type": "con", + "nodes": [ + { + "border": "pixel", + "current_border_width": 3, + "floating": "auto_off", + "geometry": { + "height": 460, + "width": 724, + "x": 0, + "y": 0 + }, + "name": "./start.sh", + "percent": 1, + "swallows": [ + { + "instance": "^urxvt$" + } + ], + "type": "con" + } + ] + } + ] + } + ] + } + ] + } +] diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/session.yml b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/session.yml new file mode 100644 index 0000000..05d4564 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/session.yml @@ -0,0 +1,69 @@ +# do not modify these +root: ./ +name: simulation +socket_name: mrs +attach: false +tmux_options: -f /etc/ctu-mrs/tmux.conf +# you can modify these +pre_window: export RUN_TYPE=simulation; export UAV_TYPE=f450; export PLATFORM_CONFIG=`rospack find mrs_uav_gazebo_simulation`/config/mrs_uav_system/$UAV_TYPE.yaml; export CUSTOM_CONFIG=./config/custom_config.yaml; export WORLD_CONFIG=./config/world_config.yaml; export NETWORK_CONFIG=./config/network_config.yaml +startup_window: status +windows: + - roscore: + layout: tiled + panes: + - roscore + - gazebo: + layout: tiled + panes: + - waitForRos; roslaunch mrs_uav_gazebo_simulation simulation.launch world_name:=grass_plane gui:=true + - waitForGazebo; rosservice call /mrs_drone_spawner/spawn "1 2 3 $UAV_TYPE --enable-rangefinder" + - export UAV_NAME=uav1; waitForControl; gz camera -c gzclient_camera -f $UAV_NAME; history -s gz camera -c gzclient_camera -f $UAV_NAME + - status: + layout: tiled + panes: + - export UAV_NAME=uav1; waitForHw; roslaunch mrs_uav_status status.launch + - export UAV_NAME=uav2; waitForHw; roslaunch mrs_uav_status status.launch + - export UAV_NAME=uav3; waitForHw; roslaunch mrs_uav_status status.launch + - hw_api: + layout: tiled + panes: + - export UAV_NAME=uav1; waitForTime; roslaunch mrs_uav_px4_api api.launch + - export UAV_NAME=uav2; waitForTime; roslaunch mrs_uav_px4_api api.launch + - export UAV_NAME=uav3; waitForTime; roslaunch mrs_uav_px4_api api.launch + - core: + layout: tiled + panes: + - export UAV_NAME=uav1; waitForHw; roslaunch mrs_uav_core core.launch + - export UAV_NAME=uav2; waitForHw; roslaunch mrs_uav_core core.launch + - export UAV_NAME=uav3; waitForHw; roslaunch mrs_uav_core core.launch + - tf_connector: + layout: tiled + panes: + - waitForTime; roslaunch mrs_tf_connector tf_connector.launch custom_config:=./config/tf_connector.yaml + - automatic_start: + layout: tiled + panes: + - export UAV_NAME=uav1; waitForHw; roslaunch mrs_uav_autostart automatic_start.launch + - export UAV_NAME=uav2; waitForHw; roslaunch mrs_uav_autostart automatic_start.launch + - export UAV_NAME=uav3; waitForHw; roslaunch mrs_uav_autostart automatic_start.launch + - takeoff: + layout: tiled + panes: + - export UAV_NAME=uav1; waitForControl; rosservice call /$UAV_NAME/hw_api/arming 1; sleep 2; rosservice call /$UAV_NAME/hw_api/offboard + - export UAV_NAME=uav2; waitForControl; rosservice call /$UAV_NAME/hw_api/arming 1; sleep 2; rosservice call /$UAV_NAME/hw_api/offboard + - export UAV_NAME=uav3; waitForControl; rosservice call /$UAV_NAME/hw_api/arming 1; sleep 2; rosservice call /$UAV_NAME/hw_api/offboard + - rviz: + layout: tiled + panes: + - export UAV_NAME=uav1; waitForControl; rosrun rviz rviz -d ./config/rviz.rviz + - export UAV_NAME=uav1; waitForControl; roslaunch mrs_rviz_plugins rviz_interface.launch + - rviz_uav_models: + layout: tiled + panes: + - export UAV_NAME=uav1; waitForControl; roslaunch mrs_rviz_plugins load_robot.launch + - export UAV_NAME=uav2; waitForControl; roslaunch mrs_rviz_plugins load_robot.launch + - export UAV_NAME=uav3; waitForControl; roslaunch mrs_rviz_plugins load_robot.launch + - layout: + layout: tiled + panes: + - export UAV_NAME=uav1; waitForControl; sleep 3; ~/.i3/layout_manager.sh ./layout.json diff --git a/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/start.sh b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/start.sh new file mode 100755 index 0000000..5bb2275 --- /dev/null +++ b/ros_packages/mrs_uav_gazebo_simulation/tmux/three_drones/start.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Absolute path to this script. /home/user/bin/foo.sh +SCRIPT=$(readlink -f $0) +# Absolute path this script is in. /home/user/bin +SCRIPTPATH=`dirname $SCRIPT` +cd "$SCRIPTPATH" + +export TMUX_SESSION_NAME=simulation +export TMUX_SOCKET_NAME=mrs + +# start tmuxinator +tmuxinator start -p ./session.yml + +# if we are not in tmux +if [ -z $TMUX ]; then + + # just attach to the session + tmux -L $TMUX_SOCKET_NAME a -t $TMUX_SESSION_NAME + +# if we are in tmux +else + + # switch to the newly-started session + tmux detach-client -E "tmux -L $TMUX_SOCKET_NAME a -t $TMUX_SESSION_NAME" + +fi