Work in Progress
This package is under active development and not yet stable. Interfaces, functionality, and structure may change frequently.
The knowrob_designator package provides a ROS action interface for logging structured semantic data β called designators β into the KnowRob knowledge base.
A designator is a nested symbolic description (e.g., of actions, goals, objects) expressed as a JSON structure. This structure is parsed into RDF-style triples and submitted to KnowRob using its tell interface.
For a detailed description of the interfaces, see the Action Interface Description
knowrob_designator/
βββ action/
β βββ LogDesignator.action # Action definition for logging designators
βββ CMakeLists.txt # Build configuration
βββ Dockerfile # Container setup (ROS + KnowRob)
βββ launch/
β βββ knowrob_designator_service.launch # Launches KnowRob and the action server
βββ package.xml # ROS package metadata
βββ README.md # You are here
βββ run_knowrob_designator.sh # Optional helper script (not required)
βββ src/
β βββ knowrob_designator/ # Library for the action server
β β βββ designator_parser.py # Parses JSON designators into triples
β β βββ __init__.py # Python package initialization
βββ scripts/
β βββ designator_parser.py # Parses JSON designators into triples (no ROS dependency)
β βββ knowrob_designator_client.py # Example client that sends a test designator
β βββ knowrob_designator_service.py # Action server that logs designators to KnowRob
βββ setup.py # Python package setup
βββ srv/ # (empty, safe to delete or populate if needed)
This section describes how to launch the full system in a Dockerized environment.
docker run -it --entrypoint bash knowrob_designator:latest
# Inside container:
root@<container_id>:/catkin_ws# roslaunch knowrob_designator knowrob_designator_service.launchThis will:
- Launch KnowRob with predefined settings
- Start the
knowrob_designator_service.pyaction server
Open a new terminal and run:
docker exec -it <your_container_name> bash
# Inside container:
root@<container_id>:/catkin_ws# rosrun knowrob_designator knowrob_designator_client.pyThis runs a simple client that sends a test designator to the action server. The designator is NOT parsed at the moment and not expected to be valid.
- ROS (Noetic recommended)
- KnowRob (
knowrob/knowrobDocker image) knowrob_rosaction interface