Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
a8d1ce0
Modifications required for colcon to build mocha_core
fcladera Aug 11, 2025
974f4d3
Fix license in mocha_core
fcladera Aug 12, 2025
00e6940
Modifications required for colcon to build mocha_launch
fcladera Aug 12, 2025
85c822e
Modifications required for colcon to build interface_rajant
fcladera Aug 12, 2025
3ed913d
New file structure for mocha_core replicating ROS 2 hybrid project
fcladera Aug 12, 2025
dc6ddb4
Migrated hash_comm.py
fcladera Aug 12, 2025
1df7511
Migration of database and database_utils
fcladera Aug 12, 2025
490062a
Remove linting test in CMakeLists.txt
fcladera Aug 12, 2025
3f72996
test_database_utils migrated to work with colcon
fcladera Aug 12, 2025
9216803
Migrated zmq_comm_node.py
fcladera Aug 12, 2025
a0f234b
Migrate synchronize_channel and test_synchronize_channel
fcladera Aug 12, 2025
00a0a67
Mostly completed migration of database_server.py
fcladera Aug 13, 2025
cd4350e
integrate_database.py migration with test robot sync
fcladera Aug 13, 2025
0ef6ce3
translatory.py migrated with new test case
fcladera Aug 13, 2025
7c24d47
topic_publisher.py migrated with new test cases.
fcladera Aug 13, 2025
cdce3e6
Migrated launch files
fcladera Aug 13, 2025
45a2881
Migrated interface_rajant pkg
fcladera Aug 13, 2025
865f5aa
Build as python package so we can test with colcon
fcladera Aug 15, 2025
5acf19e
Propagate robot name from launch files into mocha_core
fcladera Aug 15, 2025
bb70106
Better names for mocha_core services
fcladera Aug 15, 2025
0b1c3cf
Simpler topic_configs.yaml to test in robots
fcladera Aug 15, 2025
92b4c64
topic_publisher and translator executed in main()
fcladera Aug 15, 2025
d8d0d4d
Fixes in services in database_server
fcladera Aug 15, 2025
1f8e2ec
Improved zmq_comm_node and test to avoid creating node
fcladera Aug 17, 2025
e607e32
Cleanup synchronize_channel and test_synchronize_channel.
fcladera Aug 17, 2025
888e8f2
Deleted run_test.sh as we will be running tests with colcon
fcladera Aug 17, 2025
19b13c8
database simplified to use nanoseconds only
fcladera Aug 18, 2025
fccf822
Small changes in database and zmq_comm_node
fcladera Aug 18, 2025
5e9bc18
Simplified database_utils and test_database_utils
fcladera Aug 18, 2025
0184c9f
Fixed problem with time discretization in database messages
fcladera Aug 18, 2025
f72606c
Cleanup of database_server and test_database_server
fcladera Aug 18, 2025
c51c709
test_database_server now runs with proper service calls
fcladera Aug 19, 2025
86dd991
database_sever improved QoS profile and multi threading
fcladera Aug 19, 2025
38aba6e
Detect collisions in database
fcladera Aug 19, 2025
e399c9a
Fixed small bugs in zmq_comm_node and synchronize_channel
fcladera Aug 20, 2025
5fca798
Integrate database mostly finished, only small deadlock...
fcladera Aug 20, 2025
7595401
Fixed rogue thread issue on integrate_database
fcladera Aug 20, 2025
21e47ce
Overhauled translators and test_translators
fcladera Aug 20, 2025
9d9c129
Database can now report collisions
fcladera Aug 20, 2025
1b0793c
First version of the test_translator storm
fcladera Aug 20, 2025
3543412
Fixed bug on timestamp publication for sync channel
fcladera Aug 22, 2025
1fe6c07
Fixed issue on database when requesting latest headers. Updated test …
fcladera Aug 22, 2025
89619f3
synchronize_channel seems broken ugh
fcladera Aug 22, 2025
06cf662
synchronize_channel fixed
fcladera Aug 24, 2025
198cda9
database_server emits a message once database is modified
fcladera Aug 25, 2025
caed9a2
Changed integrate_database name to just mocha
fcladera Aug 25, 2025
81f6eb2
Increase SIGTERM timeout to 10 seconds by default
fcladera Aug 25, 2025
800180e
Remove destroy_node() and shutdown() as suggested by https://ros2-tut…
fcladera Aug 25, 2025
d818711
Publish database header in database_cb, makes topic_publisher easier
fcladera Aug 25, 2025
007b436
Minor naming issues in interface_rajant and mocha_core
fcladera Aug 25, 2025
b7d50f5
topic_publisher overhaul for new database structure
fcladera Aug 25, 2025
6e69fd9
Updated namespace for rajant
fcladera Aug 25, 2025
9dbf738
Updated QoS for translator and topic_publisher
fcladera Aug 25, 2025
73a60ad
Make topic_publisher server req async
fcladera Aug 26, 2025
c87082e
Better message print for Database messages
fcladera Aug 26, 2025
2018555
Overhaul of test_topic_publisher
fcladera Aug 26, 2025
0a5267a
Fix test_database_server with new topic name
fcladera Aug 26, 2025
58d86ae
Improved test_translator to make it more deterministic
fcladera Aug 28, 2025
10a2742
Fix small issue when printing repeated header message
fcladera Aug 28, 2025
25413d5
Force an even cleaner shutdown for mocha
fcladera Aug 29, 2025
f1e7923
Complete overhaul of rajant_interface with rajant_peer_rssi
fcladera Aug 29, 2025
aee9f90
Filter repeated messages on rajant_peer_rssi, which may indicate a de…
fcladera Aug 29, 2025
2594194
Better ROS2 file structure in interface_rajant
fcladera Aug 30, 2025
05eb3ed
Bugfix for throttling packets on rajant_peer_rssi
fcladera Aug 30, 2025
f3dbd07
Added test sample files for interface_rajant mimicking jar output
fcladera Aug 30, 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
225 changes: 33 additions & 192 deletions interface_rajant/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,203 +1,44 @@
cmake_minimum_required(VERSION 2.8.3)
cmake_minimum_required(VERSION 3.8)
project(interface_rajant)

## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

## 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
rospy
std_msgs
)

## 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/api/catkin/html/user_guide/setup_dot_py.html
# catkin_python_setup()

################################################
## Declare ROS messages, services and actions ##
################################################

## To declare and build messages, services or actions from within this
## package, follow these steps:
## * Let MSG_DEP_SET be the set of packages whose message types you use in
## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
## * In the file package.xml:
## * add a build_depend tag for "message_generation"
## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
## but can be declared for certainty nonetheless:
## * add a exec_depend tag for "message_runtime"
## * In this file (CMakeLists.txt):
## * add "message_generation" and every package in MSG_DEP_SET to
## find_package(catkin REQUIRED COMPONENTS ...)
## * add "message_runtime" and every package in MSG_DEP_SET to
## catkin_package(CATKIN_DEPENDS ...)
## * uncomment the add_*_files sections below as needed
## and list every .msg/.srv/.action file to be processed
## * uncomment the generate_messages entry below
## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)

## 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 actions in the 'action' folder
# add_action_files(
# FILES
# Action1.action
# Action2.action
# )

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

################################################
## Declare ROS dynamic reconfigure parameters ##
################################################

## To declare and build dynamic reconfigure parameters within this
## package, follow these steps:
## * In the file package.xml:
## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
## * In this file (CMakeLists.txt):
## * add "dynamic_reconfigure" to
## find_package(catkin REQUIRED COMPONENTS ...)
## * uncomment the "generate_dynamic_reconfigure_options" section below
## and list every .cfg file to be processed

## Generate dynamic reconfigure parameters in the 'cfg' folder
# generate_dynamic_reconfigure_options(
# cfg/DynReconf1.cfg
# cfg/DynReconf2.cfg
# )

###################################
## catkin specific configuration ##
###################################
## The catkin_package macro generates cmake config files for your package
## Declare things to be passed to dependent projects
## INCLUDE_DIRS: uncomment this if your package contains header files
## 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 include
# LIBRARIES interface_rajant
# CATKIN_DEPENDS rospy std_msgs
# DEPENDS system_lib
)
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(ament_cmake_python REQUIRED)
find_package(rclpy REQUIRED)

###########
## Build ##
###########
# Install Python modules
ament_python_install_package(${PROJECT_NAME})

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

## Declare a C++ library
# add_library(${PROJECT_NAME}
# src/${PROJECT_NAME}/interface_rajant.cpp
# )

## Add cmake target dependencies of the library
## as an example, code may need to be generated before libraries
## either from message generation or dynamic reconfigure
# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

## Declare a C++ executable
## With catkin_make all packages are built within a single CMake context
## The recommended prefix ensures that target names across packages don't collide
# add_executable(${PROJECT_NAME}_node src/interface_rajant_node.cpp)

## Rename C++ executable without prefix
## The above recommended prefix causes long target names, the following renames the
## target back to the shorter version for ease of user use
## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")

## Add cmake target dependencies of the executable
## same as for the library above
# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

## Specify libraries to link a library or executable target against
# target_link_libraries(${PROJECT_NAME}_node
# ${catkin_LIBRARIES}
# )

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

# all install targets should use catkin DESTINATION variables
# See http://ros.org/doc/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 executables
install(PROGRAMS
scripts/rajant_listener.py
scripts/rajant_listener_new.py
scripts/rajant_log.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
interface_rajant/rajant_peer_rssi.py
DESTINATION lib/${PROJECT_NAME}
)

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

## 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}
# Install launch files
install(DIRECTORY launch/
DESTINATION share/${PROJECT_NAME}/launch
)
install(DIRECTORY
scripts/thirdParty
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/scripts
)

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

## Add gtest based cpp test target and link libraries
# catkin_add_gtest(${PROJECT_NAME}-test test/test_interface_rajant.cpp)
# if(TARGET ${PROJECT_NAME}-test)
# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
# endif()
# Install thirdParty directory (contains Java JAR file)
install(DIRECTORY thirdParty/
DESTINATION share/${PROJECT_NAME}/thirdParty
)

## Add folders to be run by python nosetests
# catkin_add_nosetests(test)
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
# the following line skips the linter which checks for copyrights
# comment the line when a copyright and license is added to all source files
set(ament_cmake_copyright_FOUND TRUE)
# the following line skips cpplint (only works in a git repo)
# comment the line when this package is in a git repo and when
# a copyright and license is added to all source files
set(ament_cmake_cpplint_FOUND TRUE)
ament_lint_auto_find_test_dependencies()
endif()

ament_package()
Empty file.
Loading