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