Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
dc95b47
docker config
asierbikandi Jun 11, 2025
85164df
docker config for ros jazzy and other configs
asierbikandi Jun 13, 2025
afe23fb
devcontainer config change
asierbikandi Jun 13, 2025
ff2d609
[fix] - working CmakeList and package.xml
asierbikandi Jun 17, 2025
dc9bbd3
[fix] - container and dev container service name change to vsgraphs_…
asierbikandi Jun 17, 2025
7fb27ad
[feat] - dockerfile conffiguration progress for ros2
asierbikandi Jun 17, 2025
0b664aa
[feat] - ros2 migration src changes
asierbikandi Jun 17, 2025
d683c78
[feat] - ros2 migration changes
asierbikandi Jun 17, 2025
315d80d
[feat] - comment aruco markers related aruco_ros, aruco_msgs....
asierbikandi Jun 17, 2025
428aa45
[feat] - Update to c++17 to meet Jazzy requirements
asierbikandi Jun 18, 2025
8b542cb
[fix] - Change mnFullBAIdx from boll to unsigned int as it is an index
asierbikandi Jun 18, 2025
f0150b0
[fix] PLC include change, just ros_rgb.cc, segmenter_ros included
asierbikandi Jun 24, 2025
835ca17
[fix] - entrypoint fix for ros2
asierbikandi Jun 24, 2025
48577a1
[feat] - ros2 migration of wrapper
asierbikandi Jun 24, 2025
85acbaa
[fix] - typo error in the VSGraphsWallData msg
asierbikandi Jun 24, 2025
ba20fab
[feat] - launching in ros2
asierbikandi Jun 24, 2025
1714cba
[feat] - comment for persistent bash history
asierbikandi Jun 24, 2025
a05fb4e
[fix] - dockerfile cuda and torch version fix
asierbikandi Jun 24, 2025
a2ee046
[feat] - ros2 migration
asierbikandi Jun 24, 2025
cca837b
[fix] - publisers fix
asierbikandi Jun 24, 2025
5692daf
[feat] - camera depth launch
asierbikandi Jun 24, 2025
ca57281
[feat] - Add image depth image proc and backward_ros
asierbikandi Jun 25, 2025
8251793
[feta] - Add backward_ros
asierbikandi Jun 25, 2025
512e9e1
{feat} - first ros2 rviz configuration
asierbikandi Jun 25, 2025
5eaa8fc
[fix] - inicialization error of lastPlanePublishTime
asierbikandi Jun 25, 2025
07112fa
[feat] - comments for bash history in docker
asierbikandi Jun 25, 2025
77e3d33
[fix] - update configuration of rviz
asierbikandi Jun 25, 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
22 changes: 12 additions & 10 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"name": "vsgraphs_ros1",
"remoteUser": "${env.USERNAME}",
"service": "vsgraphs",
"name": "vsgraphs_ros_jazzy",
"remoteUser": "asier", // Once the container is running, attach to it as the user asier
//only works if that user actually exists inside the container.
// "remoteUser": "${env.USERNAME}",
"service": "vsgraphs_ros2",
"customizations": {
"vscode": {
"extensions": [
Expand All @@ -10,12 +12,12 @@
"ms-vscode.cpptools",
"ms-vscode.cpptools-themes",
"ms-vscode.cpptools-extension-pack",
"ms-iot.vscode-ros",
// "ms-iot.vscode-ros",
"ms-vscode.cmake-tools",
"esbenp.prettier-vscode",
"GitHub.copilot",
"eamodio.gitlens",
"PKief.material-icon-theme"
// "esbenp.prettier-vscode",
"GitHub.copilot"
// "eamodio.gitlens",
// "PKief.material-icon-theme"
],
"settings": {
"files.associations": {
Expand All @@ -27,6 +29,6 @@
}
}
},
"workspaceFolder": "/workspace",
"workspaceFolder": "/home/asier/ros2_ws",
"dockerComposeFile": "../docker/docker-compose.yml"
}
}
255 changes: 144 additions & 111 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.5) # ros2 change
project(orb_slam3_ros)

IF(NOT CMAKE_BUILD_TYPE)
Expand All @@ -13,22 +13,30 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3")
# set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=native")
# set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native")

# Check C++14 or C++0x support
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)

if(COMPILER_SUPPORTS_CXX14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
add_definitions(-DCOMPILEDWITHC11)
message(STATUS "Using flag -std=c++14.")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
add_definitions(-DCOMPILEDWITHC0X)
message(STATUS "Using flag -std=c++0x.")
else()
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++14 support. Please use a different C++ compiler.")
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

# # Check C++14 or C++0x support
# include(CheckCXXCompilerFlag)
# CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
# CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)

# if(COMPILER_SUPPORTS_CXX14)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
# add_definitions(-DCOMPILEDWITHC11)
# message(STATUS "Using flag -std=c++14.")
# elseif(COMPILER_SUPPORTS_CXX0X)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
# add_definitions(-DCOMPILEDWITHC0X)
# message(STATUS "Using flag -std=c++0x.")
# else()
# message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++14 support. Please use a different C++ compiler.")
# endif()


LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)

Expand All @@ -40,57 +48,51 @@ endif()
MESSAGE("OPENCV VERSION:")
MESSAGE(${OpenCV_VERSION})

## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
cv_bridge
image_transport
geometry_msgs
sensor_msgs
nav_msgs
std_msgs
message_filters
roscpp
rospy
tf
tf2
message_generation
aruco_ros
aruco_msgs
backward_ros
rviz_visual_tools
pcl_ros
segmenter_ros
)
## Find ament macros and libraries
## Use 'find_package' for ROS 2 packages instead of 'catkin'
## Find ament and ROS2 packages
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclpy REQUIRED)
find_package(cv_bridge REQUIRED)
find_package(image_transport REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(std_msgs REQUIRED)
find_package(message_filters REQUIRED)
find_package(tf2 REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(rosidl_default_generators REQUIRED)
find_package(rosidl_default_runtime REQUIRED)
# find_package(aruco_ros REQUIRED) # Comment out - check if ROS2 equivalent exists
# find_package(aruco_msgs REQUIRED) # Comment out - check if ROS2 equivalent exists
find_package(backward_ros REQUIRED) # Comment out - check if ROS2 equivalent exists
find_package(rviz_visual_tools REQUIRED)
find_package(pcl_ros REQUIRED)
find_package(segmenter_ros REQUIRED) # Comment out - check if ROS2 equivalent exists


find_package(Eigen3 3.1.0 REQUIRED)
find_package(Pangolin REQUIRED)
# find_package(PCL REQUIRED)
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)

find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_service_files(
FILES
SaveMap.srv
)

# Generate messages in the 'msg' folder
add_message_files(
FILES
vSGraphs_WallData.msg
vSGraphs_RoomData.msg
vSGraphs_AllWallsData.msg
vSGraphs_AllDetectdetRooms.msg
)

generate_messages(
DEPENDENCIES
std_msgs
geometry_msgs
)

catkin_package (
CATKIN_DEPENDS roscpp rospy std_msgs geometry_msgs cv_bridge image_transport tf sensor_msgs dynamic_reconfigure message_runtime backward_ros rviz_visual_tools
LIBRARIES {PROJECT_NAME} libDBoW2
# Generate services
rosidl_generate_interfaces(${PROJECT_NAME}
"srv/SaveMap.srv"
"msg/VSGraphsWallData.msg"
"msg/VSGraphsRoomData.msg"
"msg/VSGraphsAllWallsData.msg"
"msg/VSGraphsAllDetectdetRooms.msg"
DEPENDENCIES std_msgs geometry_msgs sensor_msgs
)

## Specify additional locations of header files
Expand All @@ -105,18 +107,24 @@ include_directories(
${PROJECT_SOURCE_DIR}/orb_slam3/Thirdparty/Sophus
${EIGEN3_INCLUDE_DIR}
${Pangolin_INCLUDE_DIRS}
${catkin_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
${segmenter_ros_INCLUDE_DIRS}
)
include_directories(${OPENGL_INCLUDE_DIRS})

# ROS2 uses ament_target_dependencies instead of catkin_INCLUDE_DIRS
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

# Include third-party CMakeLists
include(${PROJECT_SOURCE_DIR}/orb_slam3/Thirdparty/DBoW2/CMakeLists.txt)
include(${PROJECT_SOURCE_DIR}/orb_slam3/Thirdparty/g2o/CMakeLists.txt)

# Set library output directory
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/orb_slam3/lib)
add_library(${PROJECT_NAME} SHARED

# Create the main library
add_library(${PROJECT_NAME}_lib SHARED
orb_slam3/src/System.cc
orb_slam3/src/Tracking.cc
orb_slam3/src/LocalMapping.cc
Expand Down Expand Up @@ -201,7 +209,7 @@ add_library(${PROJECT_NAME} SHARED
orb_slam3/include/SemanticsManager.h
)

target_link_libraries(${PROJECT_NAME}
target_link_libraries(${PROJECT_NAME}_lib
${OpenCV_LIBS}
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
Expand All @@ -213,62 +221,87 @@ target_link_libraries(${PROJECT_NAME}
-lcrypto
)

## ROS node
add_executable(ros_mono
src/ros_mono.cc
src/common.cc
)
target_link_libraries(ros_mono
${PROJECT_NAME}
${catkin_LIBRARIES}
# ROS2 specific: Use ament_target_dependencies for ROS2 packages
ament_target_dependencies(${PROJECT_NAME}_lib
rclcpp
std_msgs
cv_bridge
sensor_msgs
geometry_msgs
tf2
tf2_ros
nav_msgs
message_filters
image_transport
pcl_ros
rviz_visual_tools
# segmenter_ros
)

## ROS node
add_executable(ros_mono_inertial
src/ros_mono_inertial.cc
src/common.cc
)
target_link_libraries(ros_mono_inertial
${PROJECT_NAME}
${catkin_LIBRARIES}
)

## ROS node
add_executable(ros_stereo
src/ros_stereo.cc
## ROS2 node
add_executable(ros_rgbd
src/ros_rgbd.cc
src/common.cc
)
target_link_libraries(ros_stereo
${PROJECT_NAME}
${catkin_LIBRARIES}
)

## ROS node
add_executable(ros_stereo_inertial
src/ros_stereo_inertial.cc
src/common.cc
target_link_libraries(ros_rgbd
${PROJECT_NAME}_lib
)
target_link_libraries(ros_stereo_inertial
${PROJECT_NAME}
${catkin_LIBRARIES}
ament_target_dependencies(ros_rgbd
rclcpp
sensor_msgs
geometry_msgs
cv_bridge
std_msgs
nav_msgs
message_filters
tf2
tf2_ros
segmenter_ros
)

## ROS node
add_executable(ros_rgbd
src/ros_rgbd.cc
src/common.cc
## ROS2 node
# add_executable(ros_rgbd_inertial
# src/ros_rgbd_inertial.cc
# src/common.cc
# )

# target_link_libraries(ros_rgbd_inertial
# ${PROJECT_NAME}_lib
# )
# ament_target_dependencies(ros_rgbd_inertial
# rclcpp
# sensor_msgs
# geometry_msgs
# cv_bridge
# std_msgs
# nav_msgs
# message_filters
# tf2
# tf2_ros
# segmenter_ros
# )

# Make sure executables can use the custom messages
rosidl_target_interfaces(ros_rgbd ${PROJECT_NAME} "rosidl_typesupport_cpp")
# rosidl_target_interfaces(ros_rgbd_inertial ${PROJECT_NAME} "rosidl_typesupport_cpp")

install(
DIRECTORY launch config orb_slam3/Vocabulary
DESTINATION share/${PROJECT_NAME}
)
target_link_libraries(ros_rgbd
${PROJECT_NAME}
${catkin_LIBRARIES}

# Install the library
install(TARGETS ${PROJECT_NAME}_lib
DESTINATION lib/${PROJECT_NAME}
)

## ROS node
add_executable(ros_rgbd_inertial
src/ros_rgbd_inertial.cc
src/common.cc
# Install executables
install(TARGETS
ros_rgbd
# ros_rgbd_inertial
DESTINATION lib/${PROJECT_NAME}
)
target_link_libraries(ros_rgbd_inertial
${PROJECT_NAME}
${catkin_LIBRARIES}
)

# IMPORTANT: This must be the very last line in CMakeLists.txt
ament_package()
Loading