Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
79017f7
Factor out common cmake code
ruffsl Feb 13, 2020
1e3a51e
first adaptation
yunzc Jul 29, 2019
b05473c
change name
yunzc Jul 30, 2019
f902a11
small adjustments
yunzc Jul 30, 2019
d530be5
added visualizer node
yunzc Jul 30, 2019
b7f90b2
clean dependencies
yunzc Aug 2, 2019
dbe4ace
visualizaing pose graph first it
yunzc Aug 4, 2019
7be678c
added interactive markers
yunzc Aug 4, 2019
87a8c27
visualize rejected loop closures
yunzc Sep 3, 2019
e82cec7
change marker sizes
yunzc Sep 3, 2019
fad60e0
add launch file and fix frame id
yunzc Sep 13, 2019
9856bc3
Simplify catkin package
ToniRV Oct 1, 2019
8667a30
Fix the installing error
marcusabate Oct 3, 2019
a4e085c
remove 'sparkvio' as hard coded ns in launch
Nov 19, 2019
a5926f5
Add namespace argument to launch
marcusabate Dec 23, 2019
530a075
Fix rviz orientation warning
marcusabate Dec 24, 2019
4281168
Add default to ns argument
marcusabate Dec 25, 2019
5ac5525
Do not use global param space...
ToniRV Dec 28, 2019
84d581c
Spin out msg package
ruffsl Jan 15, 2020
cf9cdeb
Port message package to ros2
ruffsl Jan 15, 2020
7ba9c6b
Port package to ament_cmake
ruffsl Jan 15, 2020
742e508
Port node to ros2
ruffsl Jan 15, 2020
bd15919
Port launch file to ros2
ruffsl Jan 15, 2020
e825e9c
Update packages to use kimera_common
ruffsl Feb 13, 2020
7ad2385
Rename packages
ruffsl Feb 13, 2020
792cd73
Rename package folders
ruffsl Feb 13, 2020
43116ef
Enable ROS2 linters
ruffsl Feb 13, 2020
02a9219
ament_uncrustify files
ruffsl Feb 13, 2020
3a85711
Stage current .repo files
ruffsl Feb 13, 2020
565ba8f
Add .dockerignore
ruffsl Feb 13, 2020
617d1bd
Add project Dockerfile
ruffsl Feb 13, 2020
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
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
################################################################################
# Repo

.git/*
.dockerignore
.gitignore
**Dockerfile
**.Dockerfile
52 changes: 52 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
devel/
logs/
build/
bin/
lib/
msg_gen/
srv_gen/
msg/*Action.msg
msg/*ActionFeedback.msg
msg/*ActionGoal.msg
msg/*ActionResult.msg
msg/*Feedback.msg
msg/*Goal.msg
msg/*Result.msg
msg/_*.py
build_isolated/
devel_isolated/

# Generated by dynamic reconfigure
*.cfgc
/cfg/cpp/
/cfg/*.py

# Ignore generated docs
*.dox
*.wikidoc

# eclipse stuff
.project
.cproject

# qcreator stuff
CMakeLists.txt.user

srv/_*.py
*.pcd
*.pyc
qtcreator-*
*.user

/planning/cfg
/planning/docs
/planning/src

*~

# Emacs
.#*

# Catkin custom files
CATKIN_IGNORE

162 changes: 162 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
ARG FROM_IMAGE=ros:eloquent

# multi-stage for caching
FROM $FROM_IMAGE AS cache

# clone underlay source
ENV UNDERLAY_WS /opt/underlay_ws
RUN mkdir -p $UNDERLAY_WS/src
WORKDIR $UNDERLAY_WS
COPY ./install/underlay.repos ./
RUN vcs import src < underlay.repos

# copy overlay source
ENV OVERLAY_WS /opt/overlay_ws
RUN mkdir -p $OVERLAY_WS/src
WORKDIR $OVERLAY_WS
COPY ./install/overlay.repos ./
RUN vcs import src < overlay.repos

# copy wrapper source
ENV WRAPPER_WS /opt/wrapper_ws
RUN mkdir -p $WRAPPER_WS/src
WORKDIR $WRAPPER_WS
# COPY ./install/wrapper.repos ./
# RUN vcs import src < wrapper.repos
COPY ./ src/MIT-SPARK/Kimera-VIO-ROS2

# copy manifests for caching
WORKDIR /opt
RUN find ./ -name "package.xml" | \
xargs cp --parents -t /tmp
# && find ./ -name "COLCON_IGNORE" | \
# xargs cp --parents -t /tmp

# multi-stage for building
FROM $FROM_IMAGE AS build

# install CI dependencies
RUN apt-get update && apt-get install -q -y \
ccache \
lcov \
&& rm -rf /var/lib/apt/lists/*

# install opencv dependencies
RUN apt-get update && apt-get install -y \
gfortran \
libatlas-base-dev \
libgtk-3-dev \
libjpeg-dev \
libpng-dev \
libtiff-dev \
libvtk6-dev \
unzip \
&& rm -rf /var/lib/apt/lists/*

# copy underlay manifests
ENV UNDERLAY_WS /opt/underlay_ws
COPY --from=cache /tmp/underlay_ws $UNDERLAY_WS
WORKDIR $UNDERLAY_WS

# install underlay dependencies
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
apt-get update && rosdep install -q -y \
--from-paths src \
--ignore-src \
&& rm -rf /var/lib/apt/lists/*

# copy underlay source
COPY --from=cache $UNDERLAY_WS ./

# build underlay source
ARG UNDERLAY_MIXINS="release"
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
colcon build \
--symlink-install \
--mixin $UNDERLAY_MIXINS \
--cmake-args \
--no-warn-unused-cli \
-DGTSAM_BUILD_TESTS=OFF \
-DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF \
-DGTSAM_BUILD_UNSTABLE=ON \
-DGTSAM_POSE3_EXPMAP=ON \
-DGTSAM_ROT3_EXPMAP=ON \
-DOPENCV_EXTRA_MODULES_PATH=$UNDERLAY_WS/src/opencv/opencv/contrib/modules
# --event-handlers console_direct+

# copy overlay manifests
ENV OVERLAY_WS /opt/overlay_ws
COPY --from=cache /tmp/overlay_ws $OVERLAY_WS
WORKDIR $OVERLAY_WS

# install overlay dependencies
RUN . $UNDERLAY_WS/install/setup.sh && \
apt-get update && rosdep install -q -y \
--from-paths \
src \
$UNDERLAY_WS/src \
--ignore-src \
&& rm -rf /var/lib/apt/lists/*

# copy overlay source
COPY --from=cache $OVERLAY_WS ./

# build overlay source
ARG OVERLAY_MIXINS="release ccache"
RUN . $UNDERLAY_WS/install/setup.sh && \
colcon build \
--symlink-install \
--mixin $OVERLAY_MIXINS \
--cmake-args \
--no-warn-unused-cli \
-DCMAKE_CXX_FLAGS="\
-Wno-parentheses \
-Wno-reorder \
-Wno-sign-compare \
-Wno-unused-but-set-variable \
-Wno-unused-function \
-Wno-unused-parameter \
-Wno-unused-value \
-Wno-unused-variable"
# --event-handlers console_direct+

# copy wrapper manifests
ENV WRAPPER_WS /opt/wrapper_ws
COPY --from=cache /tmp/wrapper_ws $WRAPPER_WS
WORKDIR $WRAPPER_WS

# install wrapper dependencies
RUN . $OVERLAY_WS/install/setup.sh && \
apt-get update && rosdep install -q -y \
--from-paths \
src \
$UNDERLAY_WS/src \
$OVERLAY_WS/src \
--ignore-src \
&& rm -rf /var/lib/apt/lists/*

# copy wrapper source
COPY --from=cache $WRAPPER_WS ./

# build wrapper source
ARG WRAPPER_MIXINS="release ccache"
RUN . $OVERLAY_WS/install/setup.sh && \
colcon build \
--symlink-install \
--mixin $WRAPPER_MIXINS \
--cmake-args \
--no-warn-unused-cli \
-DCMAKE_CXX_FLAGS="\
-Wno-sign-compare \
-Wno-unused-value \
-Wno-unused-variable \
-Wno-unused-but-set-variable \
-Wno-reorder \
-Wno-parentheses \
-Wno-unused-parameter"
# --event-handlers console_direct+

# source wrapper from entrypoint
RUN sed --in-place \
's|^source .*|source "$WRAPPER_WS/install/setup.bash"|' \
/ros_entrypoint.sh
13 changes: 13 additions & 0 deletions install/overlay.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
repositories:
MIT-SPARK/Kimera-RPGO:
type: git
# url: https://github.com/MIT-SPARK/Kimera-RPGO.git
# version: master
url: https://github.com/ruffsl/Kimera-RPGO.git
version: patch-1
MIT-SPARK/Kimera-VIO:
type: git
# url: https://github.com/MIT-SPARK/Kimera-VIO.git
# version: master
url: https://github.com/ruffsl/Kimera-VIO.git
version: patch-3
27 changes: 27 additions & 0 deletions install/underlay.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
repositories:
borglab/gtsam:
type: git
url: https://github.com/borglab/gtsam.git
version: develop
laurentkneip/opengv:
type: git
# url: https://github.com/laurentkneip/opengv.git
# version: master
url: https://github.com/ruffsl/opengv.git
version: patch-1
dorian3d/DBoW2:
type: git
# url: https://github.com/dorian3d/DBoW2.git
# version: master
url: https://github.com/ruffsl/DBoW2.git
version: patch-1
opencv/opencv:
type: git
# url: https://github.com/opencv/opencv.git
# version: master
url: https://github.com/ruffsl/opencv.git
version: patch-1
opencv/opencv/contrib:
type: git
url: https://github.com/opencv/opencv_contrib.git
version: 3.3.1
15 changes: 15 additions & 0 deletions install/wrapper.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
repositories:
MIT-SPARK/Kimera-VIO-ROS2:
type: git
url: https://github.com/MIT-SPARK/Kimera-VIO-ROS2.git
version: master
# ToniRV/mesh_rviz_plugins:
# type: git
# url: https://github.com/ToniRV/mesh_rviz_plugins.git
# version: master
# # url: https://github.com/ruffsl/mesh_rviz_plugins.git
# # version: patch-1
# ToniRV/kimera_rviz_markers:
# type: git
# url: https://github.com/ToniRV/kimera_rviz_markers.git
# version: master
13 changes: 13 additions & 0 deletions kimera_common/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
cmake_minimum_required(VERSION 3.5)
project(kimera_common NONE)

find_package(ament_cmake_core REQUIRED)

ament_package(
CONFIG_EXTRAS "kimera_common-extras.cmake"
)

install(
DIRECTORY cmake
DESTINATION share/${PROJECT_NAME}
)
22 changes: 22 additions & 0 deletions kimera_common/cmake/kimera_package.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#
# Standard Kimera project setup
#
# @public
#
macro(kimera_package)

# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(
-Wall
-Wextra
-Wpedantic
-Werror
-Wdeprecated
)
endif()
endmacro()
3 changes: 3 additions & 0 deletions kimera_common/kimera_common-extras.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
set(AMENT_BUILD_CONFIGURATION_KEYWORD_SEPARATOR ":")

include("${kimera_common_DIR}/kimera_package.cmake")
16 changes: 16 additions & 0 deletions kimera_common/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<package format="3">
<name>kimera_common</name>
<version>0.0.1</version>
<description>Common support functionality used throughout the Kimera stack</description>
<maintainer email="roxfoxpox@gmail.com">Ruffin White</maintainer>
<license>BSD</license>

<buildtool_depend>ament_cmake_core</buildtool_depend>

<buildtool_export_depend>ament_cmake_core</buildtool_export_depend>

<export>
<build_type>ament_cmake</build_type>
</export>
</package>
27 changes: 27 additions & 0 deletions kimera_graph_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
cmake_minimum_required(VERSION 3.5)
project(kimera_graph_msgs)

find_package(ament_cmake REQUIRED)
find_package(builtin_interfaces REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(kimera_common REQUIRED)
find_package(rosidl_default_generators REQUIRED)
find_package(std_msgs REQUIRED)

kimera_package()

set(msg_files
"msg/PoseGraph.msg"
"msg/PoseGraphEdge.msg"
"msg/PoseGraphNode.msg"
)

rosidl_generate_interfaces(${PROJECT_NAME}
${msg_files}
DEPENDENCIES
builtin_interfaces
geometry_msgs
std_msgs
)

ament_package()
5 changes: 5 additions & 0 deletions kimera_graph_msgs/msg/PoseGraph.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
std_msgs/Header header

# Nodes and edges
PoseGraphNode[] nodes
PoseGraphEdge[] edges
16 changes: 16 additions & 0 deletions kimera_graph_msgs/msg/PoseGraphEdge.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
std_msgs/Header header

uint64 key_from
uint64 key_to

int32 type

# Type enums
int32 ODOM = 0
int32 LOOPCLOSE = 1
int32 LANDMARK = 2
int32 REJECTED_LOOPCLOSE = 3

# Transforms in ede
geometry_msgs/Pose pose
float64[36] covariance
5 changes: 5 additions & 0 deletions kimera_graph_msgs/msg/PoseGraphNode.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
std_msgs/Header header

uint64 key

geometry_msgs/Pose pose
Loading