Relational Learner¶
A ROS package that uses qualitative spatio-temporal relations to learn and classify human trajectories as statistically novel or not.
Prerequisites¶
- roscore
- mongodb_store
- strands_perception_people
- soma_trajectory
- qsrlib
Getting started¶
- Run mongodb datacentres:
$ roslaunch mongodb_store mongodb_store.launch db_path:= <path> $ roslaunch mongodb_store mongodb_store.launch db_path:=/home/strands/mongodb_store/bham_trajectory_store/
wherepath
specifies the path to your mongodb_store
Also run the mongodb robot pose logging tool:
$ rosrun mongodb_log mongodb_log.py /robot_pose
- Make sure people perception is running to publish detected
trajectories:
$ roslaunch perception_people_launch people_tracker_robot.launch
- Also run the online-trajectory stiching tool:
$ rosrun human_trajectory trajectory_publisher.py [publish_interval][online(1)/offline(0)]
see here for more details.
Alternatively to step 2 and 3, you can run soma_trajectory
and
obtain test trajectories from mongodb store:
$ rosrun soma_trajectory trajectory_query_service.py
Make sure the QSRLib Service is running:
$ rosrun qsr_lib qsrlib_ros_server.py
Run the Episodes Service:
$ rosrun relational_learner episode_server.py
Run the Novelty Service:
$ rosrun relational_learner novelty_server.py
Run the Episodes node:
$ rosrun relational_learner episodes_client.py
Run Novelty node:
$ rosrun relational_learner novelty_client.py
Note:¶
This package can be run offline by running soma_trajectory
in step 2
and 3 instead of people_perception
. In this case, step 7 becomes:
$ rosrun relational_learner episodes_client_OT.py
which queries one region’s trajectories from mongodb_store instead of subscribing to published trajectories.
Original page: https://github.com/strands-project/trajectory_behaviours/blob/master/relational_learner/README.md