diff --git a/.codespell_words b/.codespell_words new file mode 100644 index 0000000..e69de29 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..6edfd5d --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,71 @@ +# To use: +# +# pre-commit run -a +# +# Or: +# +# pre-commit install # (runs every time you commit in git) +# +# To update this file: +# +# pre-commit autoupdate +# +# See https://github.com/pre-commit/pre-commit + +repos: + - repo: https://github.com/Lucas-C/pre-commit-hooks + rev: v1.5.5 + hooks: + - id: forbid-crlf + - id: remove-crlf + - id: forbid-tabs + - id: remove-tabs + args: [--whitespaces-count, "2"] # defaults to: 4 + files: \.(mach|skill|agent|ros|ros2|rossystem|capa|agentin)$ + - id: remove-tabs + args: [--whitespaces-count, "4"] # defaults to: 4 + exclude: \.(mach|skill|agent|ros|ros2|rossystem|capa|agentin)$ + - id: chmod + args: ["644"] + files: \.md$ + + # Standard hooks + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: check-added-large-files + - id: check-case-conflict + - id: check-json + - id: check-merge-conflict + - id: check-symlinks + - id: check-yaml + args: ["--unsafe"] + files: \.(mach|skill|agent|ros|ros2|rossystem|capa)$ + exclude: "ci/gitlab_templates/JOB_TEMPLATE.yml" + - id: debug-statements + - id: destroyed-symlinks + - id: detect-private-key + - id: end-of-file-fixer + - id: mixed-line-ending + - id: pretty-format-json + - id: trailing-whitespace + + - repo: https://github.com/psf/black + rev: 25.1.0 + hooks: + - id: black + types: [file] + files: \.(launch.py|py)$ + args: ["--line-length=100"] + + - repo: https://github.com/codespell-project/codespell + rev: v2.4.1 + hooks: + - id: codespell + args: + [ + "--write-changes", + "--ignore-words=.codespell_words", + '--skip="*.eps"', + ] + exclude: CHANGELOG.rst diff --git a/de.fraunhofer.ipa.ros.communication.objects/.project b/de.fraunhofer.ipa.ros.communication.objects/.project index 77d1685..0a62af8 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/.project +++ b/de.fraunhofer.ipa.ros.communication.objects/.project @@ -1,19 +1,19 @@ - de.fraunhofer.ipa.ros.communication.objects - - - CommBasicObjects - de.fraunhofer.ipa.ros - - - - org.eclipse.xtext.ui.shared.xtextBuilder - - - - - - org.eclipse.xtext.ui.shared.xtextNature - + de.fraunhofer.ipa.ros.communication.objects + + + CommBasicObjects + de.fraunhofer.ipa.ros + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Joy.ros1 b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Joy.ros1 index 5a82f41..f3fc8d6 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Joy.ros1 +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Joy.ros1 @@ -6,4 +6,4 @@ joy: joy: type: "sensor_msgs/msg/Joy" diagnostics: - type: "diagnostic_msgs/msg/DiagnosticArray" \ No newline at end of file + type: "diagnostic_msgs/msg/DiagnosticArray" diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Laser2DScan.ros1 b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Laser2DScan.ros1 index 2f1a9f1..d99d583 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Laser2DScan.ros1 +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Laser2DScan.ros1 @@ -4,6 +4,6 @@ scan_2d: node: scan_2d publishers: scan: - type: "sensor_msgs/msg/LaserScan" + type: "sensor_msgs/msg/LaserScan" diagnostics: - type: "diagnostic_msgs/msg/DiagnosticArray" \ No newline at end of file + type: "diagnostic_msgs/msg/DiagnosticArray" diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Teleop.ros1 b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Teleop.ros1 index 5d985ca..a30619c 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Teleop.ros1 +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/Teleop.ros1 @@ -7,4 +7,4 @@ teleop: type: "geometry_msgs/msg/Twist" subscribers: joy: - type:"sensor_msgs/msg/Joy" \ No newline at end of file + type:"sensor_msgs/msg/Joy" diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component2_template.ros2 b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component2_template.ros2 index e2e55e0..9308511 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component2_template.ros2 +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component2_template.ros2 @@ -5,62 +5,62 @@ my_awesome2_pkg: publishers: awesome2_pub: type: "std_msgs/msg/Bool" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: default_qos - reliability: best_effort + reliability: best_effort subscribers: awesome2_sub: type: "std_msgs/msg/Bool" - qos: + qos: depth: 10 durability: transient_local history: keep_last profile: sensor_qos - reliability: reliable + reliability: reliable serviceclients: awesome2_client: type: "std_srvs/srv/Empty" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: services_qos - reliability: best_effort + reliability: best_effort serviceservers: awesome2_server: type: "std_srvs/srv/Empty" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: services_qos - reliability: best_effort + reliability: best_effort actionclients: awesome2_action_client: type: "control_msgs/action/JointTrajectory" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: default_qos - reliability: best_effort + reliability: best_effort actionservers: awesome2_action: type: "control_msgs/action/JointTrajectory" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: default_qos - reliability: best_effort + reliability: best_effort parameters: awesome2_string_param: type: String default: "Hello" - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -69,7 +69,7 @@ my_awesome2_pkg: awesome2_bool_param: type: Boolean default: true - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -77,7 +77,7 @@ my_awesome2_pkg: reliability: best_effort awesome2_array_param: type: Array[String] - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -86,7 +86,7 @@ my_awesome2_pkg: awesome2_double_param: type: Double default: 1.1 - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -95,7 +95,7 @@ my_awesome2_pkg: awesome2_integer_param: type: Integer default: 1 - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -103,10 +103,10 @@ my_awesome2_pkg: reliability: best_effort awesome2_struct_param: type: Struct [first Integer, second Boolean] - value: [ + value: [ first: 1 second: true] - qos: + qos: depth: 10 durability: volatile history: keep_all diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component_template.ros1 b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component_template.ros1 index c6bd8b6..3a21dbd 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component_template.ros1 +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component_template.ros1 @@ -23,4 +23,4 @@ my_awesome_pkg: parameters: awesome_param: type: String - default: "Hello" \ No newline at end of file + default: "Hello" diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component_template.ros2 b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component_template.ros2 index fcd95ae..e09dfe4 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component_template.ros2 +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Components/ros_component_template.ros2 @@ -5,62 +5,62 @@ my_awesome_pkg: publishers: awesome_pub: type: "std_msgs/msg/Bool" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: default_qos - reliability: best_effort + reliability: best_effort subscribers: awesome_sub: type: "std_msgs/msg/Bool" - qos: + qos: depth: 10 durability: transient_local history: keep_last profile: sensor_qos - reliability: reliable + reliability: reliable serviceclients: awesome_client: type: "std_srvs/srv/Empty" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: services_qos - reliability: best_effort + reliability: best_effort serviceservers: awesome_server: type: "std_srvs/srv/Empty" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: services_qos - reliability: best_effort + reliability: best_effort actionclients: awesome_action_client: type: "control_msgs/action/JointTrajectory" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: default_qos - reliability: best_effort + reliability: best_effort actionservers: awesome_action: type: "control_msgs/action/JointTrajectory" - qos: + qos: depth: 10 durability: volatile history: keep_all profile: default_qos - reliability: best_effort + reliability: best_effort parameters: awesome_string_param: type: String default: "Hello" - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -69,7 +69,7 @@ my_awesome_pkg: awesome_bool_param: type: Boolean default: true - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -77,7 +77,7 @@ my_awesome_pkg: reliability: best_effort awesome_array_param: type: Array[String] - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -86,7 +86,7 @@ my_awesome_pkg: awesome_double_param: type: Double default: 1.1 - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -95,7 +95,7 @@ my_awesome_pkg: awesome_integer_param: type: Integer default: 1 - qos: + qos: depth: 10 durability: volatile history: keep_all @@ -103,10 +103,10 @@ my_awesome_pkg: reliability: best_effort awesome_struct_param: type: Struct [first Integer, second Boolean] - value: [ + value: [ first: 1 second: true] - qos: + qos: depth: 10 durability: volatile history: keep_all diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Systems/ros_system_template.rossystem b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Systems/ros_system_template.rossystem index ca431a9..ce087e5 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Systems/ros_system_template.rossystem +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Systems/ros_system_template.rossystem @@ -3,8 +3,8 @@ my_awesome_system: process1: nodes: [ node1 , node2 ] threads: 2 - subSystems: - my_subsystem + subSystems: + my_subsystem nodes: node1: from: "my_awesome_pkg.awesome_node" #From .ros2 file diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Systems/subsystem.rossystem b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Systems/subsystem.rossystem index 421612a..dc9f148 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Systems/subsystem.rossystem +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/Systems/subsystem.rossystem @@ -9,4 +9,4 @@ my_subsystem: interfaces: - other_subscriber: sub-> "awesome::awesome_sub" connections: - - [other_publisher, other_subscriber] \ No newline at end of file + - [other_publisher, other_subscriber] diff --git a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/ros_system_template.rossystem b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/ros_system_template.rossystem index 89ac01f..cb84956 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/ros_system_template.rossystem +++ b/de.fraunhofer.ipa.ros.communication.objects/BasicSpecs/ros_system_template.rossystem @@ -3,8 +3,8 @@ my_awesome_system: process1: nodes: [ node1 , node2 ] threads: 2 - subSystems: - my_subsystem + subSystems: + my_subsystem nodes: node1: from: "my_awesome_pkg.awesome_node" #From .ros2 file diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/builtin_interfaces.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/builtin_interfaces.ros index 6a2a31d..e7f8da5 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/builtin_interfaces.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/builtin_interfaces.ros @@ -8,6 +8,3 @@ builtin_interfaces: message int32 sec uint32 nanosec - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/common_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/common_msgs.ros index 2860033..0858d8e 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/common_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/common_msgs.ros @@ -136,10 +136,10 @@ nav_msgs: Header header "actionlib_msgs/msg/GoalStatus" status 'nav_msgs/msg/GetMapResult' result GetMapFeedback message - + GetMapGoal message - + GetMapResult message "nav_msgs/msg/OccupancyGrid" map diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/control_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/control_msgs.ros index 04c933f..7abc158 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/control_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/control_msgs.ros @@ -99,7 +99,7 @@ control_msgs: float64 position float64 velocity float64 acceleration - + srvs: QueryTrajectoryState request @@ -115,7 +115,7 @@ control_msgs: request response bool is_calibrated - + actions: JointTrajectory goal @@ -177,5 +177,4 @@ control_msgs: float64 position float64 effort bool stalled - bool reached_goal - \ No newline at end of file + bool reached_goal diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/controller_manager_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/controller_manager_msgs.ros index 7c06b25..d77e1b6 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/controller_manager_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/controller_manager_msgs.ros @@ -29,7 +29,7 @@ controller_manager_msgs: string name bool is_available bool is_claimed - + srvs: ListControllerTypes request @@ -88,5 +88,3 @@ controller_manager_msgs: string name response bool ok - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/gazebo_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/gazebo_msgs.ros index 0662a82..48eaab6 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/gazebo_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/gazebo_msgs.ros @@ -11,7 +11,7 @@ gazebo_msgs: # broadcast all model states in world frame string[] name # model names "geometry_msgs.Pose"[] pose # desired pose in world frame "geometry_msgs.Twist"[] twist # desired twist in world frame ODEPhysics message - bool auto_disable_bodies # enable auto disabling of bodies, default false uint32 sor_pgs_precon_iters # preconditioning inner iterations when uisng projected Gauss Seidel uint32 sor_pgs_iters # inner iterations when uisng projected Gauss Seidel float64 sor_pgs_w # relaxation parameter when using projected Gauss Seidel, 1=no relaxation float64 sor_pgs_rms_error_tol # rms error tolerance before stopping inner iterations float64 contact_surface_layer # contact "dead-band" width float64 contact_max_correcting_vel # contact maximum correction velocity float64 cfm # global constraint force mixing float64 erp # global error reduction parameter uint32 max_contacts # maximum contact joints between two geoms + bool auto_disable_bodies # enable auto disabling of bodies, default false uint32 sor_pgs_precon_iters # preconditioning inner iterations when using projected Gauss Seidel uint32 sor_pgs_iters # inner iterations when using projected Gauss Seidel float64 sor_pgs_w # relaxation parameter when using projected Gauss Seidel, 1=no relaxation float64 sor_pgs_rms_error_tol # rms error tolerance before stopping inner iterations float64 contact_surface_layer # contact "dead-band" width float64 contact_max_correcting_vel # contact maximum correction velocity float64 cfm # global constraint force mixing float64 erp # global error reduction parameter uint32 max_contacts # maximum contact joints between two geoms SensorPerformanceMetric message string name float64 sim_update_rate float64 real_update_rate float64 fps diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/generate_messages_model_helper.sh b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/generate_messages_model_helper.sh index c5941db..b47a58d 100755 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/generate_messages_model_helper.sh +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/generate_messages_model_helper.sh @@ -1,7 +1,7 @@ #!/bin/bash package_list=$@ -function parserToRosModel(){ +function parserToRosModel(){ msg_desc="" for word in $1; do word="$(echo $word | sed -e 's/\[[^][]*\]/[]/g' )" @@ -43,7 +43,7 @@ do do message=${i/$p\/msg\//} #message_show="$(ros2 interface show $i)" - #message_show=$(ros2 interface show $i | grep -v ' ' | grep -v '^#' ) + #message_show=$(ros2 interface show $i | grep -v ' ' | grep -v '^#' ) #message_show=$(echo -e $message_show | sed -e 's/\s=\s/=/g') #final_desc=$(parserToRosModel "$message_show") echo ' '$message @@ -51,7 +51,7 @@ do while read -r line do echo " $(parserToRosModel "$line")" - done < <(ros2 interface show $i | grep -v ' ' | sed -e 's/\s=\s/=/g') + done < <(ros2 interface show $i | grep -v ' ' | sed -e 's/\s=\s/=/g') done fi @@ -60,23 +60,23 @@ do for i in $arr_srvs do service=${i/$p\/srv\//} - #service_show=$(ros2 interface show $i | grep -v ' ' | grep -v '^#' ) + #service_show=$(ros2 interface show $i | grep -v ' ' | grep -v '^#' ) #request="$(echo $service_show | sed 's/---.*//' | sed -e 's/\s=\s/=/g')" #response="$(echo $service_show | sed -e 's#.*---\(\)#\1#'| sed -e 's/\s=\s/=/g')" #final_request=$(parserToRosModel "$request") - #final_response=$(parserToRosModel "$response") + #final_response=$(parserToRosModel "$response") echo ' '$service echo ' request' while read -r line do echo " $(parserToRosModel "$line")" - done < <(ros2 interface show $i | grep -v ' ' | grep -v '^#'| sed 's/---.*//' | sed -e 's/\s=\s/=/g') + done < <(ros2 interface show $i | grep -v ' ' | grep -v '^#'| sed 's/---.*//' | sed -e 's/\s=\s/=/g') echo ' response' while read -r line do echo " $(parserToRosModel "$line")" - done < <(ros2 interface show $i | grep -v ' ' | grep -v '^#'| sed -e 's#.*---\(\)#\1#'| sed -e 's/\s=\s/=/g') + done < <(ros2 interface show $i | grep -v ' ' | grep -v '^#'| sed -e 's#.*---\(\)#\1#'| sed -e 's/\s=\s/=/g') done fi -done \ No newline at end of file +done diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/generate_messages_model_helper_ros1.sh b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/generate_messages_model_helper_ros1.sh index 46dbd1c..28fc0a0 100755 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/generate_messages_model_helper_ros1.sh +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/generate_messages_model_helper_ros1.sh @@ -1,7 +1,7 @@ #!/bin/bash package_list=$@ -function parserToRosModel(){ +function parserToRosModel(){ msg_desc="" for word in $1; do word="$(echo $word | sed -e 's/\[[^][]*\]/[]/g' )" @@ -52,7 +52,7 @@ do request="$(echo $service_show | sed 's/---.*//' | sed -e 's/\s=\s/=/g')" response="$(echo $service_show | sed -e 's#.*---\(\)#\1#'| sed -e 's/\s=\s/=/g')" final_request=$(parserToRosModel "$request") - final_response=$(parserToRosModel "$response") + final_response=$(parserToRosModel "$response") echo -n ' srv: '$service echo $'\n'' request:' if [ -n "$request" ];then @@ -65,20 +65,20 @@ do done done -# for i in $MsgsArray -# do -# if [[ "$i" =~ "ActionGoal" ]];then -# ActionName=${i//'ActionGoal'/} -# if [[ "${MsgsArray[@]}" =~ "${ActionName}ActionResult" ]] && [[ "${MsgsArray[@]}" =~ "${ActionName}ActionFeedback" ]]; then -# arr_act+=$ActionName' ' -# fi -# fi -# done -# cout_act=${#arr_act[@]} +# for i in $MsgsArray +# do +# if [[ "$i" =~ "ActionGoal" ]];then +# ActionName=${i//'ActionGoal'/} +# if [[ "${MsgsArray[@]}" =~ "${ActionName}ActionResult" ]] && [[ "${MsgsArray[@]}" =~ "${ActionName}ActionFeedback" ]]; then +# arr_act+=$ActionName' ' +# fi +# fi +# done +# cout_act=${#arr_act[@]} # for i in $arr_act # do # cout_act=$((cout_act-1)) -# echo -n ' ActionSpec '$i'{ goal { '$i'ActionGoal action_goal} result {'$i'ActionResult action_result} feedback {'$i'ActionFeedback action_feedback}} +# echo -n ' ActionSpec '$i'{ goal { '$i'ActionGoal action_goal} result {'$i'ActionResult action_result} feedback {'$i'ActionFeedback action_feedback}} #' # if (("$cout_act" >= "1")) # then diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/lifecycle_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/lifecycle_msgs.ros index a92d006..2fa905b 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/lifecycle_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/lifecycle_msgs.ros @@ -19,7 +19,7 @@ lifecycle_msgs: message uint8 id string label - + srvs: ChangeState request @@ -38,5 +38,3 @@ lifecycle_msgs: request response 'lifecycle_msgs/msg/State'[] available_states - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/map_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/map_msgs.ros index db589b5..885a0cd 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/map_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/map_msgs.ros @@ -27,7 +27,7 @@ map_msgs: float64 height float64 min_z float64 max_z - + srvs: GetPointMapROI request @@ -60,5 +60,3 @@ map_msgs: float64 l_y response 'nav_msgs/msg/OccupancyGrid'[] sub_map - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/nav2_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/nav2_msgs.ros new file mode 100644 index 0000000..3d52ff3 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/nav2_msgs.ros @@ -0,0 +1,461 @@ +nav2_msgs: + msgs: + BehaviorTreeLog + message + "builtin_interfaces/msg/Time" timestamp + "nav2_msgs/msg/BehaviorTreeStatusChange"[] event_log + BehaviorTreeStatusChange + message + "builtin_interfaces/msg/Time" timestamp + string node_name + uint16 uid + string previous_status + string current_status + CircleObject + message + "std_msgs/msg/Header" header + "unique_identifier_msgs/msg/UUID" uuid + "geometry_msgs/msg/Point32" center + float32 radius + bool fill + int8 value + CollisionDetectorState + message + string[] polygons + bool[] detections + CollisionMonitorState + message + uint8 action_type + string polygon_name + Costmap + message + "std_msgs/msg/Header" header + "nav2_msgs/msg/CostmapMetaData" metadata + uint8[] data + CostmapFilterInfo + message + "std_msgs/msg/Header" header + uint8 type + string filter_mask_topic + float32 base + float32 multiplier + CostmapMetaData + message + "builtin_interfaces/msg/Time" map_load_time + "builtin_interfaces/msg/Time" update_time + string layer + float32 resolution + uint32 size_x + uint32 size_y + "geometry_msgs/msg/Pose" origin + CostmapUpdate + message + "std_msgs/msg/Header" header + uint32 x + uint32 y + uint32 size_x + uint32 size_y + uint8[] data + CriticsStats + message + "builtin_interfaces/msg/Time" stamp + string[] critics + bool[] changed + float32[] costs_sum + EdgeCost + message + uint16 edgeid + float32 cost + Particle + message + "geometry_msgs/msg/Pose" pose + float64 weight + ParticleCloud + message + "std_msgs/msg/Header" header + "nav2_msgs/msg/Particle"[] particles + PolygonObject + message + "std_msgs/msg/Header" header + "unique_identifier_msgs/msg/UUID" uuid + "geometry_msgs/msg/Point32"[] points + bool closed + int8 value + Route + message + "std_msgs/msg/Header" header + float32 route_cost + "nav2_msgs/msg/RouteNode"[] nodes + "nav2_msgs/msg/RouteEdge"[] edges + RouteEdge + message + uint16 edgeid + "geometry_msgs/msg/Point" start + "geometry_msgs/msg/Point" end + RouteNode + message + uint16 nodeid + "geometry_msgs/msg/Point" position + SpeedLimit + message + "std_msgs/msg/Header" header + bool percentage + float64 speed_limit + Trajectory + message + "std_msgs/msg/Header" header + "nav2_msgs/msg/TrajectoryPoint"[] points + TrajectoryPoint + message + "builtin_interfaces/msg/Duration" time_from_start + "geometry_msgs/msg/Pose" pose + "geometry_msgs/msg/Twist" velocity + "geometry_msgs/msg/Accel" acceleration + "geometry_msgs/msg/Wrench" effort + VoxelGrid + message + "std_msgs/msg/Header" header + uint32[] data + "geometry_msgs/msg/Point32" origin + "geometry_msgs/msg/Vector3" resolutions + uint32 size_x + uint32 size_y + uint32 size_z + WaypointStatus + message + uint8 waypoint_status + uint32 waypoint_index + "geometry_msgs/msg/PoseStamped" waypoint_pose + uint16 error_code + string error_msg + srvs: + AddShapes + request + "nav2_msgs/msg/CircleObject"[] circles + "nav2_msgs/msg/PolygonObject"[] polygons + response + bool success + ClearCostmapAroundPose + request + "geometry_msgs/msg/PoseStamped" pose + float64 reset_distance + response + "std_msgs/msg/Empty" "response" + ClearCostmapAroundRobot + request + float32 reset_distance + response + "std_msgs/msg/Empty" "response" + ClearCostmapExceptRegion + request + float32 reset_distance + response + "std_msgs/msg/Empty" "response" + ClearEntireCostmap + request + "std_msgs/msg/Empty" "request" + response + "std_msgs/msg/Empty" "response" + DynamicEdges + request + uint16[] closed_edges + uint16[] opened_edges + "nav2_msgs/msg/EdgeCost"[] adjust_edges + response + bool success + GetCostmap + request + "nav2_msgs/msg/CostmapMetaData" specs + response + "nav2_msgs/msg/Costmap" map + GetCosts + request + bool use_footprint + "geometry_msgs/msg/PoseStamped"[] poses + response + float32[] costs + bool success + GetShapes + request + response + "nav2_msgs/msg/CircleObject"[] circles + "nav2_msgs/msg/PolygonObject"[] polygons + IsPathValid + request + "nav_msgs/msg/Path" path + uint8 max_cost + bool consider_unknown_as_obstacle + response + bool is_valid + int32[] invalid_pose_indices + LoadMap + request + string map_url + response + "nav_msgs/msg/OccupancyGrid" map + uint8 result + ManageLifecycleNodes + request + uint8 command + response + bool success + ReloadDockDatabase + request + string filepath + response + bool success + RemoveShapes + request + bool all_objects + "unique_identifier_msgs/msg/UUID"[] uuids + response + bool success + SaveMap + request + string map_topic + string map_url + string image_format + string map_mode + float32 free_thresh + float32 occupied_thresh + response + bool result + SetInitialPose + request + "geometry_msgs/msg/PoseWithCovarianceStamped" pose + response + SetRouteGraph + request + string graph_filepath + response + bool success + Toggle + request + bool enable + response + bool success + string message + actions: + AssistedTeleop + goal + "builtin_interfaces/msg/Duration" time_allowance + result + "builtin_interfaces/msg/Duration" total_elapsed_time + uint16 error_code + string error_msg + feedback + "builtin_interfaces/msg/Duration" current_teleop_duration + BackUp + goal + "geometry_msgs/msg/Point" target + float32 speed + "builtin_interfaces/msg/Duration" time_allowance + bool disable_collision_checks + result + "builtin_interfaces/msg/Duration" total_elapsed_time + uint16 error_code + string error_msg + feedback + float32 distance_traveled + ComputeAndTrackRoute + goal + uint16 start_id + "geometry_msgs/msg/PoseStamped" start + uint16 goal_id + "geometry_msgs/msg/PoseStamped" goal + bool use_start + bool use_poses + result + "builtin_interfaces/msg/Duration" execution_duration + uint16 error_code + string error_msg + feedback + uint16 last_node_id + uint16 next_node_id + uint16 current_edge_id + "nav2_msgs/msg/Route" route + "nav_msgs/msg/Path" path + string[] operations_triggered + bool rerouted + ComputePathThroughPoses + goal + "nav_msgs/msg/Goals" goals + "geometry_msgs/msg/PoseStamped" start + string planner_id + bool use_start + result + "nav_msgs/msg/Path" path + "builtin_interfaces/msg/Duration" planning_time + uint16 error_code + string error_msg + feedback + ComputePathToPose + goal + "geometry_msgs/msg/PoseStamped" goal + "geometry_msgs/msg/PoseStamped" start + string planner_id + bool use_start + result + "nav_msgs/msg/Path" path + "builtin_interfaces/msg/Duration" planning_time + uint16 error_code + string error_msg + feedback + ComputeRoute + goal + uint16 start_id + "geometry_msgs/msg/PoseStamped" start + uint16 goal_id + "geometry_msgs/msg/PoseStamped" goal + bool use_start + bool use_poses + result + "builtin_interfaces/msg/Duration" planning_time + "nav_msgs/msg/Path" path + "nav2_msgs/msg/Route" route + uint16 error_code + string error_msg + feedback + DockRobot + goal + bool use_dock_id + string dock_id + "geometry_msgs/msg/PoseStamped" dock_pose + string dock_type + float32 max_staging_time + bool navigate_to_staging_pose + result + bool success + uint16 error_code + uint16 num_retries + string error_msg + feedback + uint16 state + "builtin_interfaces/msg/Duration" docking_time + uint16 num_retries + DriveOnHeading + goal + "geometry_msgs/msg/Point" target + float32 speed + "builtin_interfaces/msg/Duration" time_allowance + bool disable_collision_checks + result + "builtin_interfaces/msg/Duration" total_elapsed_time + uint16 error_code + string error_msg + feedback + float32 distance_traveled + DummyBehavior + goal + "std_msgs/msg/String" command + result + "builtin_interfaces/msg/Duration" total_elapsed_time + uint16 error_code + string error_msg + feedback + FollowGPSWaypoints + goal + uint32 number_of_loops + uint32 goal_index + "geographic_msgs/msg/GeoPose"[] gps_poses + result + "nav2_msgs/msg/WaypointStatus"[] missed_waypoints + int16 error_code + string error_msg + feedback + uint32 current_waypoint + FollowPath + goal + "nav_msgs/msg/Path" path + string controller_id + string goal_checker_id + string progress_checker_id + result + "std_msgs/msg/Empty" result + uint16 error_code + string error_msg + feedback + float32 distance_to_goal + float32 speed + FollowWaypoints + goal + uint32 number_of_loops + uint32 goal_index + "geometry_msgs/msg/PoseStamped"[] poses + result + "nav2_msgs/msg/WaypointStatus"[] missed_waypoints + uint16 error_code + string error_msg + feedback + uint32 current_waypoint + NavigateThroughPoses + goal + "nav_msgs/msg/Goals" poses + string behavior_tree + result + uint16 error_code + string error_msg + "nav2_msgs/msg/WaypointStatus"[] waypoint_statuses + feedback + "geometry_msgs/msg/PoseStamped" current_pose + "builtin_interfaces/msg/Duration" navigation_time + "builtin_interfaces/msg/Duration" estimated_time_remaining + int16 number_of_recoveries + float32 distance_remaining + int16 number_of_poses_remaining + "nav2_msgs/msg/WaypointStatus"[] waypoint_statuses + NavigateToPose + goal + "geometry_msgs/msg/PoseStamped" pose + string behavior_tree + result + uint16 error_code + string error_msg + feedback + "geometry_msgs/msg/PoseStamped" current_pose + "builtin_interfaces/msg/Duration" navigation_time + "builtin_interfaces/msg/Duration" estimated_time_remaining + int16 number_of_recoveries + float32 distance_remaining + SmoothPath + goal + "nav_msgs/msg/Path" path + string smoother_id + "builtin_interfaces/msg/Duration" max_smoothing_duration + bool check_for_collisions + result + "nav_msgs/msg/Path" path + "builtin_interfaces/msg/Duration" smoothing_duration + bool was_completed + uint16 error_code + string error_msg + feedback + Spin + goal + float32 target_yaw + "builtin_interfaces/msg/Duration" time_allowance + bool disable_collision_checks + result + "builtin_interfaces/msg/Duration" total_elapsed_time + uint16 error_code + string error_msg + feedback + float32 angular_distance_traveled + UndockRobot + goal + string dock_type + float32 max_undocking_time + result + bool success + uint16 error_code + string error_msg + feedback + Wait + goal + "builtin_interfaces/msg/Duration" time + result + "builtin_interfaces/msg/Duration" total_elapsed_time + uint16 error_code + string error_msg + feedback + "builtin_interfaces/msg/Duration" time_left diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/nav_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/nav_msgs.ros index 73c2627..a91b7e1 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/nav_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/nav_msgs.ros @@ -1,57 +1,58 @@ nav_msgs: msgs: - Path - message - 'std_msgs/msg/Header'[] header - 'geometry_msgs/msg/PoseStamped'[] poses - OccupancyGrid - message - 'std_msgs/msg/Header'[] header - 'nav_msgs/msg/MapMetaData'[] info - int8[] data - Odometry + Goals message - 'std_msgs/msg/Header'[] header - string child_frame_id - 'geometry_msgs/msg/PoseWithCovariance'[] pose - 'geometry_msgs/msg/TwistWithCovariance'[] twist + "std_msgs/msg/Header" header + "geometry_msgs/msg/PoseStamped"[] goals GridCells message - 'std_msgs/msg/Header'[] header + "std_msgs/msg/Header" header float32 cell_width float32 cell_height - 'geometry_msgs/msg/Point'[] cells + "geometry_msgs/msg/Point"[] cells MapMetaData message - 'builtin_interfaces/msg/Time'[] map_load_time + "builtin_interfaces/msg/Time" map_load_time float32 resolution uint32 width uint32 height - 'geometry_msgs/msg/Pose'[] origin - + "geometry_msgs/msg/Pose" origin + OccupancyGrid + message + "std_msgs/msg/Header" header + "nav_msgs/msg/MapMetaData" info + int8[] data + Odometry + message + "std_msgs/msg/Header" header + string child_frame_id + "geometry_msgs/msg/PoseWithCovariance" pose + "geometry_msgs/msg/TwistWithCovariance" twist + Path + message + "std_msgs/msg/Header" header + "geometry_msgs/msg/PoseStamped"[] poses srvs: - SetMap + GetMap request - 'nav_msgs/msg/OccupancyGrid'[] map - 'geometry_msgs/msg/PoseWithCovarianceStamped'[] initial_pose response - bool success + "nav_msgs/msg/OccupancyGrid" map + GetPlan + request + "geometry_msgs/msg/PoseStamped" start + "geometry_msgs/msg/PoseStamped" goal + float32 tolerance + response + "nav_msgs/msg/Path" plan LoadMap request string map_url response - 'nav_msgs/msg/OccupancyGrid'[] map + "nav_msgs/msg/OccupancyGrid" map uint8 result - GetPlan - request - 'geometry_msgs/msg/PoseStamped'[] start - 'geometry_msgs/msg/PoseStamped'[] goal - float32 tolerance - response - 'nav_msgs/msg/Path'[] plan - GetMap + SetMap request + "nav_msgs/msg/OccupancyGrid" map + "geometry_msgs/msg/PoseWithCovarianceStamped" initial_pose response - 'nav_msgs/msg/OccupancyGrid'[] map - - + bool success diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/tf2_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/tf2_msgs.ros index 0e1c276..9fd3334 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/tf2_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/tf2_msgs.ros @@ -11,4 +11,4 @@ tf2_msgs: request response - string frame_yaml \ No newline at end of file + string frame_yaml diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/theora_image_transport.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/theora_image_transport.ros index 70f2edc..63d27b3 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/theora_image_transport.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/theora_image_transport.ros @@ -3,9 +3,9 @@ theora_image_transport: Packet message # ROS message adaptation of the ogg_packet struct from libogg, # see "http:..www.xiph.org.ogg.doc.libogg.ogg_packet.html." - "std_msgs/msg/Header" header # Original "sensor_msgs.Image" header - uint8[] data # Raw Theora packet data (combines packet and bytes fields from ogg_packet) - int32 b_o_s # Flag indicating whether this packet begins a logical bitstream - int32 e_o_s # Flag indicating whether this packet ends a bitstream - int64 granulepos # A number indicating the position of this packet in the decoded data + "std_msgs/msg/Header" header # Original "sensor_msgs.Image" header + uint8[] data # Raw Theora packet data (combines packet and bytes fields from ogg_packet) + int32 b_o_s # Flag indicating whether this packet begins a logical bitstream + int32 e_o_s # Flag indicating whether this packet ends a bitstream + int64 granulepos # A number indicating the position of this packet in the decoded data int64 packetno # Sequential number of this packet in the ogg bitstream diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/turtlesim.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/turtlesim.ros index 712f571..0fffac2 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/turtlesim.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/turtlesim.ros @@ -2,41 +2,41 @@ turtlesim: msgs: Pose message - float32 x - float32 y - float32 theta - float32 linear_velocity + float32 x + float32 y + float32 theta + float32 linear_velocity float32 angular_velocity Color message - uint8 r - uint8 g + uint8 r + uint8 g uint8 b srvs: TeleportAbsolute request - float32 x - float32 y + float32 x + float32 y float32 theta response SetPen request - uint8 r - uint8 g - uint8 b - uint8 width + uint8 r + uint8 g + uint8 b + uint8 width uint8 off response TeleportRelative request - float32 linear + float32 linear float32 angular response Spawn request - float32 x - float32 y - float32 theta + float32 x + float32 y + float32 theta string name # Optional. A unique name will be created and returned if this is empty response string name diff --git a/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/type_description_interfaces.ros b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/type_description_interfaces.ros new file mode 100644 index 0000000..0787dba --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/basic_msgs/type_description_interfaces.ros @@ -0,0 +1,42 @@ +type_description_interfaces: + msgs: + Field + message + string name + "type_description_interfaces/msg/FieldType" type + string default_value + FieldType + message + uint8 type_id + uint64 capacity + uint64 string_capacity + string nested_type_name + IndividualTypeDescription + message + string type_name + "type_description_interfaces/msg/Field"[] fields + KeyValue + message + string key + string value + TypeDescription + message + "type_description_interfaces/msg/IndividualTypeDescription" type_description + "type_description_interfaces/msg/IndividualTypeDescription"[] referenced_type_descriptions + TypeSource + message + string type_name + string encoding + string raw_file_contents + srvs: + GetTypeDescription + request + string type_name + string type_hash + bool include_type_sources + response + bool successful + string failure_reason + "type_description_interfaces/msg/TypeDescription" type_description + "type_description_interfaces/msg/TypeSource"[] type_sources + "type_description_interfaces/msg/KeyValue"[] extra_information diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ackermann_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ackermann_msgs.ros index 3a4323d..d5125ae 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ackermann_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ackermann_msgs.ros @@ -11,6 +11,3 @@ ackermann_msgs: message 'std_msgs/msg/Header'[] header 'ackermann_msgs/msg/AckermannDrive'[] drive - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/action_tutorials_interfaces.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/action_tutorials_interfaces.ros index adf1d8e..d29859d 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/action_tutorials_interfaces.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/action_tutorials_interfaces.ros @@ -1,6 +1,6 @@ action_tutorials_interfaces: - - + + actions: Fibonacci goal @@ -9,4 +9,3 @@ action_tutorials_interfaces: int32[] sequence feedback int32[] partial_sequence - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/actionlib_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/actionlib_msgs.ros index 6a4718b..e354010 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/actionlib_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/actionlib_msgs.ros @@ -13,6 +13,3 @@ actionlib_msgs: 'actionlib_msgs/msg/GoalID'[] goal_id uint8 status string text - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/aruco_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/aruco_msgs.ros index 4d69ec2..3d32737 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/aruco_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/aruco_msgs.ros @@ -10,6 +10,3 @@ aruco_msgs: message 'std_msgs/msg/Header'[] header 'aruco_msgs/msg/Marker'[] markers - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/as2_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/as2_msgs.ros index b49d140..091820b 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/as2_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/as2_msgs.ros @@ -90,7 +90,7 @@ as2_msgs: message int8 alert string description - + srvs: SetGeofence request @@ -169,7 +169,7 @@ as2_msgs: bool enable 'geometry_msgs/msg/Twist'[] speed_limit bool success - + actions: GoToWaypoint goal @@ -244,7 +244,7 @@ as2_msgs: result bool success feedback - bool sucess + bool success Land goal float32 land_speed @@ -253,4 +253,3 @@ as2_msgs: feedback float32 actual_land_speed float32 actual_land_height - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/bond.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/bond.ros index 054fcb6..b83f869 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/bond.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/bond.ros @@ -10,6 +10,3 @@ bond: float32 heartbeat_period Constants message - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/builtin_interfaces.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/builtin_interfaces.ros index 6a2a31d..e7f8da5 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/builtin_interfaces.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/builtin_interfaces.ros @@ -8,6 +8,3 @@ builtin_interfaces: message int32 sec uint32 nanosec - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/cartographer_ros_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/cartographer_ros_msgs.ros index f430e44..cdc1442 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/cartographer_ros_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/cartographer_ros_msgs.ros @@ -67,7 +67,7 @@ cartographer_ros_msgs: message string key string value - + srvs: SubmapQuery request @@ -115,5 +115,3 @@ cartographer_ros_msgs: 'cartographer_ros_msgs/msg/StatusResponse'[] status 'cartographer_ros_msgs/msg/MetricFamily'[] metric_families 'builtin_interfaces/msg/Time'[] timestamp - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/cascade_lifecycle_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/cascade_lifecycle_msgs.ros index b846481..95b741f 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/cascade_lifecycle_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/cascade_lifecycle_msgs.ros @@ -9,6 +9,3 @@ cascade_lifecycle_msgs: uint8 operation_type string activator string activation - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/color_pose_estimation_skill.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/color_pose_estimation_skill.ros index c79a3c5..2e67f09 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/color_pose_estimation_skill.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/color_pose_estimation_skill.ros @@ -1,6 +1,6 @@ color_pose_estimation_skill: - - + + actions: ColorPoseEstimation goal @@ -13,4 +13,3 @@ color_pose_estimation_skill: 'geometry_msgs/msg/PoseStamped'[] color_pose_cube_holder 'geometry_msgs/msg/PoseStamped'[] color_pose_cube feedback - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/color_pose_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/color_pose_msgs.ros index 44597ee..45ee8e7 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/color_pose_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/color_pose_msgs.ros @@ -10,6 +10,3 @@ color_pose_msgs: string color string element 'geometry_msgs/msg/Pose'[] pose - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/control_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/control_msgs.ros index 2a6f66c..edd72e3 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/control_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/control_msgs.ros @@ -109,7 +109,7 @@ control_msgs: float64 position float64 velocity float64 acceleration - + srvs: QueryTrajectoryState request @@ -125,7 +125,7 @@ control_msgs: request response bool is_calibrated - + actions: JointTrajectory goal @@ -188,4 +188,3 @@ control_msgs: float64 position float64 velocity float64 error - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/controller_manager_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/controller_manager_msgs.ros index 7c06b25..d77e1b6 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/controller_manager_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/controller_manager_msgs.ros @@ -29,7 +29,7 @@ controller_manager_msgs: string name bool is_available bool is_claimed - + srvs: ListControllerTypes request @@ -88,5 +88,3 @@ controller_manager_msgs: string name response bool ok - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/detect_aruco_marker_skill.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/detect_aruco_marker_skill.ros index afb4d6a..32fbf22 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/detect_aruco_marker_skill.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/detect_aruco_marker_skill.ros @@ -1,6 +1,6 @@ detect_aruco_marker_skill: - - + + actions: ArucoMarkerDetection goal @@ -12,4 +12,3 @@ detect_aruco_marker_skill: uint16 error_code_id 'geometry_msgs/msg/PoseStamped'[] pose feedback - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/diagnostic_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/diagnostic_msgs.ros index 0934098..81ad843 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/diagnostic_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/diagnostic_msgs.ros @@ -15,7 +15,7 @@ diagnostic_msgs: message string key string value - + srvs: AddDiagnostics request @@ -29,5 +29,3 @@ diagnostic_msgs: string id byte passed 'diagnostic_msgs/msg/DiagnosticStatus'[] status - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/dwb_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/dwb_msgs.ros index cb05e6d..644b166 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/dwb_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/dwb_msgs.ros @@ -21,7 +21,7 @@ dwb_msgs: 'nav_2d_msgs/msg/Twist2D'[] velocity 'builtin_interfaces/msg/Duration'[] time_offsets 'geometry_msgs/msg/Pose2D'[] poses - + srvs: DebugLocalPlan request @@ -59,5 +59,3 @@ dwb_msgs: 'nav_2d_msgs/msg/Twist2D'[] cmd_vel response 'dwb_msgs/msg/Trajectory2D'[] traj - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/geographic_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/geographic_msgs.ros index 93b5475..294d695 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/geographic_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/geographic_msgs.ros @@ -80,7 +80,7 @@ geographic_msgs: message 'geographic_msgs/msg/GeoPoint'[] position 'geometry_msgs/msg/Quaternion'[] orientation - + srvs: UpdateGeographicMap request @@ -117,5 +117,3 @@ geographic_msgs: 'unique_identifier_msgs/msg/UUID'[] start_seg 'unique_identifier_msgs/msg/UUID'[] goal_seg float64 distance - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/io_control_gripper_skill.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/io_control_gripper_skill.ros index a115296..16db831 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/io_control_gripper_skill.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/io_control_gripper_skill.ros @@ -1,6 +1,6 @@ io_control_gripper_skill: - - + + actions: IOGripperCommand goal @@ -11,4 +11,3 @@ io_control_gripper_skill: uint16 error_code_id feedback bool open - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/lifecycle_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/lifecycle_msgs.ros index a92d006..2fa905b 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/lifecycle_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/lifecycle_msgs.ros @@ -19,7 +19,7 @@ lifecycle_msgs: message uint8 id string label - + srvs: ChangeState request @@ -38,5 +38,3 @@ lifecycle_msgs: request response 'lifecycle_msgs/msg/State'[] available_states - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/logging_demo.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/logging_demo.ros index f489a8a..28c1f8f 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/logging_demo.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/logging_demo.ros @@ -1,5 +1,5 @@ logging_demo: - + srvs: ConfigLogger request @@ -7,5 +7,3 @@ logging_demo: string level response bool success - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/man2_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/man2_msgs.ros index ee6f593..0aa3284 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/man2_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/man2_msgs.ros @@ -1,6 +1,6 @@ man2_msgs: - - + + actions: RunApplication goal @@ -14,4 +14,3 @@ man2_msgs: float64 percentage 'builtin_interfaces/msg/Duration'[] execution_time int16 number_of_recoveries - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/map_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/map_msgs.ros index db589b5..885a0cd 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/map_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/map_msgs.ros @@ -27,7 +27,7 @@ map_msgs: float64 height float64 min_z float64 max_z - + srvs: GetPointMapROI request @@ -60,5 +60,3 @@ map_msgs: float64 l_y response 'nav_msgs/msg/OccupancyGrid'[] sub_map - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav2_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav2_msgs.ros index 7721de6..f849c0d 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav2_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav2_msgs.ros @@ -53,7 +53,7 @@ nav2_msgs: string filter_mask_topic float32 base float32 multiplier - + srvs: ClearEntireCostmap request @@ -102,7 +102,7 @@ nav2_msgs: response bool is_valid int32[] invalid_pose_indices - + actions: FollowPath goal @@ -223,4 +223,3 @@ nav2_msgs: int32[] missed_waypoints feedback uint32 current_waypoint - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav_2d_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav_2d_msgs.ros index 2e8aeb7..7aa5463 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav_2d_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav_2d_msgs.ros @@ -27,6 +27,3 @@ nav_2d_msgs: message 'std_msgs/msg/Header'[] header 'nav_2d_msgs/msg/Twist2D'[] velocity - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav_msgs.ros index ee9fa85..b40302e 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/nav_msgs.ros @@ -28,7 +28,7 @@ nav_msgs: uint32 width uint32 height 'geometry_msgs/msg/Pose'[] origin - + srvs: SetMap request @@ -53,5 +53,3 @@ nav_msgs: request response 'nav_msgs/msg/OccupancyGrid'[] map - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/object_recognition_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/object_recognition_msgs.ros index 2854553..4d2a4cc 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/object_recognition_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/object_recognition_msgs.ros @@ -32,14 +32,14 @@ object_recognition_msgs: message string key string db - + srvs: GetObjectInformation request 'object_recognition_msgs/msg/ObjectType'[] type response 'object_recognition_msgs/msg/ObjectInformation'[] information - + actions: ObjectRecognition goal @@ -48,4 +48,3 @@ object_recognition_msgs: result 'object_recognition_msgs/msg/RecognizedObjectArray'[] recognized_objects feedback - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/octomap_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/octomap_msgs.ros index ddb02ac..81d2234 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/octomap_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/octomap_msgs.ros @@ -12,7 +12,7 @@ octomap_msgs: string id float64 resolution int8[] data - + srvs: GetOctomap request @@ -23,5 +23,3 @@ octomap_msgs: 'geometry_msgs/msg/Point'[] min 'geometry_msgs/msg/Point'[] max response - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/pcl_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/pcl_msgs.ros index e380692..1f7ea0c 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/pcl_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/pcl_msgs.ros @@ -16,12 +16,10 @@ pcl_msgs: 'std_msgs/msg/Header'[] header 'sensor_msgs/msg/PointCloud2'[] cloud 'pcl_msgs/msg/Vertices'[] polygons - + srvs: UpdateFilename request string filename response bool success - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/pendulum_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/pendulum_msgs.ros index 52faa7a..def6488 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/pendulum_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/pendulum_msgs.ros @@ -19,6 +19,3 @@ pendulum_msgs: float64 position float64 velocity float64 effort - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/phidgets_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/phidgets_msgs.ros index 4fd08aa..90e746d 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/phidgets_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/phidgets_msgs.ros @@ -4,7 +4,7 @@ phidgets_msgs: message 'std_msgs/msg/Header'[] header float64 avr_speed - + srvs: SetDigitalOutput request @@ -18,5 +18,3 @@ phidgets_msgs: float64 voltage response bool success - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/plansys2_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/plansys2_msgs.ros index 8ed6fee..00f40fe 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/plansys2_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/plansys2_msgs.ros @@ -75,7 +75,7 @@ plansys2_msgs: 'builtin_interfaces/msg/Duration'[] duration float32 completion string message_status - + srvs: GetProblem request @@ -233,7 +233,7 @@ plansys2_msgs: bool success string[] actions string error_info - + actions: ExecutePlan goal @@ -243,4 +243,3 @@ plansys2_msgs: 'plansys2_msgs/msg/ActionExecutionInfo'[] action_execution_status feedback 'plansys2_msgs/msg/ActionExecutionInfo'[] action_execution_status - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rcl_interfaces.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rcl_interfaces.ros index b6dbc88..c5e193c 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rcl_interfaces.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rcl_interfaces.ros @@ -6,8 +6,8 @@ rcl_interfaces: uint8 type string description string additional_constraints - bool read_only - bool dynamic_typing + bool read_only + bool dynamic_typing ListParametersResult message string[] names @@ -65,7 +65,7 @@ rcl_interfaces: uint32 line ParameterType message - + srvs: GetParameterTypes request @@ -98,5 +98,3 @@ rcl_interfaces: uint64 depth response 'rcl_interfaces/msg/ListParametersResult'[] result - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/realsense2_camera_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/realsense2_camera_msgs.ros index ed8fde6..09f1860 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/realsense2_camera_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/realsense2_camera_msgs.ros @@ -14,7 +14,7 @@ realsense2_camera_msgs: message 'std_msgs/msg/Header'[] header string json_data - + srvs: DeviceInfo request @@ -26,5 +26,3 @@ realsense2_camera_msgs: string firmware_update_id string sensors string physical_port - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rosbag2_interfaces.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rosbag2_interfaces.ros index f933808..a9685f1 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rosbag2_interfaces.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rosbag2_interfaces.ros @@ -8,7 +8,7 @@ rosbag2_interfaces: message string closed_file string opened_file - + srvs: Seek request @@ -50,5 +50,3 @@ rosbag2_interfaces: request response bool paused - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rosgraph_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rosgraph_msgs.ros index ba31214..3afd062 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rosgraph_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/rosgraph_msgs.ros @@ -3,6 +3,3 @@ rosgraph_msgs: Clock message 'builtin_interfaces/msg/Time'[] clock - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/sensor_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/sensor_msgs.ros index a9254f3..4f09806 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/sensor_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/sensor_msgs.ros @@ -192,7 +192,7 @@ sensor_msgs: float32 range_max 'sensor_msgs/msg/LaserEcho'[] ranges 'sensor_msgs/msg/LaserEcho'[] intensities - + srvs: SetCameraInfo request @@ -200,5 +200,3 @@ sensor_msgs: response bool success string status_message - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/shape_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/shape_msgs.ros index 1c80c58..3647b33 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/shape_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/shape_msgs.ros @@ -14,6 +14,3 @@ shape_msgs: Plane message float64[] coef - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/statistics_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/statistics_msgs.ros index 051c020..2af4d86 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/statistics_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/statistics_msgs.ros @@ -14,6 +14,3 @@ statistics_msgs: 'statistics_msgs/msg/StatisticDataPoint'[] statistics StatisticDataType message - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/std_srvs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/std_srvs.ros index a3b5986..22f9713 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/std_srvs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/std_srvs.ros @@ -1,5 +1,5 @@ std_srvs: - + srvs: Empty request @@ -15,5 +15,3 @@ std_srvs: response bool success string message - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/stereo_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/stereo_msgs.ros index e843ac5..172004e 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/stereo_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/stereo_msgs.ros @@ -10,6 +10,3 @@ stereo_msgs: float32 min_disparity float32 max_disparity float32 delta_d - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/tf2_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/tf2_msgs.ros index 84d3cd6..ca39279 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/tf2_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/tf2_msgs.ros @@ -7,13 +7,13 @@ tf2_msgs: message uint8 error string error_string - + srvs: FrameGraph request response string frame_yaml - + actions: LookupTransform goal @@ -28,4 +28,3 @@ tf2_msgs: 'geometry_msgs/msg/TransformStamped'[] transform 'tf2_msgs/msg/TF2Error'[] error feedback - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/theora_image_transport.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/theora_image_transport.ros index 9e694b0..6358c2e 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/theora_image_transport.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/theora_image_transport.ros @@ -8,6 +8,3 @@ theora_image_transport: int32 e_o_s int64 granulepos int64 packetno - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/trajectory_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/trajectory_msgs.ros index f76e065..f1e7c07 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/trajectory_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/trajectory_msgs.ros @@ -23,6 +23,3 @@ trajectory_msgs: 'std_msgs/msg/Header'[] header string[] joint_names 'trajectory_msgs/msg/MultiDOFJointTrajectoryPoint'[] points - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/turtlesim.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/turtlesim.ros index 445c805..7c67505 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/turtlesim.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/turtlesim.ros @@ -12,7 +12,7 @@ turtlesim: float32 theta float32 linear_velocity float32 angular_velocity - + srvs: TeleportAbsolute request @@ -45,7 +45,7 @@ turtlesim: uint8 width uint8 off response - + actions: RotateAbsolute goal @@ -54,4 +54,3 @@ turtlesim: float32 delta feedback float32 remaining - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/unique_identifier_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/unique_identifier_msgs.ros index 0f83696..16acb3f 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/unique_identifier_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/unique_identifier_msgs.ros @@ -3,6 +3,3 @@ unique_identifier_msgs: UUID message uint8[] uuid - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ur_dashboard_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ur_dashboard_msgs.ros index e55f67f..6c8af13 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ur_dashboard_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ur_dashboard_msgs.ros @@ -9,7 +9,7 @@ ur_dashboard_msgs: SafetyMode message uint8 mode - + srvs: GetRobotMode request @@ -72,7 +72,7 @@ ur_dashboard_msgs: response string answer bool success - + actions: SetMode goal @@ -85,4 +85,3 @@ ur_dashboard_msgs: feedback int8 current_robot_mode int8 current_safety_mode - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ur_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ur_msgs.ros index fe05d29..765f042 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ur_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/ur_msgs.ros @@ -76,7 +76,7 @@ ur_msgs: float64 test_value float64 robot_mode float64[] joint_modes - + srvs: SetPayload request @@ -96,5 +96,3 @@ ur_msgs: float32 state response bool success - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/vision_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/vision_msgs.ros index a2ba775..9b08cb3 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/vision_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/vision_msgs.ros @@ -72,6 +72,3 @@ vision_msgs: message 'std_msgs/msg/Header'[] header 'vision_msgs/msg/BoundingBox3D'[] boxes - - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/visualization_msgs.ros b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/visualization_msgs.ros index fabf1c0..8241602 100644 --- a/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/visualization_msgs.ros +++ b/de.fraunhofer.ipa.ros.communication.objects/nav2_msgs/visualization_msgs.ros @@ -102,12 +102,10 @@ visualization_msgs: 'visualization_msgs/msg/Marker'[] markers bool independent_marker_orientation string description - + srvs: GetInteractiveMarkers request response uint64 sequence_number 'visualization_msgs/msg/InteractiveMarker'[] markers - - \ No newline at end of file diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/.gitignore new file mode 100644 index 0000000..f51b9f8 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/.gitignore @@ -0,0 +1,4 @@ +/CMakeLists.txt +/README.md +/package.xml +/setup.py diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/CMakeLists.txt b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/CMakeLists.txt new file mode 100644 index 0000000..6943494 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.5) +project(my_awesome_system) + +# Default to C++14 +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) + +### INSTALL ### +install(DIRECTORY launch config + DESTINATION share/${PROJECT_NAME} +) + +ament_package() diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/README.md b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/README.md new file mode 100644 index 0000000..a134eaf --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/README.md @@ -0,0 +1,53 @@ +# my_awesome_system + +This package has be created automatically using the [RosTooling](https://github.com/ipa320/RosTooling). + + +It holds the launch file to run the following nodes: +- awesome_ns1_node1 +- awesome_ns2_node2 +- node1a +- node2a + +The listed nodes offer the following connections: +- Publisher: my_publisher [std_msgs/Bool] +- ServiceServer: my_server [std_srvs/Empty] +- ActionServer: my_act_server [control_msgs/JointTrajectory] +- Subscriber: my_subscriber [std_msgs/Bool] +- ServiceClient: my_client [std_srvs/Empty] +- ActionClient: my_act_client [control_msgs/JointTrajectory] +- Publisher: other_publisher [std_msgs/Bool] +- Subscriber: other_subscriber [std_msgs/Bool] + +## Installation + +### Using release + +This package can be copied to a valid ROS 2 workspace. To be sure that all the related dependencies are installed and the command **rosdep install** can be used. +Then the workspace must be compiled using the common ROS 2 build command: + +``` +mkdir -p ros2_ws/src +cd ros2_ws/ +cp -r PATHtoTHISPackage/my_awesome_system src/. +rosdep install --from-path src/ -i -y +colcon build +source install/setup.bash +``` + + + +## Usage + + +To execute the launch file, the following command can be called: + +``` +ros2 launch my_awesome_system my_awesome_system.launch.py +``` + +The generated launch files requires the xterm package, it can be installed by: + +``` +sudo apt install xterm +``` diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/config/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/config/.gitignore new file mode 100644 index 0000000..efd0e4f --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/config/.gitignore @@ -0,0 +1 @@ +/awesome_ns2_node2.yaml diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/config/awesome_ns2_node2.yaml b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/config/awesome_ns2_node2.yaml new file mode 100644 index 0000000..a1a8fec --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/config/awesome_ns2_node2.yaml @@ -0,0 +1,10 @@ +node2: + ros__parameters: + awesome_array_param: [hello, hallo] + awesome_bool_param: true + awesome_double_param: 1.2 + awesome_integer_param: 2 + awesome_string_param: hallo + awesome_struct_param: + first: 2 + second: true diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/launch/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/launch/.gitignore new file mode 100644 index 0000000..5d4a7d0 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/launch/.gitignore @@ -0,0 +1 @@ +/my_awesome_system.launch.py diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/launch/my_awesome_system.launch.py b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/launch/my_awesome_system.launch.py new file mode 100644 index 0000000..8c3dcd0 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/launch/my_awesome_system.launch.py @@ -0,0 +1,62 @@ +import os +from launch import LaunchDescription +from launch_ros.actions import Node +from ament_index_python.packages import get_package_share_directory +from launch.actions import IncludeLaunchDescription, DeclareLaunchArgument +from launch.launch_description_sources import PythonLaunchDescriptionSource +from launch.substitutions import ( + LaunchConfiguration, + PythonExpression, + PathJoinSubstitution, + TextSubstitution, +) + + +def generate_launch_description(): + ld = LaunchDescription() + + # *** PARAMETERS *** + node2_config = os.path.join( + get_package_share_directory("my_awesome_system"), "config", "node2.yaml" + ) + + # *** ROS 2 nodes *** + awesome_ns1_node1 = Node( + package="my_awesome_pkg", + namespace="/awesome_ns1", + executable="awesome", + output="screen", + name="node1", + remappings=[ + ("awesome_pub", "my_publisher"), + ("awesome_action", "my_act_server"), + ("awesome_server", "my_server"), + ], + ) + awesome_ns2_node2 = Node( + package="my_awesome_pkg", + namespace="/awesome_ns2", + executable="awesome", + output="screen", + name="node2", + remappings=[ + ("awesome_sub", "my_publisher"), + ("awesome_action_client", "my_act_server"), + ("awesome_client", "my_server"), + ], + parameters=[node2_config], + ) + + # *** ROS 2 subsystems (include launch files)*** + include_my_subsystem = IncludeLaunchDescription( + PythonLaunchDescriptionSource( + [get_package_share_directory("my_subsystem") + "/launch/my_subsystem.launch.py"] + ) + ) + + # *** Add actions *** + ld.add_action(awesome_ns1_node1) + ld.add_action(awesome_ns2_node2) + ld.add_action(include_my_subsystem) + + return ld diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/my_awesome_system/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/my_awesome_system/.gitignore new file mode 100644 index 0000000..528066d --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/my_awesome_system/.gitignore @@ -0,0 +1 @@ +/__init__.py diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/my_awesome_system/__init__.py b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/my_awesome_system/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/package.xml b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/package.xml new file mode 100644 index 0000000..d11c156 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/package.xml @@ -0,0 +1,28 @@ + + + + my_awesome_system + 0.0.1 + This package provides launch file for operating my_awesome_system + Jane Doe + Jane Doe + Apache 2.0 + + ament_cmake + + ament_index_python + launch + my_awesome_pkg + my_subsystem + + + + ament_python + + diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/resource/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/resource/.gitignore new file mode 100644 index 0000000..512d724 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/resource/.gitignore @@ -0,0 +1,2 @@ +/my_awesome_system +/my_awesome_system.puml diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/resource/my_awesome_system b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/resource/my_awesome_system new file mode 100644 index 0000000..e69de29 diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/resource/my_awesome_system.puml b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/resource/my_awesome_system.puml new file mode 100644 index 0000000..f73e9d3 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/resource/my_awesome_system.puml @@ -0,0 +1,47 @@ +@startuml + +/'SUBSYSTEMS'/ +component my_subsystem { + component node1a { + +/' PORTS DEFINED AS AVAILABLE IN THE ROSSYSTEM FILE '/ + portout node1a.other_publisher as "other_publisher" #blue + +/' PORTS FROM THE ORIGINAL NODE '/ + } + + component node2a { + +/' PORTS DEFINED AS AVAILABLE IN THE ROSSYSTEM FILE '/ + portin node2a.other_subscriber as "other_subscriber" #blue + +/' PORTS FROM THE ORIGINAL NODE '/ + } + + } + + component node1 { + +/' PORTS DEFINED AS AVAILABLE IN THE ROSSYSTEM FILE '/ + portout node1.my_publisher as "my_publisher" #blue + portin node1.my_server as "my_server" #orange + portin node1.my_act_server as "my_act_server" #green + +/' PORTS FROM THE ORIGINAL NODE '/ + } + + component node2 { + +/' PORTS DEFINED AS AVAILABLE IN THE ROSSYSTEM FILE '/ + portin node2.my_subscriber as "my_subscriber" #blue + portout node2.my_client as "my_client" #orange + portout node2.my_act_client as "my_act_client" #green + +/' PORTS FROM THE ORIGINAL NODE '/ + } + + node1.my_publisher --> node2.my_subscriber + node1.my_act_server --> node2.my_act_client + node1.my_server --> node2.my_client + +@enduml diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/setup.py b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/setup.py new file mode 100644 index 0000000..e60478e --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_awesome_system/setup.py @@ -0,0 +1,25 @@ +import os +from glob import glob +from setuptools import setup + +PACKAGE_NAME = "my_awesome_system" + +setup( + name=PACKAGE_NAME, + version="0.0.1", + packages=[PACKAGE_NAME], + data_files=[ + # Install marker file in the package index + ("share/ament_index/resource_index/packages", ["resource/" + PACKAGE_NAME]), + # Include our package.xml file + (os.path.join("share", PACKAGE_NAME), ["package.xml"]), + # Include all launch files. + ( + os.path.join("share", PACKAGE_NAME, "launch"), + glob(os.path.join("launch", "*.launch.py")), + ), + (os.path.join("share", PACKAGE_NAME, "config"), glob(os.path.join("config", "*.yaml"))), + ], + install_requires=["setuptools"], + zip_safe=True, +) diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/.gitignore new file mode 100644 index 0000000..f51b9f8 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/.gitignore @@ -0,0 +1,4 @@ +/CMakeLists.txt +/README.md +/package.xml +/setup.py diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/CMakeLists.txt b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/CMakeLists.txt new file mode 100644 index 0000000..d622bcd --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.5) +project(my_subsystem) + +# Default to C++14 +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) + +### INSTALL ### +install(DIRECTORY launch + DESTINATION share/${PROJECT_NAME} +) + +ament_package() diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/README.md b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/README.md new file mode 100644 index 0000000..98a27d9 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/README.md @@ -0,0 +1,45 @@ +# my_subsystem + +This package has be created automatically using the [RosTooling](https://github.com/ipa320/RosTooling). + + +It holds the launch file to run the following nodes: +- node1a +- node2a + +The listed nodes offer the following connections: +- Publisher: other_publisher [std_msgs/Bool] +- Subscriber: other_subscriber [std_msgs/Bool] + +## Installation + +### Using release + +This package can be copied to a valid ROS 2 workspace. To be sure that all the related dependencies are installed and the command **rosdep install** can be used. +Then the workspace must be compiled using the common ROS 2 build command: + +``` +mkdir -p ros2_ws/src +cd ros2_ws/ +cp -r PATHtoTHISPackage/my_subsystem src/. +rosdep install --from-path src/ -i -y +colcon build +source install/setup.bash +``` + + + +## Usage + + +To execute the launch file, the following command can be called: + +``` +ros2 launch my_subsystem my_subsystem.launch.py +``` + +The generated launch files requires the xterm package, it can be installed by: + +``` +sudo apt install xterm +``` diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/launch/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/launch/.gitignore new file mode 100644 index 0000000..b2b2919 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/launch/.gitignore @@ -0,0 +1 @@ +/my_subsystem.launch.py diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/launch/my_subsystem.launch.py b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/launch/my_subsystem.launch.py new file mode 100644 index 0000000..fab0193 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/launch/my_subsystem.launch.py @@ -0,0 +1,40 @@ +from launch import LaunchDescription +from launch_ros.actions import Node +from launch.actions import IncludeLaunchDescription, DeclareLaunchArgument +from launch.launch_description_sources import PythonLaunchDescriptionSource +from launch.substitutions import ( + LaunchConfiguration, + PythonExpression, + PathJoinSubstitution, + TextSubstitution, +) + + +def generate_launch_description(): + ld = LaunchDescription() + + # *** PARAMETERS *** + + # *** ROS 2 nodes *** + node1a = Node( + package="my_awesome_pkg", + executable="awesome", + output="screen", + name="node1a", + remappings=[("awesome_pub", "other_publisher")], + ) + node2a = Node( + package="my_awesome_pkg", + executable="awesome", + output="screen", + name="node2a", + remappings=[("awesome_sub", "other_publisher")], + ) + + # *** ROS 2 subsystems (include launch files)*** + + # *** Add actions *** + ld.add_action(node1a) + ld.add_action(node2a) + + return ld diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/my_subsystem/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/my_subsystem/.gitignore new file mode 100644 index 0000000..528066d --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/my_subsystem/.gitignore @@ -0,0 +1 @@ +/__init__.py diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/my_subsystem/__init__.py b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/my_subsystem/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/package.xml b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/package.xml new file mode 100644 index 0000000..21e4a55 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/package.xml @@ -0,0 +1,27 @@ + + + + my_subsystem + 0.0.1 + This package provides launch file for operating my_subsystem + Jane Doe + Jane Doe + Apache 2.0 + + ament_cmake + + ament_index_python + launch + my_awesome_pkg + + + + ament_python + + diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/resource/.gitignore b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/resource/.gitignore new file mode 100644 index 0000000..b479692 --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/resource/.gitignore @@ -0,0 +1,2 @@ +/my_subsystem +/my_subsystem.puml diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/resource/my_subsystem b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/resource/my_subsystem new file mode 100644 index 0000000..e69de29 diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/resource/my_subsystem.puml b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/resource/my_subsystem.puml new file mode 100644 index 0000000..a535e5b --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/resource/my_subsystem.puml @@ -0,0 +1,23 @@ +@startuml + +/'SUBSYSTEMS'/ + + component node1a { + +/' PORTS DEFINED AS AVAILABLE IN THE ROSSYSTEM FILE '/ + portout node1a.other_publisher as "other_publisher" #blue + +/' PORTS FROM THE ORIGINAL NODE '/ + } + + component node2a { + +/' PORTS DEFINED AS AVAILABLE IN THE ROSSYSTEM FILE '/ + portin node2a.other_subscriber as "other_subscriber" #blue + +/' PORTS FROM THE ORIGINAL NODE '/ + } + + node1a.other_publisher --> node2a.other_subscriber + +@enduml diff --git a/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/setup.py b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/setup.py new file mode 100644 index 0000000..884d20c --- /dev/null +++ b/de.fraunhofer.ipa.ros.communication.objects/src-gen/my_subsystem/setup.py @@ -0,0 +1,24 @@ +import os +from glob import glob +from setuptools import setup + +PACKAGE_NAME = "my_subsystem" + +setup( + name=PACKAGE_NAME, + version="0.0.1", + packages=[PACKAGE_NAME], + data_files=[ + # Install marker file in the package index + ("share/ament_index/resource_index/packages", ["resource/" + PACKAGE_NAME]), + # Include our package.xml file + (os.path.join("share", PACKAGE_NAME), ["package.xml"]), + # Include all launch files. + ( + os.path.join("share", PACKAGE_NAME, "launch"), + glob(os.path.join("launch", "*.launch.py")), + ), + ], + install_requires=["setuptools"], + zip_safe=True, +) diff --git a/denso.nextgen.software.library/.project b/denso.nextgen.software.library/.project new file mode 100644 index 0000000..e51c556 --- /dev/null +++ b/denso.nextgen.software.library/.project @@ -0,0 +1,18 @@ + + + denso.nextgen.software.library + + + de.fraunhofer.ipa.ros.communication.objects + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/tools/ros_model_extractor.py b/tools/ros_model_extractor.py index 59033c8..024b995 100755 --- a/tools/ros_model_extractor.py +++ b/tools/ros_model_extractor.py @@ -8,7 +8,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -24,76 +24,80 @@ from haros.launch_parser import LaunchParser, LaunchParserError, NodeTag from haros.cmake_parser import RosCMakeParser from bonsai.analysis import CodeQuery + try: from bonsai.cpp.clang_parser import CppAstParser except ImportError: CppAstParser = None from bonsai.py.py_parser import PyAstParser -class RosExtractor(): - def launch(self): - self.parse_arg() - - #FIND WORKSPACE: - #Fixme: the env variable ROS_PACKAGE_PATH is not the best way to extract the workspace path - ros_pkg_path = os.environ.get("ROS_PACKAGE_PATH") - ws = ros_pkg_path[:ros_pkg_path.find("/src:")] - - #BONSAI PARSER - parser = CppAstParser(workspace = ws) - parser.set_library_path("/usr/lib/llvm-3.8/lib") - parser.set_standard_includes("/usr/lib/llvm-3.8/lib/clang/3.8.0/include") - db_dir = os.path.join(ws, "build") - if os.path.isfile(os.path.join(db_dir, "compile_commands.json")): - parser.set_database(db_dir) - - if (self.args.node): - self.extract_node(self.args.name, self.args.name, self.args.package_name, None, ws, None) - - if (self.args.launch): - pkg = Package(self.args.package_name) - rospack = rospkg.RosPack() - pkg.path = rospack.get_path(self.args.package_name) - relative_path = "launch/" - for root, dirs, files in os.walk(pkg.path): - for file in files: - if file.endswith(self.args.name): - relative_path = root.replace("/"+pkg.path,"") - source = SourceFile(self.args.name,relative_path,pkg) - pkgs = {pkg.id: pkg} - launch_parser = LaunchParser(pkgs = pkgs) - rossystem = ros_system(self.args.name.replace(".launch","")) - try: - source.tree = launch_parser.parse(source.path) - for node in source.tree.children: - if isinstance(node,NodeTag): - name = node.attributes["name"] - node_name = node.attributes["type"] - node_pkg = node.attributes["pkg"] - try: - ns = node.attributes["ns"] - except: - ns=None - self.extract_node(name,node_name,node_pkg,ns,ws,rossystem) - except LaunchParserError as e: - print("Parsing error in %s:\n%s",source.path, str(e)) - system_str = rossystem.save_model(self.args.model_path) - if self.args.output: - print system_str - def extract_node(self, name, node_name, pkg_name, ns, ws, rossystem): +class RosExtractor: + def launch(self): + self.parse_arg() + + # FIND WORKSPACE: + # Fixme: the env variable ROS_PACKAGE_PATH is not the best way to extract the workspace path + ros_pkg_path = os.environ.get("ROS_PACKAGE_PATH") + ws = ros_pkg_path[: ros_pkg_path.find("/src:")] + + # BONSAI PARSER + parser = CppAstParser(workspace=ws) + parser.set_library_path("/usr/lib/llvm-3.8/lib") + parser.set_standard_includes("/usr/lib/llvm-3.8/lib/clang/3.8.0/include") + db_dir = os.path.join(ws, "build") + if os.path.isfile(os.path.join(db_dir, "compile_commands.json")): + parser.set_database(db_dir) + + if self.args.node: + self.extract_node( + self.args.name, self.args.name, self.args.package_name, None, ws, None + ) + + if self.args.launch: + pkg = Package(self.args.package_name) + rospack = rospkg.RosPack() + pkg.path = rospack.get_path(self.args.package_name) + relative_path = "launch/" + for root, dirs, files in os.walk(pkg.path): + for file in files: + if file.endswith(self.args.name): + relative_path = root.replace("/" + pkg.path, "") + source = SourceFile(self.args.name, relative_path, pkg) + pkgs = {pkg.id: pkg} + launch_parser = LaunchParser(pkgs=pkgs) + rossystem = ros_system(self.args.name.replace(".launch", "")) + try: + source.tree = launch_parser.parse(source.path) + for node in source.tree.children: + if isinstance(node, NodeTag): + name = node.attributes["name"] + node_name = node.attributes["type"] + node_pkg = node.attributes["pkg"] + try: + ns = node.attributes["ns"] + except: + ns = None + self.extract_node(name, node_name, node_pkg, ns, ws, rossystem) + except LaunchParserError as e: + print("Parsing error in %s:\n%s", source.path, str(e)) + system_str = rossystem.save_model(self.args.model_path) + if self.args.output: + print(system_str) + + def extract_node(self, name, node_name, pkg_name, ns, ws, rossystem): pkg = Package(pkg_name) rospack = rospkg.RosPack() pkg.path = rospack.get_path(pkg_name) roscomponent = None - #HAROS NODE EXTRACTOR + # HAROS NODE EXTRACTOR node = Node(node_name, pkg, rosname=RosName(node_name)) - srcdir = pkg.path[len(ws):] + srcdir = pkg.path[len(ws) :] srcdir = os.path.join(ws, srcdir.split(os.sep, 1)[0]) bindir = os.path.join(ws, "build") - #HAROS CMAKE PARSER - parser = RosCMakeParser(srcdir, bindir, pkgs = [pkg]) + # HAROS CMAKE PARSER + parser = RosCMakeParser(srcdir, bindir, pkgs=[pkg]) model_str = "" if os.path.isfile(os.path.join(pkg.path, "CMakeLists.txt")): parser.parse(os.path.join(pkg.path, "CMakeLists.txt")) @@ -101,16 +105,16 @@ def extract_node(self, name, node_name, pkg_name, ns, ws, rossystem): if target.output_name == node_name: for file_in in target.files: full_path = file_in - relative_path = full_path.replace(pkg.path+"/","").rpartition("/")[0] - file_name = full_path.rsplit('/', 1)[-1] - source_file = SourceFile(file_name, relative_path , pkg) + relative_path = full_path.replace(pkg.path + "/", "").rpartition("/")[0] + file_name = full_path.rsplit("/", 1)[-1] + source_file = SourceFile(file_name, relative_path, pkg) node.source_files.append(source_file) if node.language == "cpp": - parser = CppAstParser(workspace = ws) + parser = CppAstParser(workspace=ws) analysis = RoscppExtractor(pkg, ws) node.source_tree = parser.global_scope if node.language == "py": - parser = PyAstParser(workspace = ws) + parser = PyAstParser(workspace=ws) analysis = RospyExtractor(pkg, ws) for sf in node.source_files: @@ -118,290 +122,470 @@ def extract_node(self, name, node_name, pkg_name, ns, ws, rossystem): # ROS MODEL EXTRACT PRIMITIVES rosmodel = ros_model(pkg.name, node_name, node_name) roscomponent = ros_component(name, ns) - self.extract_primitives(node, parser, analysis, rosmodel, roscomponent, pkg_name, node_name, node_name) + self.extract_primitives( + node, + parser, + analysis, + rosmodel, + roscomponent, + pkg_name, + node_name, + node_name, + ) # SAVE ROS MODEL model_str = rosmodel.save_model(self.args.model_path) if rossystem is not None and roscomponent is not None: rossystem.add_component(roscomponent) if self.args.output: - print model_str + print(model_str) - def extract_primitives(self, node, parser, analysis, rosmodel, roscomponent, pkg_name, node_name, art_name): + def extract_primitives( + self, + node, + parser, + analysis, + rosmodel, + roscomponent, + pkg_name, + node_name, + art_name, + ): gs = parser.global_scope if node.language == "cpp": - for call in (CodeQuery(gs).all_calls.where_name("advertise").where_result("ros::Publisher").get()): + for call in ( + CodeQuery(gs).all_calls.where_name("advertise").where_result("ros::Publisher").get() + ): if len(call.arguments) > 1: name = analysis._extract_topic(call, topic_pos=0) msg_type = analysis._extract_message_type(call) queue_size = analysis._extract_queue_size(call, queue_pos=1) pub = publisher(name, msg_type) rosmodel.pubs.append(pub) - roscomponent.add_interface(name,"pubs", pkg_name+"."+art_name+"."+node_name+"."+name) - for call in (CodeQuery(gs).all_calls.where_name("subscribe").where_result("ros::Subscriber").get()): + roscomponent.add_interface( + name, + "pubs", + pkg_name + "." + art_name + "." + node_name + "." + name, + ) + for call in ( + CodeQuery(gs) + .all_calls.where_name("subscribe") + .where_result("ros::Subscriber") + .get() + ): if len(call.arguments) > 1: name = analysis._extract_topic(call, topic_pos=0) msg_type = analysis._extract_message_type(call) queue_size = analysis._extract_queue_size(call, queue_pos=1) sub = subscriber(name, msg_type) rosmodel.subs.append(sub) - roscomponent.add_interface(name,"subs", pkg_name+"."+art_name+"."+node_name+"."+name) - for call in (CodeQuery(gs).all_calls.where_name("advertiseService").where_result("ros::ServiceServer").get()): + roscomponent.add_interface( + name, + "subs", + pkg_name + "." + art_name + "." + node_name + "." + name, + ) + for call in ( + CodeQuery(gs) + .all_calls.where_name("advertiseService") + .where_result("ros::ServiceServer") + .get() + ): if len(call.arguments) > 1: name = analysis._extract_topic(call) srv_type = analysis._extract_message_type(call) srv_server = service_server(name, srv_type) rosmodel.srvsrvs.append(srv_server) - roscomponent.add_interface(name,"srvsrvs", pkg_name+"."+art_name+"."+node_name+"."+name) - for call in (CodeQuery(gs).all_calls.where_name("serviceClient").where_result("ros::ServiceClient").get()): + roscomponent.add_interface( + name, + "srvsrvs", + pkg_name + "." + art_name + "." + node_name + "." + name, + ) + for call in ( + CodeQuery(gs) + .all_calls.where_name("serviceClient") + .where_result("ros::ServiceClient") + .get() + ): if len(call.arguments) > 1: name = analysis._extract_topic(call) srv_type = analysis._extract_message_type(call) srv_client = service_client(name, srv_type) rosmodel.srvcls.append(srv_client) - roscomponent.add_interface(name,"srvcls", pkg_name+"."+art_name+"."+node_name+"."+name) + roscomponent.add_interface( + name, + "srvcls", + pkg_name + "." + art_name + "." + node_name + "." + name, + ) if node.language == "py": - msgs_list=[] + msgs_list = [] for i in parser.imported_names_list: if "msg" in str(i) or "srv" in str(i): - msgs_list.append((i.split(".")[0],i.split(".")[2])) - for call in (CodeQuery(gs).all_calls.where_name(('Publisher','rospy.Publisher'))).get(): + msgs_list.append((i.split(".")[0], i.split(".")[2])) + for call in ( + CodeQuery(gs).all_calls.where_name(("Publisher", "rospy.Publisher")) + ).get(): if len(call.arguments) > 1: ns, name = analysis._extract_topic(call) - msg_type = analysis._extract_message_type(call, 'data_class', msgs_list) - queue_size = analysis._extract_queue_size(call ) + msg_type = analysis._extract_message_type(call, "data_class", msgs_list) + queue_size = analysis._extract_queue_size(call) pub = publisher(name, msg_type) rosmodel.pubs.append(pub) - roscomponent.add_interface(name,"pubs", pkg_name+"."+art_name+"."+node_name+"."+name) - for call in (CodeQuery(gs).all_calls.where_name(('Subscriber', 'rospy.Subscriber'))).get(): + roscomponent.add_interface( + name, + "pubs", + pkg_name + "." + art_name + "." + node_name + "." + name, + ) + for call in ( + CodeQuery(gs).all_calls.where_name(("Subscriber", "rospy.Subscriber")) + ).get(): if len(call.arguments) > 1: ns, name = analysis._extract_topic(call) - msg_type = analysis._extract_message_type(call, 'data_class', msgs_list) - queue_size = analysis._extract_queue_size(call ) + msg_type = analysis._extract_message_type(call, "data_class", msgs_list) + queue_size = analysis._extract_queue_size(call) sub = subscriber(name, msg_type) rosmodel.subs.append(sub) - roscomponent.add_interface(name,"subs", pkg_name+"."+art_name+"."+node_name+"."+name) - for call in (CodeQuery(gs).all_calls.where_name(analysis.all_rospy_names('service-def'))).get(): + roscomponent.add_interface( + name, + "subs", + pkg_name + "." + art_name + "." + node_name + "." + name, + ) + for call in ( + CodeQuery(gs).all_calls.where_name(analysis.all_rospy_names("service-def")) + ).get(): if len(call.arguments) > 1: ns, name = analysis._extract_topic(call) - srv_type = analysis._extract_message_type(call, 'service_class', msgs_list) + srv_type = analysis._extract_message_type(call, "service_class", msgs_list) srv_server = service_server(name, srv_type) rosmodel.srvsrvs.append(srv_server) - roscomponent.add_interface(name,"srvsrvs", pkg_name+"."+art_name+"."+node_name+"."+name) - for call in (CodeQuery(gs).all_calls.where_name(analysis.all_rospy_names('service-call'))).get(): + roscomponent.add_interface( + name, + "srvsrvs", + pkg_name + "." + art_name + "." + node_name + "." + name, + ) + for call in ( + CodeQuery(gs).all_calls.where_name(analysis.all_rospy_names("service-call")) + ).get(): if len(call.arguments) > 1: ns, name = analysis._extract_topic(call) - srv_type = analysis._extract_message_type(call, 'service_class', msgs_list) + srv_type = analysis._extract_message_type(call, "service_class", msgs_list) srv_client = service_client(name, srv_type) rosmodel.srvcls.append(srv_client) - roscomponent.add_interface(name,"srvcls", pkg_name+"."+art_name+"."+node_name+"."+name) - - def parse_arg(self): - parser = argparse.ArgumentParser() - mutually_exclusive = parser.add_mutually_exclusive_group() - mutually_exclusive.add_argument('--node', '-n', help="node analyse", action='store_true') - mutually_exclusive.add_argument('--launch', '-l', help="launch analyse", action='store_true') - parser.add_argument('--model-path', help='path to the folder in which the model files should be saved', - default='./', - nargs='?', const='./') - parser.add_argument('--output', help='print the model output') - parser.add_argument('--package', required=True, dest='package_name') - parser.add_argument('--name', required=True, dest='name') - self.args = parser.parse_args() + roscomponent.add_interface( + name, + "srvcls", + pkg_name + "." + art_name + "." + node_name + "." + name, + ) + + def parse_arg(self): + parser = argparse.ArgumentParser() + mutually_exclusive = parser.add_mutually_exclusive_group() + mutually_exclusive.add_argument("--node", "-n", help="node analyse", action="store_true") + mutually_exclusive.add_argument( + "--launch", "-l", help="launch analyse", action="store_true" + ) + parser.add_argument( + "--model-path", + help="path to the folder in which the model files should be saved", + default="./", + nargs="?", + const="./", + ) + parser.add_argument("--output", help="print the model output") + parser.add_argument("--package", required=True, dest="package_name") + parser.add_argument("--name", required=True, dest="name") + self.args = parser.parse_args() + class ros_model: - def __init__(self, pkg_name, name, node_name): - self.package = pkg_name - self.artifact = name - self.node = node_name - self.pubs = [] - self.subs = [] - self.srvsrvs = [] - self.srvcls = [] - def save_model(self, model_path): - model_str = "PackageSet { package { \n" - model_str = model_str+" CatkinPackage "+self.package+" { " - model_str = model_str+"artifact {\n Artifact "+self.artifact+" {\n" - model_str = model_str+" node Node { name "+ self.node+"\n" - if len(self.srvsrvs) > 0: - model_str = model_str+" serviceserver {\n" - count = len(self.srvsrvs) - for srv in self.srvsrvs: - model_str = model_str+" ServiceServer { name '"+srv.name+"' service '"+srv.srv_type+"'}" - count = count -1 - if count > 0: - model_str = model_str+",\n" - else: - model_str = model_str+"}\n" - if len(self.pubs) > 0: - model_str = model_str+" publisher {\n" - count = len(self.pubs) - for pub in self.pubs: - model_str = model_str+" Publisher { name '"+pub.name+"' message '"+pub.msg_type+"'}" - count = count -1 - if count > 0: - model_str = model_str+",\n" - else: - model_str = model_str+"}\n" - if len(self.subs) > 0: - model_str = model_str+" subscriber {\n" - count = len(self.subs) - for sub in self.subs: - model_str = model_str+" Subscriber { name '"+sub.name+"' message '"+sub.msg_type+"'}" - count = count -1 - if count > 0: - model_str = model_str+",\n" - else: - model_str = model_str+"}\n" - if len(self.srvcls) > 0: - model_str = model_str+" serviceclient {\n" - count = len(self.srvcls) - for srv in self.srvcls: - model_str = model_str+" ServiceClient { name '"+srv.name+"' service '"+srv.srv_type+"'}" - count = count -1 - if count > 0: - model_str = model_str+",\n" - else: - model_str = model_str+"}\n" - model_str = model_str + "}}}}}}" - text_file = open(os.path.join(model_path, self.node+".ros"), "w") - text_file.write(model_str) - text_file.close() - return model_str + def __init__(self, pkg_name, name, node_name): + self.package = pkg_name + self.artifact = name + self.node = node_name + self.pubs = [] + self.subs = [] + self.srvsrvs = [] + self.srvcls = [] + + def save_model(self, model_path): + model_str = "PackageSet { package { \n" + model_str = model_str + " CatkinPackage " + self.package + " { " + model_str = model_str + "artifact {\n Artifact " + self.artifact + " {\n" + model_str = model_str + " node Node { name " + self.node + "\n" + if len(self.srvsrvs) > 0: + model_str = model_str + " serviceserver {\n" + count = len(self.srvsrvs) + for srv in self.srvsrvs: + model_str = ( + model_str + + " ServiceServer { name '" + + srv.name + + "' service '" + + srv.srv_type + + "'}" + ) + count = count - 1 + if count > 0: + model_str = model_str + ",\n" + else: + model_str = model_str + "}\n" + if len(self.pubs) > 0: + model_str = model_str + " publisher {\n" + count = len(self.pubs) + for pub in self.pubs: + model_str = ( + model_str + + " Publisher { name '" + + pub.name + + "' message '" + + pub.msg_type + + "'}" + ) + count = count - 1 + if count > 0: + model_str = model_str + ",\n" + else: + model_str = model_str + "}\n" + if len(self.subs) > 0: + model_str = model_str + " subscriber {\n" + count = len(self.subs) + for sub in self.subs: + model_str = ( + model_str + + " Subscriber { name '" + + sub.name + + "' message '" + + sub.msg_type + + "'}" + ) + count = count - 1 + if count > 0: + model_str = model_str + ",\n" + else: + model_str = model_str + "}\n" + if len(self.srvcls) > 0: + model_str = model_str + " serviceclient {\n" + count = len(self.srvcls) + for srv in self.srvcls: + model_str = ( + model_str + + " ServiceClient { name '" + + srv.name + + "' service '" + + srv.srv_type + + "'}" + ) + count = count - 1 + if count > 0: + model_str = model_str + ",\n" + else: + model_str = model_str + "}\n" + model_str = model_str + "}}}}}}" + text_file = open(os.path.join(model_path, self.node + ".ros"), "w") + text_file.write(model_str) + text_file.close() + return model_str + class publisher: - def __init__(self, name, msg_type): - self.name = name - self.msg_type = msg_type.replace("/",".") + def __init__(self, name, msg_type): + self.name = name + self.msg_type = msg_type.replace("/", ".") + class subscriber: - def __init__(self, name, msg_type): - self.name = name - self.msg_type = msg_type.replace("/",".") + def __init__(self, name, msg_type): + self.name = name + self.msg_type = msg_type.replace("/", ".") + class service_server: - def __init__(self, name, srv_type): - self.name = name - self.srv_type = srv_type.replace("/",".").replace("Request","") + def __init__(self, name, srv_type): + self.name = name + self.srv_type = srv_type.replace("/", ".").replace("Request", "") + class service_client: - def __init__(self, name, srv_type): - self.name = name - self.srv_type = srv_type.replace("/",".").replace("Response","") + def __init__(self, name, srv_type): + self.name = name + self.srv_type = srv_type.replace("/", ".").replace("Response", "") + class RosInterface: - def __init__(self, name, ref): - self.name = name - self.ref = ref + def __init__(self, name, ref): + self.name = name + self.ref = ref + class ros_component: - def __init__(self, name, ns): - self.name = ns+name if ns else name - self.ns = ns - self.pubs = [] - self.subs = [] - self.srvsrvs = [] - self.srvcls = [] - def add_interface(self, name, interface_type, ref): - if interface_type == "pubs": - self.pubs.append(RosInterface(name,ref)) - if interface_type == "subs": - self.subs.append(RosInterface(name,ref)) - if interface_type == "srvsrvs": - self.srvsrvs.append(RosInterface(name,ref)) - if interface_type == "srvcls": - self.srvcls.append(RosInterface(name,ref)) + def __init__(self, name, ns): + self.name = ns + name if ns else name + self.ns = ns + self.pubs = [] + self.subs = [] + self.srvsrvs = [] + self.srvcls = [] + + def add_interface(self, name, interface_type, ref): + if interface_type == "pubs": + self.pubs.append(RosInterface(name, ref)) + if interface_type == "subs": + self.subs.append(RosInterface(name, ref)) + if interface_type == "srvsrvs": + self.srvsrvs.append(RosInterface(name, ref)) + if interface_type == "srvcls": + self.srvcls.append(RosInterface(name, ref)) + class ros_system: - def __init__(self, name): - self.name = name - self.components = [] - - def add_component(self, component): - self.components.append(component) - - def save_model(self, model_path): - system_model_str = "RosSystem { Name "+self.name+"\n" - if len(self.components)>0: - cout_c = len(self.components) - system_model_str+=" RosComponents ( \n" - for comp in self.components: - pubs = comp.pubs - subs = comp.subs - srvsrvs = comp.srvsrvs - srvcls = comp.srvcls - if comp.ns is not None: - system_model_str+=" ComponentInterface { name '"+str(comp.name)+"' NameSpace '"+str(comp.ns)+"' \n" - else: - system_model_str+=" ComponentInterface { name '"+comp.name+"' \n" - if len(pubs) > 0: - system_model_str+=" RosPublishers{\n" - count = len(pubs) - for pub in pubs: - if ((pub.name.startswith('/')) or (comp.ns is None)): - system_model_str+=" RosPublisher '"+pub.name+"' { RefPublisher '"+pub.ref+"'}" - else: - system_model_str+=" RosPublisher '"+comp.ns+pub.name+"' { RefPublisher '"+pub.ref+"'}" - count = count -1 - if count > 0: - system_model_str+=",\n" - else: - system_model_str+="}\n" - if len(subs) > 0: - system_model_str+=" RosSubscribers{\n" - count = len(subs) - for sub in subs: - if ((sub.name.startswith('/')) or (comp.ns is None)): - system_model_str+=" RosSubscriber '"+sub.name+"' { RefSubscriber '"+sub.ref+"'}" - else: - system_model_str+=" RosSubscriber '"+comp.ns+sub.name+"' { RefSubscriber '"+sub.ref+"'}" - count = count -1 - if count > 0: - system_model_str+=",\n" - else: - system_model_str+="}\n" - if len(srvsrvs) > 0: - system_model_str+=" RosSrvServers{\n" - count = len(srvsrvs) - for srv in srvsrvs: - if ((srv.name.startswith('/')) or (comp.ns is None)): - system_model_str+=" RosServiceServer '"+srv.name+"' { RefServer '"+srv.ref+"'}" - else: - system_model_str+=" RosServiceServer '"+comp.ns+srv.name+"' { RefServer '"+srv.ref+"'}" - count = count -1 - if count > 0: - system_model_str+=",\n" - else: - system_model_str+="}\n" - if len(srvcls) > 0: - system_model_str+=" RosSrvClients{\n" - count = len(srvcls) - for srv in srvcls: - if ((srv.name.startswith('/')) or (comp.ns is None)): - system_model_str+=" RosServiceClient '"+srv.name+"' { RefClient '"+srv.ref+"'}" - else: - system_model_str+=" RosServiceClient '"+comp.ns+srv.name+"' { RefClient '"+srv.ref+"'}" - count = count -1 - if count > 0: - system_model_str+=",\n" - else: - system_model_str+="}\n" - cout_c = cout_c -1 - if cout_c > 0: - system_model_str+="},\n" - else: - system_model_str+="}\n" - system_model_str+=")" - system_model_str+="}" - text_file = open(os.path.join(model_path, self.name+".rossystem"), "w") - text_file.write(system_model_str) - text_file.close() - return system_model_str - -def main(argv = None): + def __init__(self, name): + self.name = name + self.components = [] + + def add_component(self, component): + self.components.append(component) + + def save_model(self, model_path): + system_model_str = "RosSystem { Name " + self.name + "\n" + if len(self.components) > 0: + cout_c = len(self.components) + system_model_str += " RosComponents ( \n" + for comp in self.components: + pubs = comp.pubs + subs = comp.subs + srvsrvs = comp.srvsrvs + srvcls = comp.srvcls + if comp.ns is not None: + system_model_str += ( + " ComponentInterface { name '" + + str(comp.name) + + "' NameSpace '" + + str(comp.ns) + + "' \n" + ) + else: + system_model_str += " ComponentInterface { name '" + comp.name + "' \n" + if len(pubs) > 0: + system_model_str += " RosPublishers{\n" + count = len(pubs) + for pub in pubs: + if (pub.name.startswith("/")) or (comp.ns is None): + system_model_str += ( + " RosPublisher '" + + pub.name + + "' { RefPublisher '" + + pub.ref + + "'}" + ) + else: + system_model_str += ( + " RosPublisher '" + + comp.ns + + pub.name + + "' { RefPublisher '" + + pub.ref + + "'}" + ) + count = count - 1 + if count > 0: + system_model_str += ",\n" + else: + system_model_str += "}\n" + if len(subs) > 0: + system_model_str += " RosSubscribers{\n" + count = len(subs) + for sub in subs: + if (sub.name.startswith("/")) or (comp.ns is None): + system_model_str += ( + " RosSubscriber '" + + sub.name + + "' { RefSubscriber '" + + sub.ref + + "'}" + ) + else: + system_model_str += ( + " RosSubscriber '" + + comp.ns + + sub.name + + "' { RefSubscriber '" + + sub.ref + + "'}" + ) + count = count - 1 + if count > 0: + system_model_str += ",\n" + else: + system_model_str += "}\n" + if len(srvsrvs) > 0: + system_model_str += " RosSrvServers{\n" + count = len(srvsrvs) + for srv in srvsrvs: + if (srv.name.startswith("/")) or (comp.ns is None): + system_model_str += ( + " RosServiceServer '" + + srv.name + + "' { RefServer '" + + srv.ref + + "'}" + ) + else: + system_model_str += ( + " RosServiceServer '" + + comp.ns + + srv.name + + "' { RefServer '" + + srv.ref + + "'}" + ) + count = count - 1 + if count > 0: + system_model_str += ",\n" + else: + system_model_str += "}\n" + if len(srvcls) > 0: + system_model_str += " RosSrvClients{\n" + count = len(srvcls) + for srv in srvcls: + if (srv.name.startswith("/")) or (comp.ns is None): + system_model_str += ( + " RosServiceClient '" + + srv.name + + "' { RefClient '" + + srv.ref + + "'}" + ) + else: + system_model_str += ( + " RosServiceClient '" + + comp.ns + + srv.name + + "' { RefClient '" + + srv.ref + + "'}" + ) + count = count - 1 + if count > 0: + system_model_str += ",\n" + else: + system_model_str += "}\n" + cout_c = cout_c - 1 + if cout_c > 0: + system_model_str += "},\n" + else: + system_model_str += "}\n" + system_model_str += ")" + system_model_str += "}" + text_file = open(os.path.join(model_path, self.name + ".rossystem"), "w") + text_file.write(system_model_str) + text_file.close() + return system_model_str + + +def main(argv=None): extractor = RosExtractor() if extractor.launch(): return 0 return 1 -if __name__== "__main__": - main() + +if __name__ == "__main__": + main()