Skip to content

Commit

Permalink
Merge pull request #1 from nakai-omer/humble
Browse files Browse the repository at this point in the history
merge Humble changes
  • Loading branch information
ryanpennings authored Jul 31, 2022
2 parents 958d0ac + dd99c8d commit 2cff139
Show file tree
Hide file tree
Showing 9 changed files with 479 additions and 442 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
*.user
.vscode/
.vscode/
build
install
log
174 changes: 53 additions & 121 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,153 +1,85 @@
cmake_minimum_required(VERSION 3.0.2)
cmake_minimum_required(VERSION 3.5)
project(ira_laser_tools)
add_compile_options(-std=c++14)

## 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 laser_geometry roscpp sensor_msgs std_msgs tf dynamic_reconfigure pcl_ros)

# Default to C99
set(CMAKE_C_STANDARD 99)

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)
endif()

find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_action REQUIRED)
find_package(rclcpp_lifecycle REQUIRED)
find_package(std_msgs REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(laser_geometry REQUIRED)
find_package(tf2 REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(pcl_ros REQUIRED)
find_package(Eigen3 REQUIRED)

find_package(PCL REQUIRED)

set(dependencies
rclcpp
rclcpp_action
rclcpp_lifecycle
std_msgs
geometry_msgs
sensor_msgs
laser_geometry
tf2
tf2_ros
pcl_ros
Eigen3
PCL
)


# bugfix for g++-Warning
# "<command-line>:0:0: warning: missing whitespace after the macro name"
remove_definitions(-DDISABLE_LIBUSB-1.0)

generate_dynamic_reconfigure_options(cfg/laserscan_multi_merger.cfg cfg/laserscan_virtualizer.cfg)


## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)


## Uncomment this if the package has a setup.py. This macro ensures
## modules and global scripts declared therein get installed
## See http://ros.org/doc/groovy/api/catkin/html/user_guide/setup_dot_py.html
# catkin_python_setup()

#######################################
## Declare ROS messages and services ##
#######################################

## Generate messages in the 'msg' folder
# add_message_files(
# FILES
# Message1.msg
# Message2.msg
# )

## Generate services in the 'srv' folder
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )

## Generate added messages and services with any dependencies listed here
# generate_messages(
# DEPENDENCIES
# sensor_msgs# std_msgs
# )

###################################
## catkin specific configuration ##
###################################
## The catkin_package macro generates cmake config files for your package
## Declare things to be passed to dependent projects
## LIBRARIES: libraries you create in this project that dependent projects also need
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## DEPENDS: system dependencies of this project that dependent projects also need
catkin_package(
INCLUDE_DIRS
# LIBRARIES laser_merger
# CATKIN_DEPENDS laser_geometry roscpp sensor_msgs std_msgs tf
# DEPENDS system_lib
)

###########
## Build ##
###########

## Specify additional locations of header files
## Your package locations should be listed before other locations
include_directories(include
${catkin_INCLUDE_DIRS}
${EIGEN_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
)

#add_definitions(${EIGEN_DEFINITIONS})

## Declare a cpp library
# add_library(laser_merger
# src/${PROJECT_NAME}/laser_merger.cpp
# )

## Declare a cpp executable
#add_executable(laser_merger_node src/laser_merger_node.cpp)
#target_link_libraries(laser_merger_node ${catkin_LIBRARIES})

add_executable(laserscan_multi_merger src/laserscan_multi_merger.cpp)
target_link_libraries(laserscan_multi_merger ${catkin_LIBRARIES} ${PCL_LIBRARIES})

## Add cmake target dependencies of the executable/library
## as an example, message headers may need to be generated before nodes
add_dependencies(laserscan_multi_merger ${PROJECT_NAME}_gencfg)
ament_target_dependencies(laserscan_multi_merger ${dependencies})
target_include_directories(laserscan_multi_merger PUBLIC ${EIGEN_INCLUDE_DIRS})
target_include_directories(laserscan_multi_merger PUBLIC ${PCL_INCLUDE_DIRS})
target_link_libraries(laserscan_multi_merger ${PCL_LIBRARIES})

add_executable(laserscan_virtualizer src/laserscan_virtualizer.cpp)
target_link_libraries(laserscan_virtualizer ${catkin_LIBRARIES} ${PCL_LIBRARIES})

## Add cmake target dependencies of the executable/library
## as an example, message headers may need to be generated before nodes
add_dependencies(laserscan_virtualizer ${PROJECT_NAME}_gencfg)

## Specify libraries to link a library or executable target against

ament_target_dependencies(laserscan_virtualizer ${dependencies})
target_include_directories(laserscan_virtualizer PUBLIC ${EIGEN_INCLUDE_DIRS})
target_include_directories(laserscan_virtualizer PUBLIC ${PCL_INCLUDE_DIRS})
target_link_libraries(laserscan_virtualizer ${PCL_LIBRARIES})

#############
## Install ##
#############

# all install targets should use catkin DESTINATION variables
# See http://ros.org/doc/groovy/api/catkin/html/adv_user_guide/variables.html

## Mark executable scripts (Python etc.) for installation
## in contrast to setup.py, you can choose the destination
# install(PROGRAMS
# scripts/my_python_script
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )

## Mark executables and/or libraries for installation
install(TARGETS laserscan_multi_merger laserscan_virtualizer
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION lib/${PROJECT_NAME}
)

## Mark cpp header files for installation
# install(DIRECTORY include/${PROJECT_NAME}/
# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
# FILES_MATCHING PATTERN "*.h"
# PATTERN ".svn" EXCLUDE
# )

## Mark other files for installation (e.g. launch and bag files, etc.)
install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
DESTINATION share/${PROJECT_NAME}/launch
)

#############
## Testing ##
#############

## Add gtest based cpp test target and link libraries
# catkin_add_gtest(${PROJECT_NAME}-test test/test_laser_merger.cpp)
# if(TARGET ${PROJECT_NAME}-test)
# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
# endif()

## Add folders to be run by python nosetests
# catkin_add_nosetests(test)
ament_export_dependencies(${dependencies})
ament_package()
17 changes: 0 additions & 17 deletions cfg/laserscan_multi_merger.cfg

This file was deleted.

17 changes: 0 additions & 17 deletions cfg/laserscan_virtualizer.cfg

This file was deleted.

23 changes: 12 additions & 11 deletions launch/laserscan_multi_merger.launch
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
<!-- DESCRITPION -->

<launch>
<node pkg="ira_laser_tools" name="laserscan_multi_merger" type="laserscan_multi_merger" output="screen">
<param name="destination_frame" value="cart_frame"/>
<param name="cloud_destination_topic" value="/merged_cloud"/>
<param name="scan_destination_topic" value="/scan_multi"/>
<param name="laserscan_topics" value ="/scansx /scandx" /> <!-- LIST OF THE LASER SCAN TOPICS TO SUBSCRIBE -->
<param name="angle_min" value="-2.0"/>
<param name="angle_max" value="2.0"/>
<param name="angle_increment" value="0.0058"/>
<param name="scan_time" value="0.0333333"/>
<param name="range_min" value="0.30"/>
<param name="range_max" value="50.0"/>
<node pkg="ira_laser_tools" name="laserscan_multi_merger" exec="laserscan_multi_merger" output="screen">
<param name="destination_frame" value="base_link"/>
<param name="cloud_destination_topic" value="/merged_cloud"/>
<param name="scan_destination_topic" value="/scan_multi"/>
<param name="laserscan_topics" value ="/scansx /scandx" />
<!-- LIST OF THE LASER SCAN TOPICS TO SUBSCRIBE -->
<param name="angle_min" value="-3.14"/>
<param name="angle_max" value="3.14"/>
<param name="angle_increment" value="0.00437"/>
<param name="scan_time" value="0.0"/>
<param name="range_min" value="0.1"/>
<param name="range_max" value="2.0"/>
</node>
</launch>
27 changes: 18 additions & 9 deletions launch/laserscan_virtualizer.launch
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
FROM: http://wiki.ros.org/tf#static_transform_publisher
<<static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms>>
Publish a static coordinate transform to tf using an x/y/z offset and yaw/pitch/roll. The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.
== OR ==
Publish a static coordinate transform to tf using an x/y/z offset and yaw/pitch/roll. The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value. == OR ==
<<static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms>>
Publish a static coordinate transform to tf using an x/y/z offset and quaternion. The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.
Expand All @@ -13,13 +12,23 @@ Publish a static coordinate transform to tf using an x/y/z offset and quaternion

<!-- DEFINE HERE THE STATIC TRANFORMS, FROM BASE_FRAME (COMMON REFERENCE FRAME) TO THE VIRTUAL LASER FRAMES-->
<!-- WARNING: the virtual laser frame(s) *must* match the virtual laser name(s) listed in param: output_laser_scan -->
<node pkg="tf" type="static_transform_publisher" name="ira_static_broadcaster1" args="0 0 0 0 0.3 0 laser_frame scansx 1000" />
<node pkg="tf" type="static_transform_publisher" name="ira_static_broadcaster2" args="0 0 0 0 0.0 0 laser_frame scandx 1000" />
<node pkg="tf2_ros" exec="static_transform_publisher" name="ira_static_broadcaster1" args="--yaw 0.3 --frame-id base_link --child-frame-id scansx" />
<node pkg="tf2_ros" exec="static_transform_publisher" name="ira_static_broadcaster2" args="--frame-id base_link --child-frame-id scandx" />

<node pkg="ira_laser_tools" name="laserscan_virtualizer" type="laserscan_virtualizer" output="screen">
<param name="cloud_topic" value="/cloud_in"/> <!-- INPUT POINT CLOUD -->
<param name="base_frame" value="/laser_frame"/> <!-- REFERENCE FRAME WHICH LASER(s) ARE RELATED-->
<param name="output_laser_topic" value ="/scan" /> <!-- VIRTUAL LASER OUTPUT TOPIC, LEAVE VALUE EMPTY TO PUBLISH ON THE VIRTUAL LASER NAMES (param: output_laser_scan) -->
<param name="virtual_laser_scan" value ="scansx scandx" /> <!-- LIST OF THE VIRTUAL LASER SCANS. YOU MUST PROVIDE THE STATIC TRANSFORMS TO TF, SEE ABOVE -->
<node pkg="ira_laser_tools" name="laserscan_virtualizer" exec="laserscan_virtualizer" output="screen">
<!-- INPUT POINT CLOUD -->
<param name="cloud_topic" value="/trunk4_camera_depth_camera/points"/>
<!-- REFERENCE FRAME WHICH LASER(s) ARE RELATED-->
<param name="base_frame" value="base_link"/>
<!-- VIRTUAL LASER OUTPUT TOPIC, LEAVE VALUE EMPTY TO PUBLISH ON THE VIRTUAL LASER NAMES (param: output_laser_scan) -->
<param name="output_laser_topic" value ="/scan" />
<!-- LIST OF THE VIRTUAL LASER SCANS. YOU MUST PROVIDE THE STATIC TRANSFORMS TO TF, SEE ABOVE -->
<param name="virtual_laser_scan" value ="scansx scandx" />
<param name="angle_min" value="-3.14"/>
<param name="angle_max" value="3.14"/>
<param name="angle_increment" value="0.00437"/>
<param name="scan_time" value="0.0"/>
<param name="range_min" value="0.1"/>
<param name="range_max" value="2.0"/>
</node>
</launch>
46 changes: 25 additions & 21 deletions package.xml
Original file line number Diff line number Diff line change
@@ -1,34 +1,38 @@
<?xml version="1.0"?>
<package>
<package format="3">
<name>ira_laser_tools</name>
<version>1.0.7</version>
<version>2.0.7</version>
<description>The ira_laser_tools package. These nodes are meant to provide some utils for lasers, like listen to different laser scan sources and merge them in a single scan or generate virtual laser scans from a pointcloud.</description>

<url>http://www.ros.org/wiki/ira_laser_tools</url>
<maintainer email="augusto.ballardini@unimib.it">Augusto</maintainer>
<maintainer email="p.colombo45@campus.unimib.it">Pietro</maintainer>
<maintainer email="f.delia2@campus.unimib.it">Fabio</maintainer>

<license>BSD</license>

<buildtool_depend>catkin</buildtool_depend>
<build_depend>sensor_msgs</build_depend>
<build_depend>libpcl-all-dev</build_depend>
<build_depend>pcl_ros</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>tf</build_depend>
<build_depend>laser_geometry</build_depend>
<build_depend>roscpp</build_depend>
<run_depend>sensor_msgs</run_depend>
<run_depend>libpcl-all-dev</run_depend>
<run_depend>pcl_ros</run_depend>
<run_depend>std_msgs</run_depend>
<run_depend>tf</run_depend>
<run_depend>laser_geometry</run_depend>
<run_depend>roscpp</run_depend>
<buildtool_depend>ament_cmake</buildtool_depend>

<depend>sensor_msgs</depend>
<depend>libpcl-all-dev</depend>
<depend>pcl_ros</depend>
<depend>geometry_msgs</depend>
<depend>std_msgs</depend>
<depend>tf2</depend>
<depend>tf2_ros</depend>
<depend>laser_geometry</depend>
<depend>rclcpp</depend>
<depend>rclcpp_action</depend>
<depend>rclcpp_lifecycle</depend>
<!-- Needed to work around https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=894656 on Debian Stretch -->
<build_depend>libvtk-qt</build_depend>
<run_depend>libvtk-qt</run_depend>

<depend>libvtk-qt</depend>

<exec_depend>rosidl_default_runtime</exec_depend>
<exec_depend>eigen3</exec_depend>
<exec_depend>pcl</exec_depend>

<export>
<build_type>ament_cmake</build_type>
</export>

</package>
Loading

0 comments on commit 2cff139

Please sign in to comment.