Skip to content

Latest commit

 

History

History
81 lines (61 loc) · 2.12 KB

File metadata and controls

81 lines (61 loc) · 2.12 KB

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

  1. 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

  1. Make sure people perception is running to publish detected trajectories:

    $ roslaunch perception_people_launch people_tracker_robot.launch
    
  2. 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

  1. Make sure the QSRLib Service is running:

    $ rosrun qsr_lib qsrlib_ros_server.py 
    
  2. Run the Episodes Service:

    $ rosrun relational_learner episode_server.py
    
  3. Run the Novelty Service:

    $ rosrun relational_learner novelty_server.py
    
  4. Run the Episodes node:

    $ rosrun relational_learner episodes_client.py
    
  5. 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.