Skip to content
This repository has been archived by the owner on Aug 3, 2022. It is now read-only.

Commit

Permalink
Merge pull request #70 from tiiuae/rel_4_0
Browse files Browse the repository at this point in the history
Rel 4 0
  • Loading branch information
maseabunikie authored Jul 12, 2021
2 parents 411536a + 5cbe1b9 commit 35a64d3
Show file tree
Hide file tree
Showing 34 changed files with 637 additions and 47 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ ros2_ws/src/ros-foxy-*

# avoid adding binary to repo
packaging/agent_protocol_splitter/protocol_splitter
.tmuxinator.yml
21 changes: 18 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,6 @@
[submodule "ros2_ws/src/fog_msgs"]
path = ros2_ws/src/fog_msgs
url = https://github.com/tiiuae/fog_msgs.git
[submodule "ros2_ws/src/fog_core"]
path = ros2_ws/src/fog_core
url = https://github.com/tiiuae/fog_core.git
[submodule "ros2_ws/src/octomap_server2"]
path = ros2_ws/src/octomap_server2
url = https://github.com/tiiuae/octomap_server2.git
Expand All @@ -64,9 +61,27 @@
[submodule "ros2_ws/src/rplidar_ros2"]
path = ros2_ws/src/rplidar_ros2
url = https://github.com/tiiuae/rplidar_ros2.git
[submodule "tools/tmux"]
path = tools/tmux
url = https://github.com/tmux/tmux.git
[submodule "tools/tmuxinator"]
path = tools/tmuxinator
url = https://github.com/tmuxinator/tmuxinator.git
[submodule "ros2_ws/src/fog_msgs"]
path = ros2_ws/src/fog_msgs
url = https://github.com/tiiuae/fog_msgs.git
[submodule "ros2_ws/src/control_interface"]
path = ros2_ws/src/control_interface
url = https://github.com/tiiuae/control_interface.git
[submodule "rtl8812au"]
path = rtl8812au
url = https://github.com/tiiuae/rtl8812au.git
[submodule "ros2_ws/src/fog_gazebo_resources"]
path = ros2_ws/src/fog_gazebo_resources
url = https://github.com/tiiuae/fog_gazebo_resources.git
[submodule "mission-data-recorder"]
path = mission-data-recorder
url = [email protected]:tiiuae/mission-data-recorder.git
[submodule "ros2_ws/src/mocap_pose"]
path = ros2_ws/src/mocap_pose
url = [email protected]:tiiuae/mocap_pose.git
2 changes: 1 addition & 1 deletion fogsw_configs
14 changes: 14 additions & 0 deletions installation/dependencies/ros_related.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash

set -e

trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR

echo "$0: installing ROS2-related dependencies"

sudo apt-get -y install \
ros-foxy-octomap \
ros-foxy-octomap-msgs \
ros-foxy-dynamic-edt-3d \

194 changes: 194 additions & 0 deletions installation/dependencies/tmux/dottmux.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
set-option -g assume-paste-time 1
set-option -g default-command ""
set-option -g destroy-unattached off
set-option -g detach-on-destroy on
set-option -g display-panes-active-colour red
set-option -g display-panes-colour blue
set-option -g display-panes-time 1000
set-option -g display-time 750
set-option -g history-limit 5000
set-option -g key-table "root"
set-option -g lock-after-time 0
set-option -g lock-command "lock -np"
set-option -g message-command-style fg=yellow,bg=black
set-option -g message-style fg=black,bg=yellow
set-option -g mouse off
set-option -g prefix C-b
set-option -g prefix2 None
set-option -g renumber-windows on
set-option -g repeat-time 500
set-option -g set-titles off
set-option -g set-titles-string "#S:#I:#W - "#T" #{session_alerts}"
set-option -g status on
set-option -g status-interval 15
set-option -g status-justify left
set-option -g status-keys vi
set-option -g status-left "[#S] "
set-option -g status-left-length 10
set-option -g status-left-style default
set-option -g status-position bottom
set-option -g status-right " "#{=21:pane_title}" %H:%M"
set-option -g status-right-length 40
set-option -g status-right-style default
set-option -g status-style fg=black,bg=green
set-option -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"
set-option -g visual-activity off
set-option -g visual-bell off
set-option -g visual-silence off
set-option -g word-separators " -_@"
set-option -g aggressive-resize on
set-window-option -g allow-rename off
set-window-option -g automatic-rename off

## Status bar design
# status line
set -g status-justify left
set -g status-bg default
set -g status-fg colour12
set -g status-interval 2

# window status
setw -g window-status-format " #F#I:#W#F "
setw -g window-status-current-format " #F#I:#W#F "
setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W "
setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W "

# Info on left (I don't have a session display for now)
set -g status-left ''

# loud or quiet?
set-option -g visual-activity off
set-option -g visual-bell off
set-option -g visual-silence off
set-window-option -g monitor-activity off
set-option -g bell-action none

set -g default-terminal "screen-256color"

# The modes {
setw -g clock-mode-colour colour135
# }

# The statusbar {
set -g status-position bottom
set -g status-bg colour234
set -g status-fg colour15

# EPIGEN_DEL_BLOCK_COLORSCHEME_LIGHT {
set -g status-left "#[fg=colour15,bg=colour26] #S #[fg=colour103,bg=colour236,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=colour239] #(echo $ROS_MASTER_URI) #[fg=colour239,bg=colour236,nobold,nounderscore,noitalics]#[fg=colour248,bg=colour239] %H:%M #[fg=colour15,bg=colour26] #H"
# EPIGEN_DEL_BLOCK_COLORSCHEME_LIGHT }

# EPIGEN_ADD_BLOCK_COLORSCHEME_LIGHT {
# set -g status-left ''
# set -g status-right '#[fg=colour15,bg=colour241,bold] %d/%m #[fg=colour15,bg=colour245,bold] %H:%M:%S #[fg=colour15,bg=colour241,bold] #H '
# EPIGEN_ADD_BLOCK_COLORSCHEME_LIGHT }

set -g status-right-length 50
set -g status-left-length 20

setw -g window-status-current-format "#[fg=colour236,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour253,bg=colour239] #I |#[fg=colour253,bg=colour239] #W #[fg=colour239,bg=colour236,nobold,nounderscore,noitalics]" # EPIGEN_DEL_LINE_COLORSCHEME_LIGHT
# setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' # EPIGEN_ADD_LINE_COLORSCHEME_LIGHT

setw -g window-status-format "#[fg=colour244,bg=colour236] #I |#[fg=colour244,bg=colour236] #W " # EPIGEN_DEL_LINE_COLORSCHEME_LIGHT
# setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' # EPIGEN_ADD_LINE_COLORSCHEME_LIGHT

# }

# set vim control
setw -g mode-keys vi
bind -n F2 copy-mode
bind-key -Tcopy-mode-vi 'v' send -X begin-selection
bind-key -Tcopy-mode-vi 'y' send -X copy-pipe-and-cancel "xclip -selection clipboard -i"
bind-key -Tcopy-mode-vi 'C-V' send -X rectangle-toggle
unbind p
bind p run-shell "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"

# key bindings for moving over pannels
# binded to arrows for normal people
bind-key -n M-Left select-pane -L
bind-key -n M-Right select-pane -R
bind-key -n M-Up select-pane -U
bind-key -n M-Down select-pane -D
# binded to yuio for me
bind-key -n M-y select-pane -L
bind-key -n M-o select-pane -R
bind-key -n M-i select-pane -U
bind-key -n M-u select-pane -D

# colors
set-option -g default-terminal "screen-256color"

# remap kill button
bind-key k \
split-window \; \
setw synchronize-panes on \; \
send-keys "sleep 1; killp() { if [ \$# -eq 0 ]; then echo \"The command killp() needs an argument, but none was provided\"; return; else pes=\$1; fi; for child in \$(ps -o pid,ppid -ax | awk '{ if ( \$2 == \$pes ) { print \$1 }}'); do killp \$child; done; kill -9 \"$1\" > /dev/null 2> /dev/null; }; pwd >> /tmp/tmux_restore_path.txt; tmux list-panes -s -F \"#{pane_pid} #{pane_current_command}\" | grep -v tmux | awk '{print $1}' | while read in; do killp \$in; done" C-m exit C-m

# you still want the original bindings for splitting? CTRL+0 for horizontal, CTRL+9 for vertical?

# EPIGEN_ADD_BLOCK_TMUX_OLD_BINDINGS {
# bind -n C-s split-window -v -c "#{pane_current_path}"
# bind -n C-d split-window -h -c "#{pane_current_path}"
# EPIGEN_ADD_BLOCK_TMUX_OLD_BINDINGS }

# the new key bindings for splitting, CTRL-9 ( like CTRL-( ) for vertical, CTRL-0 ( like CTRL-) ) for horizontal
bind -n C-9 split-window -v -c "#{pane_current_path}"
bind -n C-0 split-window -h -c "#{pane_current_path}"

# bind c new-window -c "#{pane_current_path}"

# remap Ctrl-b
set-option -g prefix C-a

# Smart pane switching with awareness of Vim splits.
# See: https://github.com/christoomey/vim-tmux-navigator
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
# bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"

# allow to use vim's ctrlp from terminal
bind-key -n C-p if-shell "$is_vim" "send-keys C-p" "send-keys 'vim -c :Startify:CtrlP'"
bind-key -n C-F12 if-shell "$is_vim" "send-keys C-F12" "send-keys 'vim -c :Startify:CtrlP ~/'"

bind -r C-h resize-pane -L 5
bind -r C-j resize-pane -D 5
bind -r C-k resize-pane -U 5
bind -r C-l resize-pane -R 5

bind -n C-t new-window -a -c "#{pane_current_path}"
bind -n M-u next
bind -n M-i prev

# EPIGEN_DEL_BLOCK_TOMAS {
bind -n S-Right next
bind -n S-Left prev
# EPIGEN_DEL_BLOCK_TOMAS }

bind -n C-S-Left swap-window -t -1
bind -n C-S-Right swap-window -t +1

# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf

# make delay shorter
set -sg escape-time 0

# Toggle synchronize-panes with ^S m
bind s \
set synchronize-panes \;\
display "Sync #{?synchronize-panes,ON,OFF}"

# make window/pane index start with 1
# set -g base-index 1
# setw -g pane-base-index 1

# example of interactive tmux commands... maybe it could be used in some way..
# bind C-e command-prompt -p "session?,message?" "run-shell \"tmux list-windows -t %1 \| cut -d: -f1\|xargs -I\{\} tmux send-keys -t %1:\{\} %2\""

bind-key m run-shell "~/git/linux-setup/scripts/tmux_mount.sh"
bind-key u run-shell "~/git/linux-setup/scripts/tmux_unmount.sh"
Expand Down
31 changes: 31 additions & 0 deletions installation/dependencies/tmux/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

set -e

trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR

# get the path to this script
MY_PATH=`dirname "$0"`
MY_PATH=`( cd "$MY_PATH" && pwd )`

echo "$0: uninstalling pre-installed tmux"
sudo apt-get -y remove tmux

echo "$0: installing tmux build dependencies"
sudo apt-get -y install libevent-dev bison

echo "$0: building tmux"

# compile and install custom tmux
cd $MY_PATH/../../../tools/tmux
( ./autogen.sh > /dev/null && ./configure > /dev/null && make > /dev/null && sudo make install-binPROGRAMS > /dev/null ) || ( echo "Tmux compilation failed, installing normal tmux" && sudo apt-get -y install tmux)
git clean -fd

FILE=$HOME/.tmux.conf
if [ -e "$FILE" ]; then
echo "$0: .tmux.conf exists, not copying"
else
echo "$0: copying .tmux.conf"
ln -sf $MY_PATH/dottmux.conf $FILE
fi
19 changes: 19 additions & 0 deletions installation/dependencies/tmuxinator.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

set -e

trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR

# get the path to this script
MY_PATH=`dirname "$0"`
MY_PATH=`( cd "$MY_PATH" && pwd )`

cd $MY_PATH/../../tools/tmuxinator

echo "$0: installing tmuxinator"

sudo apt-get -y install ruby gem

gem build tmuxinator.gemspec
sudo gem install tmuxinator -v 1.1.5
26 changes: 26 additions & 0 deletions installation/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/bash

set -e

trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR

# get the path to this script
MY_PATH=`dirname "$0"`
MY_PATH=`( cd "$MY_PATH" && pwd )`

## | --------- change to the directory of this script --------- |

cd "$MY_PATH"

## | ---------- install ROS 2 related dependencies ------------ |

bash $MY_PATH/dependencies/ros_related.sh

## | ---------------------- install tmux ---------------------- |

bash $MY_PATH/dependencies/tmux/install.sh

## | ------------------- install tmuxinator ------------------- |

bash $MY_PATH/dependencies/tmuxinator.sh
1 change: 1 addition & 0 deletions mission-data-recorder
Submodule mission-data-recorder added at ff2489
2 changes: 2 additions & 0 deletions packaging/deb_files/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.deb
*.ddeb
26 changes: 17 additions & 9 deletions packaging/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,25 @@ Maintainer: manuel.segarra-abad <[email protected]>
Architecture: amd64
Description: FOG SW meta package.
Depends: agent-protocol-splitter (= 1.0.0-13~git20210419.ed16b42),
communication-link (= 2.0.0-29~git20210526.843fd45),
fast-dds-gen (= 1.0.0-3~git20210421.694704f),
fogsw-configs (= 1.0.0-4~git20210526.5b156bf),
fog-sw-systemd-services (= 1.0.0-21~git20210601.675cb6f),
communication-link (= 2.0.0-33~git20210701.545ea2f),
fog-sw-systemd-services (= 1.0.0-36~git20210709.bd3efff),
libsurvive (= 1.0.0-3~git20210421.b966a6c),
mavlink-router (= 1.0.0-6~git20210419.14c1368),
mavsdk (= 0.34.0),
mission-engine (= 2.0.0-10~git20210526.b4285bc),
ros-foxy-depthai-ctrl (= 0.5.3-28~git20210601.80de68d),
mission-data-recorder (= 1.0.0-28~git20210707.ff24897),
mission-engine (= 2.0.0-16~git20210701.545ea2f),
ros-foxy-depthai-ctrl (= 0.5.6-34~git20210624.1f5590e),
ros-foxy-indoor-pos (= 1.0.0-12~git20210426.81d1987),
ros-foxy-mesh-com (= 0.3.3-29~git20210601.8ecb707),
ros-foxy-px4-mavlink-ctrl (= 0.1.0-11~git20210426.5836a83),
ros-foxy-mesh-com (= 0.3.3-34~git20210611.0d866b2),
ros-foxy-mocap-pose (= 0.0.4-3~git20210617.713e012),
ros-foxy-px4-msgs (= 2.0.1-5~git20210419.b4c4a12),
ros-foxy-px4-ros-com (= 0.1.0-15~git20210602.4acff59)
ros-foxy-px4-ros-com (= 0.1.0-20~git20210708.a1147fa),
rtl8812au-kmod (= 1.0.0-2~git20210614.dc56cff),
ros-foxy-control-interface (= 0.0.3-17~git20210709.22ce14e),
ros-foxy-fog-msgs (= 0.0.3-6~git20210621.90040f9),
ros-foxy-navigation (= 0.0.3-16~git20210709.f083eee),
ros-foxy-octomap-server2 (= 0.0.1-6~git20210617.22fd119),
ros-foxy-rplidar-ros2 (= 1.10.0-10~git20210615.cbb80ba)
Conflicts: ros-foxy-px4-mavlink-ctrl
Recomends: fogsw-configs (= 1.0.0-14~git20210621.dab9587),
px4-firmware-updater (= 1.11.0-1.0.7-7-g913cf7bbd9)
Loading

0 comments on commit 35a64d3

Please sign in to comment.