Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
5648f30
Use Fixposition SDK, add devcontainer config, general cleanup
flipflip8952 Jan 13, 2025
4c3dd1f
add setup_ros_ws.sh
flipflip8952 Jan 27, 2025
3226ef9
cosmetics
flipflip8952 Jan 27, 2025
6c41f43
Fixed minor bugs
fgarciacardenas Jan 27, 2025
3f1750a
add more ci, bump sdk commit
flipflip8952 Jan 27, 2025
ba8fda4
Added timestamp to text msg
fgarciacardenas Jan 27, 2025
6a20a45
Merge branch 'feature/use-fpsdk' of https://github.com/fixposition/fi…
fgarciacardenas Jan 27, 2025
62a22e9
fix ci
flipflip8952 Jan 27, 2025
21582f7
Removed ros::time and cleaned ros2 code
fgarciacardenas Feb 4, 2025
0e52fb1
Small fixes for GSV
fgarciacardenas Feb 4, 2025
89be11e
Fixed minor bug in epoch collector
fgarciacardenas Feb 4, 2025
c43147e
Add delay warning and updated sdk
fgarciacardenas Feb 4, 2025
6458911
Fixed WS stream
fgarciacardenas Feb 4, 2025
f8a0f1a
Added INSPVAX message
fgarciacardenas Feb 5, 2025
7f7b7ef
Added INSPVAX message to ROS1
fgarciacardenas Feb 5, 2025
b88c3cf
Added odometry converter to ROS1 driver
fgarciacardenas Feb 5, 2025
43ad1e6
Precommit changes
fgarciacardenas Feb 5, 2025
3f385f9
Removed original odometry_converter repository
fgarciacardenas Feb 5, 2025
c3577ef
Tiny changes
fgarciacardenas Feb 5, 2025
54d5bde
Added odometry_converter to ROS2 driver
fgarciacardenas Feb 5, 2025
9b573e7
Removed ROS2 odometry_converter package
fgarciacardenas Feb 5, 2025
0ca3eb6
ROS2 is a <censored>
flipflip8952 Feb 6, 2025
8434a77
fusion epoch
flipflip8952 Feb 6, 2025
2cd189c
make delay warning threshold a param
flipflip8952 Feb 10, 2025
e6262a5
refactor params into one struct
flipflip8952 Feb 10, 2025
7721706
fix build
flipflip8952 Feb 10, 2025
72a7f84
fix param loading
flipflip8952 Feb 10, 2025
27f58fa
Minor bug fixes
fgarciacardenas Feb 10, 2025
9ced56d
Precommit changes
fgarciacardenas Feb 10, 2025
f7d8b8e
Minor typo
fgarciacardenas Feb 10, 2025
1d34783
Updated README
fgarciacardenas Feb 11, 2025
a7b55ce
Precommit changes
fgarciacardenas Feb 11, 2025
baaec4f
Updated README to add CI status
fgarciacardenas Feb 11, 2025
f2c9201
Merge branch 'main' into feature/use-fpsdk
fgarciacardenas Feb 11, 2025
00285b7
Updated fixposition-sdk
fgarciacardenas Feb 11, 2025
1343756
simplify
flipflip8952 Feb 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
9 changes: 9 additions & 0 deletions .devcontainer/.bash_logout
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ~/.bash_logout: executed by bash(1) when login shell exits.

# save history
history -a

# when leaving the console clear the screen to increase privacy
if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
173 changes: 173 additions & 0 deletions .devcontainer/.bashrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL="ignoredups:erasedups:ignorespace"

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=10000000
HISTFILE=/home/fpsdk/.bash_history.d/history

# Disable history ! expansion
set +H

export RSYNC_RSH=ssh
export PAGER="less -R -i -x 4 -+C"
export PERLDOC_PAGER="less -R -i -x 4 -+C"
export LESSCHARSET=UTF-8
export EDITOR='vim'
export GIT_EDITOR=vim

# nicely coloured man pages
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'

export LESS="FRSX"

# N.B. -R must be first or lesspipe.sh will be confused
# warning: -R not compatible with +F (follow mode)!
alias less='less -R -i -x 4 -S'

# Enable core dumps (does it?)
ulimit -c 1048576

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias rm='rm -i'
alias mv='mv -i'

# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi

if [ -f ~/.bash-git-prompt/gitprompt.sh ]; then
# https://github.com/magicmonty/bash-git-prompt
GIT_PROMPT_THEME=fpsdk
source ~/.bash-git-prompt/gitprompt.sh
fi

# Source ROS environment
if [ -n "${ROS_DISTRO}" ]; then
source /opt/ros/${ROS_DISTRO}/setup.bash
export ROSCONSOLE_STDOUT_LINE_BUFFERED=1
export ROSCONSOLE_FORMAT='${severity} ${time:%Y-%m-%d %H:%M:%S.%f} ${logger} - ${message}'
# export RCUTILS_LOGGING_BUFFERED_STREAM=1
# export RCUTILS_LOGGING_USE_STDOUT=1
export RCUTILS_COLORIZED_OUTPUT=1
case "${ROS_DISTRO}" in
jazzy|rolling)
export RCUTILS_CONSOLE_OUTPUT_FORMAT="{severity} {date_time_with_ms} {name} - {message}"
;;
*)
export RCUTILS_CONSOLE_OUTPUT_FORMAT="{severity} {time} {name} - {message}"
;;
esac

fi
Empty file.
Empty file added .devcontainer/.dummy-file
Empty file.
2 changes: 2 additions & 0 deletions .devcontainer/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/.bash_history.d
/.vscode-server
Empty file.
35 changes: 35 additions & 0 deletions .devcontainer/helper.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash
set -eEu -o pipefail

command=$1
shift

case ${command} in
onCreateCommand)
containerWorkspaceFolder=$1
# ls -la ${containerWorkspaceFolder}
# id
case ${ROS_DISTRO} in
noetic)
if [ ! -d ${containerWorkspaceFolder}/ros1_ws ]; then
${containerWorkspaceFolder}/create_ros_ws.sh -d ros1_ws
fi
;;
humble|jazzy)
if [ ! -d ${containerWorkspaceFolder}/ros2_ws ]; then
${containerWorkspaceFolder}/create_ros_ws.sh -d ros2_ws
fi
;;
*)
echo "Don't know how to create a ROS workspace for ROS_DISTRO=${ROS_DISTRO}"
exit 1
;;
esac
;;
*)
echo "bad command: ${command}"
exit 1
;;
esac

exit 0
12 changes: 12 additions & 0 deletions .devcontainer/humble/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM ghcr.io/fixposition/fixposition-sdk:humble-dev

# RUN <<EOF
# # Install additional packages
# set -e
# export DEBIAN_FRONTEND=noninteractive
# apt-get -y update
# apt-get -y --with-new-pkgs upgrade
# apt-get -y --no-install-recommends install some-package another-package ...
# apt-get -y autoremove
# apt-get clean
# EOF
53 changes: 53 additions & 0 deletions .devcontainer/humble/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// https://aka.ms/devcontainer.json
{
"name": "Fixposition ROS2 driver (Humble)",
"build": { "dockerfile": "Dockerfile", "context": "../.." },
"remoteUser": "fpsdk",
"updateRemoteUserUID": true,
"capAdd": ["SYS_PTRACE"],
"mounts": [
// Persistent bash history
"source=${localWorkspaceFolder}/.devcontainer/.bashrc,target=/home/fpsdk/.bashrc,type=bind",
"source=${localWorkspaceFolder}/.devcontainer/.bash_logout,target=/home/fpsdk/.bash_logout,type=bind",
"source=${localWorkspaceFolder}/.devcontainer/.bash_history.d,target=/home/fpsdk/.bash_history.d,type=bind",
// Persistent .vscode-server
"source=${localWorkspaceFolder}/.devcontainer/.vscode-server,target=/home/fpsdk/.vscode-server,type=bind",
// The code we're working on
"source=${localWorkspaceFolder},target=/home/fpsdk/fixposition_driver,type=bind",
],
"workspaceFolder": "/home/fpsdk/fixposition_driver",
"runArgs": [ "--name=fixposition_driver-humble-${localEnv:USER}", "--hostname=humble" ],
"onCreateCommand": "${containerWorkspaceFolder}/.devcontainer/helper.sh onCreateCommand ${containerWorkspaceFolder}",
"customizations": {
"vscode": {
"settings": {
"files.exclude": {
"**/.git": true,
".vscode-cache": true,
"**/*~": true,
".vstags": true,
"**/build/**": true,
"core": true,
"**/.devcontainer/.vscode-server/**": true,
".devcontainer/.vscode-server/**": true,
"**/.vscode-server/**": true
},
"search.exclude": {
"tmp": true,
"**/ros1_ws/**": true,
"**/ros2_ws/**": true
},
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/refs/**": true,
"**/.git/logs/**": true,
"**/.git/subtree-cache/**": true,
"**/.git/worktrees/**": true,
"**/.vscode-*/**": true,
"**/ros1_ws/**": true,
"**/ros2_ws/**": true
}
}
}
}
}
12 changes: 12 additions & 0 deletions .devcontainer/jazzy/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM ghcr.io/fixposition/fixposition-sdk:jazzy-dev

# RUN <<EOF
# # Install additional packages
# set -e
# export DEBIAN_FRONTEND=noninteractive
# apt-get -y update
# apt-get -y --with-new-pkgs upgrade
# apt-get -y --no-install-recommends install some-package another-package ...
# apt-get -y autoremove
# apt-get clean
# EOF
52 changes: 52 additions & 0 deletions .devcontainer/jazzy/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// https://aka.ms/devcontainer.json
{
"name": "Fixposition ROS2 driver (Jazzy)",
"build": { "dockerfile": "Dockerfile", "context": "../.." },
"remoteUser": "fpsdk",
"updateRemoteUserUID": true,
"capAdd": ["SYS_PTRACE"],
"mounts": [
// Persistent bash history
"source=${localWorkspaceFolder}/.devcontainer/.bashrc,target=/home/fpsdk/.bashrc,type=bind",
"source=${localWorkspaceFolder}/.devcontainer/.bash_logout,target=/home/fpsdk/.bash_logout,type=bind",
"source=${localWorkspaceFolder}/.devcontainer/.bash_history.d,target=/home/fpsdk/.bash_history.d,type=bind",
// Persistent .vscode-server
"source=${localWorkspaceFolder}/.devcontainer/.vscode-server,target=/home/fpsdk/.vscode-server,type=bind",
// The code we're working on
"source=${localWorkspaceFolder},target=/home/fpsdk/fixposition_driver,type=bind",
],
"workspaceFolder": "/home/fpsdk/fixposition_driver",
"runArgs": [ "--name=fixposition_driver-jazzy-${localEnv:USER}", "--hostname=jazzy" ],
"onCreateCommand": "${containerWorkspaceFolder}/.devcontainer/helper.sh onCreateCommand ${containerWorkspaceFolder}",
"customizations": {
"vscode": {
"settings": {
"files.exclude": {
"**/.git": true,
".vscode-cache": true,
"**/*~": true,
".vstags": true,
"**/build/**": true,
"core": true,
"**/.devcontainer/.vscode-server/**": true,
"**/.vscode-server/**": true
},
"search.exclude": {
"tmp": true,
"**/ros1_ws/**": true,
"**/ros2_ws/**": true
},
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/refs/**": true,
"**/.git/logs/**": true,
"**/.git/subtree-cache/**": true,
"**/.git/worktrees/**": true,
"**/.vscode-*/**": true,
"**/ros1_ws/**": true,
"**/ros2_ws/**": true
}
}
}
}
}
12 changes: 12 additions & 0 deletions .devcontainer/noetic/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM ghcr.io/fixposition/fixposition-sdk:noetic-dev

# RUN <<EOF
# # Install additional packages
# set -e
# export DEBIAN_FRONTEND=noninteractive
# apt-get -y update
# apt-get -y --with-new-pkgs upgrade
# apt-get -y --no-install-recommends install some-package another-package ...
# apt-get -y autoremove
# apt-get clean
# EOF
Loading
Loading