mirror of
https://github.com/moveit/moveit_task_constructor.git
synced 2025-11-04 14:49:57 +08:00
Add example script: properties
This commit is contained in:
parent
60bc5262f5
commit
d45f9faf63
78
demo/scripts/properties.py
Normal file
78
demo/scripts/properties.py
Normal file
@ -0,0 +1,78 @@
|
||||
#! /usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from moveit.task_constructor import core, stages
|
||||
from geometry_msgs.msg import PoseStamped
|
||||
import time
|
||||
|
||||
from moveit.python_tools import roscpp_init
|
||||
|
||||
roscpp_init("mtc_tutorial")
|
||||
|
||||
# Create a task container
|
||||
task = core.Task()
|
||||
|
||||
# Create a current state to capture the current planning scene state
|
||||
currentState = stages.CurrentState("Current State")
|
||||
|
||||
# Create a property
|
||||
p = core.Property()
|
||||
|
||||
# Set a descriptive string to describe the properties function
|
||||
p.setDescription("Foo Property")
|
||||
|
||||
# Set the current and the default value
|
||||
p.setValue("Bar")
|
||||
|
||||
# Check if the property is defined
|
||||
assert p.defined()
|
||||
|
||||
# Retrieve the stored value
|
||||
print(p.value())
|
||||
|
||||
# Retrieve the default value
|
||||
print(p.defaultValue())
|
||||
|
||||
# Retrieve the description
|
||||
print(p.description())
|
||||
|
||||
# Create a property map
|
||||
pm = core.PropertyMap()
|
||||
props = {"prop1": "test", "prop2": 21, "prop3": PoseStamped(), "prop4": 5.4}
|
||||
pm.update(props)
|
||||
|
||||
# Add a property to the property map using the pythonic way
|
||||
pm["prop5"] = 2
|
||||
|
||||
# Return the value of a property
|
||||
print(pm["prop5"])
|
||||
|
||||
# Return the underlying property object
|
||||
p2 = pm.property("prop5")
|
||||
|
||||
# Iterate through all the values in the property map
|
||||
print("\n")
|
||||
for i in pm:
|
||||
print(i, "\t\t", pm[i])
|
||||
print("\n")
|
||||
|
||||
# A new property map can also be configured using an existing one
|
||||
# You can also only use a subset of the properties that should be configured.
|
||||
pm2 = core.PropertyMap()
|
||||
pm.exposeTo(pm2, ["prop2", "prop4"])
|
||||
|
||||
# Lets test that by printing out our properties
|
||||
for i in pm2:
|
||||
print(i, "\t\t", pm2[i])
|
||||
print("\n")
|
||||
|
||||
# Access the property map of the stage
|
||||
props = currentState.properties
|
||||
|
||||
# Add the stage to the task hierarchy
|
||||
task.add(currentState)
|
||||
|
||||
if task.plan():
|
||||
task.publish(task.solutions[0])
|
||||
|
||||
time.sleep(100)
|
||||
Loading…
Reference in New Issue
Block a user