A ROS package that uses qualitative spatio-temporal relations to learn and classify human trajectories as statistically novel or not.
- roscore
- mongodb_store
- strands_perception_people
- soma_trajectory
- qsrlib
- 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/
where path
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
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.