Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • sw/armarx/robot-api
  • uwkce_singer/robot-api
  • untcg_hofmann/robot-api
  • ulqba_korosakov/RobotAPI
4 results
Show changes
Commits on Source (166)
Showing
with 544 additions and 89 deletions
stages:
- build-and-test
.build-and-test:
cache:
# https://docs.gitlab.com/ee/ci/caching/#share-caches-across-jobs-in-different-branches
key: one-key-to-rule-them-all
paths:
- .apt
- .ccache
before_script:
# Apt cache configuration.
- rm -rf /var/cache/apt/archives || true
- rm -f /etc/apt/apt.conf.d/docker-clean # Remove docker-clean script to avoid cache deletion.
- mkdir .apt || true
- ln -s "$CI_PROJECT_DIR/.apt" /var/cache/apt/archives
# Update apt info.
- apt-get update
# Ccache configuration and introspection.
- apt-get install ccache --yes
- ccache --set-config=cache_dir="$CI_PROJECT_DIR/.ccache"
- ccache --max-size=20G
- ccache --show-stats
# Ice configuration to run in Docker.
- export ICE_DEFAULT_HOST="127.0.0.1"
- export ICE_RUN_AS_ROOT="true"
# Activate Axii.
- source /axii/scripts/install_axii.sh
script:
# Create workspace.
- axii workspace create ~/workspace workspace
- axii workspace activate workspace
- _axii_auto_env_refresh
# Use workspace configuration from project.
- cp "$CI_PROJECT_DIR/.gitlab/ci/armarx-workspace.json" "$ARMARX_WORKSPACE/armarx-workspace.json"
- cat "$ARMARX_WORKSPACE/armarx-workspace.json"
- axii workspace env
- _axii_auto_env_refresh
- echo "Workspace information:"
- axii workspace list-modules
- axii workspace list-modules --deps
- axii workspace info
- export PROJECT_MODULE="armarx/RobotAPI"
- export PROJECT_PATH_IN_WORKSPACE="$armarx__RobotAPI__PATH"
# Symlink project directory into Axii workspace.
- mkdir -p "$(dirname $PROJECT_PATH_IN_WORKSPACE)"
- ln -s "$CI_PROJECT_DIR" "$PROJECT_PATH_IN_WORKSPACE"
# Fix "CMake Error in CMakeLists.txt: Imported target "VirtualRobot" includes non-existent path "/usr/lib/include"
# (caused by at least dmp)
- mkdir -p /usr/lib/include
# Upgrade.
- axii workspace system --accept-apt-install
- axii workspace update --prefer-https
- axii workspace upgrade -m "$PROJECT_MODULE"
- ccache --show-stats
# Try starting Ice.
- armarx switch docker_test --ice-host 127.0.0.1 --ice-port 10000 --ice-default-host 127.0.0.1 --mongo-host 127.0.0.1 --mongo-port 10001
- armarx profile
- armarx status || true
#- armarx start
# armarx status
#- armarx stop
# Test.
# ToDo: Add and use `axii ws test -m "$PROJECT_MODULE"`
- cd "$PROJECT_PATH_IN_WORKSPACE/build"
- ctest --output-on-failure --output-junit "$CI_PROJECT_DIR/report.xml" .
artifacts:
reports:
junit: report.xml
build-and-test-bionic:
stage: build-and-test
extends: .build-and-test
image: git.h2t.iar.kit.edu:5050/sw/armarx/meta/axii:latest-bionic
build-and-test-jammy:
stage: build-and-test
extends: .build-and-test
image: git.h2t.iar.kit.edu:5050/sw/armarx/meta/axii:latest-jammy
{
"modules": {
"tools/ccache/default": {},
"armarx/RobotAPI": {}
},
"global": {
"prepare": {
"cmake": {
"definitions": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"CMAKE_C_COMPILER_LAUNCHER": "$CCACHE",
"CMAKE_CXX_COMPILER_LAUNCHER": "$CCACHE"
}
}
}
}
}
......@@ -114,6 +114,15 @@
<CollisionModel>
<File type="Inventor">convexModel/neck_yaw_link.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Sphere radius="140">
<Transform>
<Translation x="40" y="0" z="180" />
</Transform>
</Sphere>
</Primitives>
</PrimitiveModel>
<Child name="Head_Tilt"/>
</RobotNode>
......
......@@ -33,6 +33,16 @@
<CollisionModel>
<File type="Inventor">convexModel/shoulder_l.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="80" radius="120">
<Transform>
<Translation x="0" y="0" z="-90" />
<rpy roll="90" pitch="0" yaw="00" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Shoulder 2 L"/>
</RobotNode>
......@@ -60,6 +70,15 @@
<CollisionModel>
<File type="Inventor">convexModel/shoulder2_l_rot.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="310" radius="50">
<Transform>
<Translation x="0" y="150" z="0" />
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Upperarm L"/>
</RobotNode>
......@@ -138,6 +157,16 @@
<CollisionModel>
<File type="Inventor">convexModel/underarm_l.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="240" radius="50">
<Transform>
<Translation x="0" y="0" z="-110" />
<rpy roll="90" pitch="0" yaw="0" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Physics>
<CoM location="VisualizationBBoxCenter"/>
<Mass value="2.26566087" units="kg" />
......
......@@ -34,6 +34,16 @@
<CollisionModel>
<File type="Inventor">convexModel/shoulder_r.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="80" radius="120">
<Transform>
<Translation x="0" y="0" z="90" />
<rpy roll="90" pitch="0" yaw="00" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Shoulder 2 R"/>
</RobotNode>
......@@ -59,6 +69,15 @@
<CollisionModel>
<File type="Inventor">convexModel/shoulder2_r_rot.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="310" radius="50">
<Transform>
<Translation x="0" y="150" z="0" />
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Upperarm R"/>
</RobotNode>
......@@ -133,6 +152,16 @@
<CollisionModel>
<File type="Inventor">convexModel/underarm_r.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="240" radius="50">
<Transform>
<Translation x="0" y="0" z="-110" />
<rpy roll="90" pitch="0" yaw="0" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Physics>
<CoM location="VisualizationBBoxCenter"/>
<Mass value="2.26566087" units="kg" />
......
......@@ -70,6 +70,16 @@
<CollisionModel>
<File type="Inventor">convexModel/platform.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="400" radius="390">
<Transform>
<Translation x="0" y="0" z="380" />
<rpy roll="90" pitch="0" yaw="0" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Laser Scanner Front"/>
<Child name="Laser Scanner Back Left"/>
<Child name="Laser Scanner Back Right"/>
......@@ -175,6 +185,16 @@
<CollisionModel>
<File type="Inventor">convexModel/torso.wrl</File>
</CollisionModel>
<PrimitiveModel>
<Primitives>
<Capsule height="400" radius="210">
<Transform>
<Translation x="0" y="-40" z="225" />
<rpy roll="90" pitch="0" yaw="0" unit="degree"/>
</Transform>
</Capsule>
</Primitives>
</PrimitiveModel>
<Child name="Center of Arms"/>
</RobotNode>
......
......@@ -6,5 +6,6 @@
<application name="ObjectMemory" instance="" package="RobotAPI" nodeName="" enabled="true" iceAutoRestart="false"/>
<application name="ArVizStorage" instance="" package="RobotAPI" nodeName="" enabled="true" iceAutoRestart="false"/>
<application name="RobotStateMemory" instance="" package="RobotAPI" nodeName="" enabled="true" iceAutoRestart="false"/>
<application name="DebugObserver" instance="" package="ArmarXCore" nodeName="" enabled="true" iceAutoRestart="false"/>
</scenario>
......@@ -60,14 +60,6 @@
# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.MemoryName = Object
# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.read.ProviderName:
# Attributes:
# - Default: PriorKnowledgeData
# - Case sensitivity: yes
# - Required: no
# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.read.ProviderName = PriorKnowledgeData
# ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.write.ProviderName: Name of this provider
# Attributes:
# - Case sensitivity: yes
......@@ -98,7 +90,7 @@ ArmarX.ArticulatedObjectLocalizerExample.mem.obj.articulated.write.ProviderName
# - Default: mobile-dishwasher
# - Case sensitivity: yes
# - Required: no
ArmarX.ArticulatedObjectLocalizerExample.p.obj.class = cabinet
# ArmarX.ArticulatedObjectLocalizerExample.p.obj.class = mobile-dishwasher
# ArmarX.ArticulatedObjectLocalizerExample.p.obj.dataset:
......@@ -106,7 +98,7 @@ ArmarX.ArticulatedObjectLocalizerExample.p.obj.class = cabinet
# - Default: Kitchen
# - Case sensitivity: yes
# - Required: no
ArmarX.ArticulatedObjectLocalizerExample.p.obj.dataset = RBO-articulated-object-dataset
# ArmarX.ArticulatedObjectLocalizerExample.p.obj.dataset = Kitchen
# ArmarX.ArticulatedObjectLocalizerExample.tpc.pub.DebugObserver: Name of the `DebugObserver` topic to publish data to.
......
# ==================================================================
# DebugObserver properties
# ==================================================================
# ArmarX.AdditionalPackages: List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
# Attributes:
# - Default: Default value not mapped.
# - Case sensitivity: yes
# - Required: no
# ArmarX.AdditionalPackages = Default value not mapped.
# ArmarX.ApplicationName: Application name
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.ApplicationName = ""
# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config)
# Attributes:
# - Default: mongo/.cache
# - Case sensitivity: yes
# - Required: no
# ArmarX.CachePath = mongo/.cache
# ArmarX.Config: Comma-separated list of configuration files
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.Config = ""
# ArmarX.DataPath: Semicolon-separated search list for data files
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.DataPath = ""
# ArmarX.DebugObserver.CreateUpdateFrequenciesChannel: If true, an additional channel is created that shows the update frequency of every other channel in that observer.
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.DebugObserver.CreateUpdateFrequenciesChannel = false
# ArmarX.DebugObserver.DebugObserverTopicName: Name of the topic the DebugObserver listens on
# Attributes:
# - Default: DebugObserver
# - Case sensitivity: yes
# - Required: no
# ArmarX.DebugObserver.DebugObserverTopicName = DebugObserver
# ArmarX.DebugObserver.EnableProfiling: enable profiler which is used for logging performance events
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.DebugObserver.EnableProfiling = false
# ArmarX.DebugObserver.MaxHistoryRecordFrequency: The Observer history is written with this maximum frequency. Everything faster is being skipped.
# Attributes:
# - Default: 50
# - Case sensitivity: yes
# - Required: no
# ArmarX.DebugObserver.MaxHistoryRecordFrequency = 50
# ArmarX.DebugObserver.MaxHistorySize: Maximum number of entries in the Observer history
# Attributes:
# - Default: 5000
# - Case sensitivity: yes
# - Required: no
# ArmarX.DebugObserver.MaxHistorySize = 5000
# ArmarX.DebugObserver.MinimumLoggingLevel: Local logging level only for this component
# Attributes:
# - Default: Undefined
# - Case sensitivity: yes
# - Required: no
# - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
# ArmarX.DebugObserver.MinimumLoggingLevel = Undefined
# ArmarX.DebugObserver.ObjectName: Name of IceGrid well-known object
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.DebugObserver.ObjectName = ""
# ArmarX.DefaultPackages: List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
# Attributes:
# - Default: Default value not mapped.
# - Case sensitivity: yes
# - Required: no
# ArmarX.DefaultPackages = Default value not mapped.
# ArmarX.DependenciesConfig: Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
# Attributes:
# - Default: ./config/dependencies.cfg
# - Case sensitivity: yes
# - Required: no
# ArmarX.DependenciesConfig = ./config/dependencies.cfg
# ArmarX.DisableLogging: Turn logging off in whole application
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.DisableLogging = false
# ArmarX.EnableProfiling: Enable profiling of CPU load produced by this application
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.EnableProfiling = false
# ArmarX.LoadLibraries: Libraries to load at start up of the application. Must be enabled by the Application with enableLibLoading(). Format: PackageName:LibraryName;... or /absolute/path/to/library;...
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.LoadLibraries = ""
# ArmarX.LoggingGroup: The logging group is transmitted with every ArmarX log message over Ice in order to group the message in the GUI.
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.LoggingGroup = ""
# ArmarX.RedirectStdout: Redirect std::cout and std::cerr to ArmarXLog
# Attributes:
# - Default: true
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.RedirectStdout = true
# ArmarX.RemoteHandlesDeletionTimeout: The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
# Attributes:
# - Default: 3000
# - Case sensitivity: yes
# - Required: no
# ArmarX.RemoteHandlesDeletionTimeout = 3000
# ArmarX.SecondsStartupDelay: The startup will be delayed by this number of seconds (useful for debugging)
# Attributes:
# - Default: 0
# - Case sensitivity: yes
# - Required: no
# ArmarX.SecondsStartupDelay = 0
# ArmarX.StartDebuggerOnCrash: If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.StartDebuggerOnCrash = false
# ArmarX.ThreadPoolSize: Size of the ArmarX ThreadPool that is always running.
# Attributes:
# - Default: 1
# - Case sensitivity: yes
# - Required: no
# ArmarX.ThreadPoolSize = 1
# ArmarX.TopicSuffix: Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.TopicSuffix = ""
# ArmarX.UseTimeServer: Enable using a global Timeserver (e.g. from ArmarXSimulator)
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.UseTimeServer = false
# ArmarX.Verbosity: Global logging level for whole application
# Attributes:
# - Default: Info
# - Case sensitivity: yes
# - Required: no
# - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
# ArmarX.Verbosity = Info
......@@ -150,6 +150,22 @@
# ArmarX.ObjectMemory.cmp.KinematicUnitObserverName = KinematicUnitObserver
# ArmarX.ObjectMemory.mem..marker.Name: Marker Memory Name
# Attributes:
# - Default: Marker
# - Case sensitivity: yes
# - Required: no
# ArmarX.ObjectMemory.mem..marker.Name = Marker
# ArmarX.ObjectMemory.mem..marker.maxHistorySize: Maximum marker memory history size
# Attributes:
# - Default: -1
# - Case sensitivity: yes
# - Required: no
# ArmarX.ObjectMemory.mem..marker.maxHistorySize = -1
# ArmarX.ObjectMemory.mem.MemoryName: Name of this memory server.
# Attributes:
# - Default: Object
......@@ -375,14 +391,17 @@
# ArmarX.ObjectMemory.mem.inst.scene.11_Directory = scenes
# ArmarX.ObjectMemory.mem.inst.scene.12_SnapshotToLoad: Scene to load on startup (e.g. 'Scene_2021-06-24_20-20-03').
# You can also specify paths relative to 'Package/scenes/'.
# You can also specify a ; separated list of scenes.
# ArmarX.ObjectMemory.mem.inst.scene.12_SnapshotToLoad: Scene(s) to load on startup.
# Specify multiple scenes in a ; separated list.
# Each entry must be one of the following:
# (1) A scene file in 'Package/scenes/' (with or without '.json' extension), e.g. 'MyScene', 'MyScene.json'
# (2) A path to a scene file relative to 'Package/scenes/' (with or without '.json' extension), e.g. 'path/to/MyScene', 'path/to/MyScene.json'
# (3) An ArmarX data path to a scene file, e.g. 'Package/scenes/path/to/MyScene.json'
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.ObjectMemory.mem.inst.scene.12_SnapshotToLoad = ""
ArmarX.ObjectMemory.mem.inst.scene.12_SnapshotToLoad = R003
# ArmarX.ObjectMemory.mem.inst.seg.CoreMaxHistorySize: Maximal size of the Instance entity histories (-1 for infinite).
......@@ -558,10 +577,10 @@
# ArmarX.ObjectMemory.mem.ltm.configuration:
# Attributes:
# - Default: {}
# - Default: {"SnapshotFrequencyFilter": { "WaitingTimeInMs": 1000}, "PngConverter": {}}
# - Case sensitivity: yes
# - Required: no
# ArmarX.ObjectMemory.mem.ltm.configuration = {}
# ArmarX.ObjectMemory.mem.ltm.configuration = {"SnapshotFrequencyFilter": { "WaitingTimeInMs": 1000}, "PngConverter": {}}
# ArmarX.ObjectMemory.mem.ltm.enabled:
......
......@@ -216,6 +216,22 @@
# ArmarX.RobotStateMemory.mem.desc.seg.CoreSegmentName = Description
# ArmarX.RobotStateMemory.mem.ext.seg.CoreMaxHistorySize: Maximal size of the Exteroception entity histories (-1 for infinite).
# Attributes:
# - Default: -1
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotStateMemory.mem.ext.seg.CoreMaxHistorySize = -1
# ArmarX.RobotStateMemory.mem.ext.seg.CoreSegmentName: Name of the Exteroception core segment.
# Attributes:
# - Default: Exteroception
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotStateMemory.mem.ext.seg.CoreSegmentName = Exteroception
# ArmarX.RobotStateMemory.mem.loc.seg.CoreMaxHistorySize: Maximal size of the Localization entity histories (-1 for infinite).
# Attributes:
# - Default: 1024
......@@ -234,10 +250,10 @@
# ArmarX.RobotStateMemory.mem.ltm.configuration:
# Attributes:
# - Default: {}
# - Default: {"SnapshotFrequencyFilter": { "WaitingTimeInMs": 1000}, "PngConverter": {}}
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotStateMemory.mem.ltm.configuration = {}
# ArmarX.RobotStateMemory.mem.ltm.configuration = {"SnapshotFrequencyFilter": { "WaitingTimeInMs": 1000}, "PngConverter": {}}
# ArmarX.RobotStateMemory.mem.ltm.enabled:
......@@ -274,6 +290,15 @@
# ArmarX.RobotStateMemory.mem.visu.enabled = true
# ArmarX.RobotStateMemory.mem.visu.famesEnabled: Enable or disable visualization of frames.
# Attributes:
# - Default: false
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.RobotStateMemory.mem.visu.famesEnabled = false
# ArmarX.RobotStateMemory.mem.visu.frequenzyHz: Frequency of visualization.
# Attributes:
# - Default: 25
......
<?xml version="1.0" encoding="utf-8"?>
<scenario name="RobotHealthTest" creation="2018-11-30.11:42:03" globalConfigName="./config/global.cfg" package="RobotAPI" deploymentType="local" nodeName="NodeMain">
<application name="RobotHealthApp" instance="" package="RobotAPI" nodeName="" enabled="true" iceAutoRestart="false"/>
<application name="RobotHealthApp" instance="" package="RobotAPI" nodeName="" enabled="false" iceAutoRestart="false"/>
<application name="RobotHealthDummyApp" instance="HealthDummy1" package="RobotAPI" nodeName="" enabled="true" iceAutoRestart="false"/>
<application name="RobotHealthDummyApp" instance="HealthDummy2" package="RobotAPI" nodeName="" enabled="true" iceAutoRestart="false"/>
</scenario>
......
......@@ -18,7 +18,7 @@
# ArmarX.ApplicationName = ""
# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config)
# Attributes:
# - Default: mongo/.cache
# - Case sensitivity: yes
......@@ -109,20 +109,12 @@
# ArmarX.RemoteHandlesDeletionTimeout = 3000
# ArmarX.RobotHealth.AggregatedRobotHealthTopicName: Name of the AggregatedRobotHealthTopic
# ArmarX.RobotHealth.DebugObserverTopicName: Name of the topic the DebugObserver listens on
# Attributes:
# - Default: AggregatedRobotHealthTopic
# - Default: DebugObserver
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotHealth.AggregatedRobotHealthTopicName = AggregatedRobotHealthTopic
# ArmarX.RobotHealth.EmergencyStopTopicName: The name of the topic over which changes of the emergencyStopState are sent.
# Attributes:
# - Default: EmergencyStop
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotHealth.EmergencyStopTopicName = EmergencyStop
# ArmarX.RobotHealth.DebugObserverTopicName = DebugObserver
# ArmarX.RobotHealth.EnableProfiling: enable profiler which is used for logging performance events
......@@ -159,37 +151,36 @@
# ArmarX.RobotHealth.MinimumLoggingLevel = Undefined
# ArmarX.RobotHealth.ObjectName: Name of IceGrid well-known object
# ArmarX.RobotHealth.Name of the AggregatedRobotHealthTopic: Name of the `AggregatedRobotHealth` topic to publish data to.
# Attributes:
# - Default: ""
# - Default: AggregatedRobotHealthTopic
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotHealth.ObjectName = ""
# ArmarX.RobotHealth.Name of the AggregatedRobotHealthTopic = AggregatedRobotHealthTopic
# ArmarX.RobotHealth.ReportErrorsWithSpeech:
# ArmarX.RobotHealth.ObjectName: Name of IceGrid well-known object
# Attributes:
# - Default: true
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# - Possible values: {0, 1, false, no, true, yes}
# ArmarX.RobotHealth.ReportErrorsWithSpeech = true
# ArmarX.RobotHealth.ObjectName = ""
# ArmarX.RobotHealth.RequiredComponents: Comma separated list of required components
# ArmarX.RobotHealth.RequiredTags: Tags that should be requested.
# Attributes:
# - Default: ""
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotHealth.RequiredComponents = ""
# ArmarX.RobotHealth.RequiredTags = ""
# ArmarX.RobotHealth.RobotHealthTopicName: Name of the RobotHealth topic
# ArmarX.RobotHealth.RobotHealthTopic: Name of the RobotHealth topic
# Attributes:
# - Default: RobotHealthTopic
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotHealth.RobotHealthTopicName = RobotHealthTopic
# ArmarX.RobotHealth.RobotHealthTopic = RobotHealthTopic
# ArmarX.RobotHealth.RobotUnitName: No Description
......@@ -208,20 +199,12 @@ ArmarX.RobotHealth.RobotUnitName = RobotUnitSimulation
ArmarX.RobotHealth.RobotUnitRequired = 0
# ArmarX.RobotHealth.SpeechMinimumReportInterval: Time that has to pass between reported messages in seconds.
# ArmarX.RobotHealth.The name of the topic over which changes of the emergencyStopState are sent.: Name of the `EmergencyStop` topic to publish data to.
# Attributes:
# - Default: 60
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotHealth.SpeechMinimumReportInterval = 60
# ArmarX.RobotHealth.TextToSpeechTopicName: Name of the TextToSpeech topic
# Attributes:
# - Default: TextToSpeech
# - Default: EmergencyStop
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotHealth.TextToSpeechTopicName = TextToSpeech
# ArmarX.RobotHealth.The name of the topic over which changes of the emergencyStopState are sent. = EmergencyStop
# ArmarX.SecondsStartupDelay: The startup will be delayed by this number of seconds (useful for debugging)
......
......@@ -18,7 +18,7 @@
# ArmarX.ApplicationName = ""
# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config)
# Attributes:
# - Default: mongo/.cache
# - Case sensitivity: yes
......
......@@ -18,7 +18,7 @@
# ArmarX.ApplicationName = ""
# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
# ArmarX.CachePath: Path for cache files. If relative path AND env. variable ARMARX_CONFIG_DIR is set, the cache path will be made relative to ARMARX_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${ARMARX_WORKSPACE}/armarx_config)
# Attributes:
# - Default: mongo/.cache
# - Case sensitivity: yes
......@@ -148,7 +148,7 @@ ArmarX.RobotHealthDummy.ObjectName = HealthDummy2
# - Default: nanosleep
# - Case sensitivity: yes
# - Required: no
# ArmarX.RobotHealthDummy.SleepMode = nanosleep
ArmarX.RobotHealthDummy.SleepMode = std::this_thread::sleep_for
# ArmarX.SecondsStartupDelay: The startup will be delayed by this number of seconds (useful for debugging)
......
armarx_component_set_name("AronCodeGeneratorApp")
set(COMPONENT_LIBS ArmarXCore aroncodegenerator)
set(COMPONENT_LIBS ArmarXCore aroncodegeneration)
set(SOURCES
main.cpp
......
......@@ -142,7 +142,7 @@ set(HEADERS
ArVizStorage.h
)
armarx_add_component_executable("${SOURCES}" "${HEADERS}")
armarx_add_component_executable("${SOURCES};${HEADERS}" "${HEADERS}")
add_subdirectory(Example)
......
......@@ -22,7 +22,7 @@ namespace armarx::viz::coin
if (filename.empty())
{
ARMARX_INFO << deactivateSpam() << "No filename provided for robot.";
return result;
return nullptr;
}
std::string fullFilename;
......@@ -41,7 +41,7 @@ namespace armarx::viz::coin
{
ARMARX_INFO << deactivateSpam()
<< "Unable to find readable file for name: " << filename;
return result;
return nullptr;
}
try
......@@ -226,15 +226,21 @@ namespace armarx::viz::coin
// robot.setGlobalPose(pose, false);
// Check joint values for changes
bool jointValuesChanged = false;
for (auto& pair : element.jointValues)
for (const auto& pair : element.jointValues)
{
std::string const& nodeName = pair.first;
float newJointValue = pair.second;
VirtualRobot::RobotNodePtr robotNode = robot.getRobotNode(nodeName);
float oldJointValue = robotNode->getJointValue();
float diff = std::abs(newJointValue - oldJointValue);
jointValuesChanged = diff > 0.001f;
if (robotNode == nullptr)
{
continue;
}
const float oldJointValue = robotNode->getJointValue();
const float diff = std::abs(newJointValue - oldJointValue);
const bool jointValuesChanged = diff > 0.001f;
if (jointValuesChanged)
{
// Only set the joint values if they changed
......
......@@ -15,13 +15,13 @@
<string/>
</ObjectChild>
<ObjectChild key='intMember'>
<int/>
<int32 />
</ObjectChild>
<ObjectChild key='floatMember'>
<float/>
<float32 />
</ObjectChild>
<ObjectChild key='longMember'>
<long/>
<int64 />
</ObjectChild>
<ObjectChild key='boolMember'>
<bool/>
......@@ -36,7 +36,7 @@
</ObjectChild>
<ObjectChild key='intListMember'>
<List>
<int/>
<int32 />
</List>
</ObjectChild>
<ObjectChild key='stringDictMember'>
......@@ -46,7 +46,7 @@
</ObjectChild>
<ObjectChild key='intDictMember'>
<Dict>
<int/>
<int32 />
</Dict>
</ObjectChild>
</Object>
......@@ -56,13 +56,13 @@
<string/>
</ObjectChild>
<ObjectChild key='intMember'>
<int/>
<int32 />
</ObjectChild>
<ObjectChild key='floatMember'>
<float/>
<float32 />
</ObjectChild>
<ObjectChild key='doubleMember'>
<double/>
<float64 />
</ObjectChild>
<ObjectChild key='boolMember'>
<bool/>
......@@ -77,13 +77,13 @@
<string/>
</ObjectChild>
<ObjectChild key='intMember'>
<int/>
<int32 />
</ObjectChild>
<ObjectChild key='floatMember'>
<float/>
<float32 />
</ObjectChild>
<ObjectChild key='longMember'>
<long/>
<int64 />
</ObjectChild>
<ObjectChild key='boolMember'>
<bool/>
......
......@@ -76,11 +76,10 @@ namespace armarx::articulated_object
void
ArticulatedObjectLocalizerExample::onInitComponent()
{
auto& articulatedObjectReader = articulatedObjectReaderPlugin->get();
// auto& articulatedObjectReader = articulatedObjectReaderPlugin->get();
auto& articulatedObjectWriter = articulatedObjectWriterPlugin->get();
// Reader overwrote property registered property of articulatedObjectWriter.
articulatedObjectWriter.setProviderName(articulatedObjectReader.getProviderName());
articulatedObjectWriter.setProviderName(getName());
}
void
......@@ -111,14 +110,15 @@ namespace armarx::articulated_object
ArticulatedObjectLocalizerExample::createArticulatedObject()
{
auto& articulatedObjectReader = articulatedObjectReaderPlugin->get();
const std::string dishwasherName = p.obj.dataset + "/" + p.obj.className;
const auto descriptions = articulatedObjectReader.queryDescriptions(armem::Time::Now());
const auto descriptions =
articulatedObjectReader.queryDescriptions(armem::Time::Now(), std::nullopt);
ARMARX_INFO << "Found " << descriptions.size() << " articulated object descriptions";
for(const auto& description: descriptions)
for (const auto& description : descriptions)
{
ARMARX_INFO << "- " << description.name;
}
......@@ -135,9 +135,8 @@ namespace armarx::articulated_object
return nullptr;
}
auto obj =
VirtualRobot::RobotIO::loadRobot(it->xml.toSystemPath(),
VirtualRobot::RobotIO::eStructure);
auto obj = VirtualRobot::RobotIO::loadRobot(it->xml.toSystemPath(),
VirtualRobot::RobotIO::eStructure);
if (not obj)
{
......@@ -150,7 +149,6 @@ namespace armarx::articulated_object
return obj;
}
void
ArticulatedObjectLocalizerExample::run()
{
......@@ -164,8 +162,11 @@ namespace armarx::articulated_object
}
}
const auto state = articulatedObjectReaderPlugin->get().queryState(articulatedObject->getType() + "/" + articulatedObject->getName(), Clock::Now());
const auto state = articulatedObjectReaderPlugin->get().queryState(
articulatedObject->getType() + "/" + articulatedObject->getName(),
Clock::Now(),
p.obj.readProviderName);
ARMARX_CHECK(state.has_value());
articulatedObject->setGlobalPose(state->globalPose.matrix());
......