Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
0b30c9e
clean ws before building
matchRos Sep 12, 2024
88822e1
kill rosmaster
matchRos Sep 12, 2024
1ee7f76
next try
matchRos Sep 12, 2024
59b2ff7
Update build_and_run.yml
matchRos Sep 13, 2024
6ba3684
Update mir_600.launch. Changed to move_base_flex
Heenne Sep 17, 2024
be5c139
added integration tests
matchRos Sep 18, 2024
f82221a
integration test for check topics
matchRos Sep 18, 2024
a951b25
udpdates
matchRos Sep 18, 2024
0b5bcfa
added spawn pose checker
matchRos Sep 18, 2024
40a9135
absichtlicher fehler
matchRos Sep 18, 2024
042e405
retry
matchRos Sep 18, 2024
9a27db8
removed continue on error
matchRos Sep 18, 2024
3efe545
try
matchRos Sep 18, 2024
9afbcb9
test
matchRos Sep 18, 2024
e6e304c
added homing
matchRos Sep 18, 2024
d02f905
fix
matchRos Sep 18, 2024
6d56775
continue on error
matchRos Sep 18, 2024
ffac6bb
removed export
matchRos Sep 18, 2024
38a733c
c
matchRos Sep 18, 2024
810db28
next test
matchRos Sep 18, 2024
54a3ade
check spawn
matchRos Sep 18, 2024
c342a39
check homing
matchRos Sep 18, 2024
fad094f
fixed starting issue regarding model name
matchRos Sep 25, 2024
6d41a04
improved performance
matchRos Sep 25, 2024
7b67f93
added mur_scripts package
matchRos Sep 26, 2024
cbe0624
work in progress
matchRos Sep 26, 2024
ee6a93c
improved twist controller
matchRos Sep 27, 2024
a46317c
removed unused code
matchRos Sep 27, 2024
fd91f96
added subscriber
matchRos Sep 27, 2024
1b313d8
working on readme
matchRos Sep 30, 2024
bdeb9f2
added option to not simulate realsense
matchRos Sep 30, 2024
8538cec
added image
matchRos Sep 30, 2024
7ea2524
added controller switcher node
matchRos Sep 30, 2024
a0a6baf
switched direct kinematic publisher to poseStamped
matchRos Sep 30, 2024
c257bab
added multi robot admittance controller launch
matchRos Sep 30, 2024
72095a3
added controller ready png
matchRos Sep 30, 2024
26a2209
added "how to run"
matchRos Sep 30, 2024
da522a1
added set virtual pose node
matchRos Sep 30, 2024
aa5971b
working on COT readme
matchRos Oct 1, 2024
bebb54a
updated readme
matchRos Oct 1, 2024
b77cd72
fixed picture reference
matchRos Oct 1, 2024
0de0186
finished cot readme
matchRos Oct 1, 2024
c17898f
added Keyence Tool
matchRos Nov 19, 2024
051a82f
Add keyence_lj_x.urdf.xacro for simulation
matchRos Nov 19, 2024
ee45873
Add Keyence LJ-X sensor and update URDF files
matchRos Nov 19, 2024
467c217
launch file for twist with feedback control
pumablattlaus Nov 20, 2024
b2ab7e1
Merge branch 'noetic-devel' of https://github.com/match-ROS/match_mob…
pumablattlaus Nov 20, 2024
f9bc97a
Add support for different tools in URDF file
matchRos Nov 20, 2024
3086826
Update keyence_lj_x.urdf.xacro with laser range and resolution parame…
matchRos Nov 20, 2024
629e8b3
Fix directory traversal in setup_full.sh for correct path navigation
matchRos Nov 24, 2024
9982365
Create license_toolkit.yml
pumablattlaus Nov 27, 2024
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
93 changes: 90 additions & 3 deletions .github/workflows/build_and_run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ jobs:
run: |
source /opt/ros/${{ matrix.rosdistro }}/setup.sh
cd $GITHUB_WORKSPACE/catkin_ws
catkin clean -y
catkin build --limit-status-rate 0.1 --no-notify

- name: Launch Gazebo with Robot using absolute path
Expand All @@ -60,18 +61,102 @@ jobs:
source devel/setup.bash
export QT_QPA_PLATFORM=offscreen
#roslaunch mir_examples single_mir_600.launch &
roslaunch match_gazebo big_square.launch &
roslaunch mur_launch_sim mur_620.launch &
# kill rosmaster
#killall -9 rosmaster
roslaunch match_gazebo big_square.launch gui:=false&
sleep 5
roslaunch mur_launch_sim mur_620.launch robot_x:=1.0 robot_y:=2.0 &
sleep 15 # Give some time for Gazebo and ROS nodes to initialize

- name: Check for /pose topic data
- name: Check rostopic list
run: |
source /opt/ros/${{ matrix.rosdistro }}/setup.sh
source $GITHUB_WORKSPACE/catkin_ws/devel/setup.bash
#timeout 10 rostopic echo /mir_pose_simple -n 1
timeout 10 rostopic list
continue-on-error: true

- name: Check if topics exist
run: |
source /opt/ros/${{ matrix.rosdistro }}/setup.sh
source $GITHUB_WORKSPACE/catkin_ws/devel/setup.bash
# run node and check output for string "ERROR"
output=$(rosrun integration_tests check_topics.py)

# Print raw output for debugging
echo "Raw output: $output"

# Clean output of non-printable characters (optional)
cleaned_output=$(echo "$output" | tr -cd '[:print:]\n')

# Debugging: See what grep is matching
echo "$cleaned_output" | grep -o "ERROR"

# Perform a grep search for "ERROR"
if echo "$cleaned_output" | grep -qi "\bERROR\b"; then
echo "Error found in check_topics.py output"
exit 1
else
echo "No error found in the output."
exit 0
fi
continue-on-error: true



- name: Check spawn
run: |
source /opt/ros/${{ matrix.rosdistro }}/setup.sh
source $GITHUB_WORKSPACE/catkin_ws/devel/setup.bash
# run node and check output for string "ERROR"
output=$(rosrun integration_tests check_spawn.py)

# Print raw output for debugging
echo "Raw output: $output"

# Clean output of non-printable characters (optional)
cleaned_output=$(echo "$output" | tr -cd '[:print:]\n')

# Debugging: See what grep is matching
echo "$cleaned_output" | grep -o "ERROR"

# Perform a grep search for "ERROR"
if echo "$cleaned_output" | grep -qi "\bERROR\b"; then
echo "Error found in check_topics.py output"
exit 1
else
echo "No error found in the output."
exit 0
fi
continue-on-error: true

- name: Check homing
run: |
source /opt/ros/${{ matrix.rosdistro }}/setup.sh
source $GITHUB_WORKSPACE/catkin_ws/devel/setup.bash
# run node and check output for string "ERROR"
output=$(rosrun integration_tests check_homing.py)

# Print raw output for debugging
echo "Raw output: $output"

# Clean output of non-printable characters (optional)
cleaned_output=$(echo "$output" | tr -cd '[:print:]\n')

# Debugging: See what grep is matching
echo "$cleaned_output" | grep -o "ERROR"

# Perform a grep search for "ERROR"
if echo "$cleaned_output" | grep -qi "\bERROR\b"; then
echo "Error found in check_topics.py output"
exit 1
else
echo "No error found in the output."
exit 0
fi
continue-on-error: true


- name: Evaluate test result
run: |
source /opt/ros/${{ matrix.rosdistro }}/setup.sh
Expand All @@ -82,3 +167,5 @@ jobs:
echo "No data received on pose topic, failing the test."
exit 1
fi
continue-on-error: true

10 changes: 10 additions & 0 deletions .github/workflows/license_toolkit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Check Licenses
on: # this determines when this workflow is run
workflow_dispatch: # allow manually starting this workflow
jobs:
check_licenses:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: boschresearch/ros_license_toolkit@1.2.3
202 changes: 202 additions & 0 deletions integration_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
cmake_minimum_required(VERSION 3.0.2)
project(integration_tests)

## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)

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

## 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 # Or other packages containing 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 integration_tests
# CATKIN_DEPENDS other_catkin_pkg
# 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}
)

## Declare a C++ library
# add_library(${PROJECT_NAME}
# src/${PROJECT_NAME}/integration_tests.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/integration_tests_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
# catkin_install_python(PROGRAMS
# scripts/my_python_script
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )

## Mark executables for installation
## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
# install(TARGETS ${PROJECT_NAME}_node
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )

## Mark libraries for installation
## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
# install(TARGETS ${PROJECT_NAME}
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
# RUNTIME DESTINATION ${CATKIN_GLOBAL_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(FILES
# # myfile1
# # myfile2
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
# )

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

## Add gtest based cpp test target and link libraries
# catkin_add_gtest(${PROJECT_NAME}-test test/test_integration_tests.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)
59 changes: 59 additions & 0 deletions integration_tests/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<?xml version="1.0"?>
<package format="2">
<name>integration_tests</name>
<version>0.0.0</version>
<description>The integration_tests package</description>

<!-- One maintainer tag required, multiple allowed, one person per tag -->
<!-- Example: -->
<!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
<maintainer email="rosmatch@todo.todo">rosmatch</maintainer>


<!-- One license tag required, multiple allowed, one license per tag -->
<!-- Commonly used license strings: -->
<!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
<license>TODO</license>


<!-- Url tags are optional, but multiple are allowed, one per tag -->
<!-- Optional attribute type can be: website, bugtracker, or repository -->
<!-- Example: -->
<!-- <url type="website">http://wiki.ros.org/integration_tests</url> -->


<!-- Author tags are optional, multiple are allowed, one per tag -->
<!-- Authors do not have to be maintainers, but could be -->
<!-- Example: -->
<!-- <author email="jane.doe@example.com">Jane Doe</author> -->


<!-- The *depend tags are used to specify dependencies -->
<!-- Dependencies can be catkin packages or system dependencies -->
<!-- Examples: -->
<!-- Use depend as a shortcut for packages that are both build and exec dependencies -->
<!-- <depend>roscpp</depend> -->
<!-- Note that this is equivalent to the following: -->
<!-- <build_depend>roscpp</build_depend> -->
<!-- <exec_depend>roscpp</exec_depend> -->
<!-- Use build_depend for packages you need at compile time: -->
<!-- <build_depend>message_generation</build_depend> -->
<!-- Use build_export_depend for packages you need in order to build against this package: -->
<!-- <build_export_depend>message_generation</build_export_depend> -->
<!-- Use buildtool_depend for build tool packages: -->
<!-- <buildtool_depend>catkin</buildtool_depend> -->
<!-- Use exec_depend for packages you need at runtime: -->
<!-- <exec_depend>message_runtime</exec_depend> -->
<!-- Use test_depend for packages you need only for testing: -->
<!-- <test_depend>gtest</test_depend> -->
<!-- Use doc_depend for packages you need only for building documentation: -->
<!-- <doc_depend>doxygen</doc_depend> -->
<buildtool_depend>catkin</buildtool_depend>


<!-- The export tag contains other, unspecified, tags -->
<export>
<!-- Other tools can request additional information be placed here -->

</export>
</package>
Loading
Loading