Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 9 additions & 9 deletions .github/workflows/build-ros.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ jobs:
use_ros_testing: true

# Rolling Ridley (No End-Of-Life)
- name: rolling stable
docker_image: ubuntu:noble
ros_distribution: rolling
use_ros_testing: false

- name: rolling testing
docker_image: ubuntu:noble
ros_distribution: rolling
use_ros_testing: true
#- name: rolling stable
# docker_image: ubuntu:resolute
# ros_distribution: rolling
# use_ros_testing: false

#- name: rolling testing
# docker_image: ubuntu:resolute
# ros_distribution: rolling
# use_ros_testing: true

container:
image: ${{ matrix.docker_image }}
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
[submodule "3rdparty/robin-map"]
path = mola_metric_maps/3rdparty/robin-map
url = https://github.com/Tessil/robin-map.git
[submodule "mola_viz_imgui/3rdparty/imgui"]
path = mola_viz_imgui/3rdparty/imgui
url = https://github.com/ocornut/imgui.git
branch = docking
2 changes: 1 addition & 1 deletion mola_demos/mola-cli-launchs/euroc_stereo_just_replay.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
2 changes: 1 addition & 1 deletion mola_demos/mola-cli-launchs/kitti360_just_replay.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}ImGui
#verbosity_level: DEBUG
params: ~ # none
12 changes: 9 additions & 3 deletions mola_demos/mola-cli-launchs/kitti_just_replay.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
#verbosity_level: DEBUG
params: ~ # none
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
verbosity_level: DEBUG
params:
# Persist ImGui window layout and docking state to
# $XDG_CONFIG_HOME/mola/imgui_<imgui_app_name>.ini (or
# $HOME/.config/mola/imgui_<imgui_app_name>.ini) across runs.
# Use a distinct name per launch config so different apps don't
# overwrite each other's layouts. Set to "" to disable persistence.
imgui_app_name: kitti_replay
7 changes: 3 additions & 4 deletions mola_demos/mola-cli-launchs/kitti_just_replay_to_ros2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,20 @@ modules:
#verbosity_level: INFO
params:
# Whenever a MOLA odometry/SLAM system publishes a new pose estimate
# it will be forwarded to /tf as a transformation between:
# it will be forwarded to /tf as a transformation between:
# `reference_frame` -> `base_link_frame`
base_link_frame: base_link
reference_frame: map

# If true, an nav_msgs/Odometry message will be also published
#
#
publish_odometry_msgs_from_slam: true


# ========================
# MolaViz
# (Remove if not needed)
# ========================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
2 changes: 1 addition & 1 deletion mola_demos/mola-cli-launchs/mulran_just_replay.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
4 changes: 2 additions & 2 deletions mola_demos/mola-cli-launchs/paris_luco_just_replay.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ modules:
win_pos: 5 70 400 400
params:
base_dir: ${PARIS_LUCO_BASE_DIR}
sequence: '00' # There is only one sequence in this dataset
sequence: "00" # There is only one sequence in this dataset
time_warp_scale: 1.0
start_paused: ${MOLA_DATASET_START_PAUSED|false}

# =====================
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
4 changes: 2 additions & 2 deletions mola_demos/mola-cli-launchs/rawlog_just_replay.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# -----------------------------------------------------------------------------

modules:
# Offline or online sensory data sources =====================
# Offline or online sensory data sources =====================
# =====================
# RawlogDataset
# =====================
Expand All @@ -27,6 +27,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
6 changes: 3 additions & 3 deletions mola_demos/mola-cli-launchs/ros2_ouster_just_view.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none

# Offline or online sensory data sources =====================
# Offline or online sensory data sources =====================
- type: mola::BridgeROS2
name: dataset_input
# In BridgeROS2, this execution rate (Hz) determines the
Expand All @@ -38,7 +38,7 @@ modules:
msg_type: PointCloud2
output_sensor_label: ${MOLA_LIDAR_NAME|lidar}
# If present, this will override whatever /tf tells about the sensor pose:
fixed_sensor_pose: "0 0 0 0 0 0" # 'x y z yaw_deg pitch_deg roll_deg''
fixed_sensor_pose: "0 0 0 0 0 0" # 'x y z yaw_deg pitch_deg roll_deg''
use_fixed_sensor_pose: ${MOLA_USE_FIXED_LIDAR_POSE|false}

- topic: /odom
Expand Down
20 changes: 10 additions & 10 deletions mola_demos/mola-cli-launchs/rosbag2_pointcloud_just_view.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none

# Offline or online sensory data sources =====================
# Offline or online sensory data sources =====================
- type: mola::Rosbag2Dataset
name: rosbag2_input
# In Rosbag2Dataset, this execution rate (Hz) determines the
Expand All @@ -34,29 +34,29 @@ modules:
# in bursts.
execution_rate: 50 # Hz
#verbosity_level: DEBUG

# Optional visualization of raw sensor streams in the MolaViz GUI
gui_preview_sensors:
- raw_sensor_label: ${MOLA_LIDAR_TOPIC|'/ouster/points'}
decimation: 1
win_pos: 5 5 400 400

#- raw_sensor_label: '/ouster/range_image'
# decimation: 1
# win_pos: 5 420 400 400

params:
# We use an environment variable to force the user to specify a bag file:
rosbag_filename: ${ROSBAG2_FILE}
base_link_frame_id: 'base_footprint'

base_link_frame_id: "base_footprint"

time_warp_scale: 1.0
start_paused: ${MOLA_DATASET_START_PAUSED|false}

#rosbag_storage_id: '' # Empty=auto guess. (mcap|sqlite3}
#rosbag_serialization: 'cdr'

# 'sensors' contains maps from output "sensorLabel"s, to the
# configuration of that data source (mainly, 'type', 'topic'):
# If no 'sensors' entry is given, all ROSBAG topics will be exposed
Expand All @@ -67,7 +67,7 @@ modules:
- topic: ${MOLA_LIDAR_TOPIC|'/ouster/points'}
type: CObservationPointCloud
# If present, this will override whatever /tf tells about the sensor pose:
fixed_sensor_pose: "0 0 0 0 0 0" # 'x y z yaw_deg pitch_deg roll_deg'
fixed_sensor_pose: "0 0 0 0 0 0" # 'x y z yaw_deg pitch_deg roll_deg'
use_fixed_sensor_pose: ${MOLA_USE_FIXED_LIDAR_POSE|false}

#- topic: /ouster/range_image
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,6 @@ modules:
# MolaViz
# =====================
- name: viz
type: mola::MolaViz
type: ${MOLA_GUI_MODULE|mola::MolaVizImGui}
#verbosity_level: DEBUG
params: ~ # none
4 changes: 2 additions & 2 deletions mola_viz/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# mola_viz
GUI for MOLA
GUI for MOLA based on nanogui (for the Dear ImGui alternative see `mola_viz_imgui`)

Provides the C++ library `libmola-viz` with a flexible API for any other module
Provides the C++ library `libmola_viz` with a flexible API for any other module
to display windows, controls, etc.

## Build and install
Expand Down
2 changes: 1 addition & 1 deletion mola_viz/src/MolaViz.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1046,7 +1046,7 @@ void MolaViz::spinOnce()
}

// ---------------------------------------------------------------------------
// Dataset UI - ported to create_subwindow_from_description
// Dataset UI
// ---------------------------------------------------------------------------

void MolaViz::dataset_ui_check_new_modules()
Expand Down
2 changes: 2 additions & 0 deletions mola_viz_imgui/3rdparty/.clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
DisableFormat: true
SortIncludes: Never
1 change: 1 addition & 0 deletions mola_viz_imgui/3rdparty/imgui
Submodule imgui added at 934c6a
70 changes: 70 additions & 0 deletions mola_viz_imgui/3rdparty/imgui_static/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# ------------------------------------------------------------------------------
# Static library target wrapping Dear ImGui (docking branch).
#
# Expected layout:
# <this file's parent>/../../3rdparty/imgui/ ← git submodule
#
# The submodule must be the "docking" branch of
# https://github.com/ocornut/imgui
# ------------------------------------------------------------------------------

cmake_minimum_required(VERSION 3.5)
project(imgui_static LANGUAGES CXX)

# Locate the submodule root relative to this file
get_filename_component(_IMGUI_ROOT
"${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/imgui" ABSOLUTE)

if(NOT EXISTS "${_IMGUI_ROOT}/imgui.h")
message(FATAL_ERROR
"Dear ImGui submodule not found at ${_IMGUI_ROOT}.\n"
"Run: git submodule update --init --recursive")
endif()

# Find GLFW (already required by mrpt-gui, so it will be present)
find_package(glfw3 REQUIRED)
find_package(OpenGL REQUIRED)

set(_IMGUI_SRCS
${_IMGUI_ROOT}/imgui.cpp
${_IMGUI_ROOT}/imgui_draw.cpp
${_IMGUI_ROOT}/imgui_tables.cpp
${_IMGUI_ROOT}/imgui_widgets.cpp
# ${_IMGUI_ROOT}/imgui_demo.cpp # can be excluded in release builds
${_IMGUI_ROOT}/misc/cpp/imgui_stdlib.cpp # std::string InputText support
${_IMGUI_ROOT}/backends/imgui_impl_glfw.cpp
${_IMGUI_ROOT}/backends/imgui_impl_opengl3.cpp
)

add_library(imgui_static STATIC ${_IMGUI_SRCS})
set_target_properties(imgui_static PROPERTIES POSITION_INDEPENDENT_CODE TRUE)

target_include_directories(imgui_static
PUBLIC
${_IMGUI_ROOT}
${_IMGUI_ROOT}/backends
${_IMGUI_ROOT}/misc/cpp
)

# Enable the docking branch feature set.
# No explicit loader macro: imgui_impl_opengl3 will use its bundled
# imgui_impl_opengl3_loader.h (available since ImGui ~1.87), so we do not need
# to find or link GLEW/GLAD/gl3w separately.
target_compile_definitions(imgui_static
PUBLIC
IMGUI_ENABLE_DOCKING # activates docking API
)
Comment thread
coderabbitai[bot] marked this conversation as resolved.

target_link_libraries(imgui_static
PUBLIC
glfw
OpenGL::GL
)

# Suppress warnings from third-party code
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(imgui_static PRIVATE -w)
endif()

# Export as an alias so parent CMake can use it as imgui::imgui
add_library(imgui::imgui ALIAS imgui_static)
Loading
Loading