Skip to content

RecordDemo and Kinesthetic Learning GUI

Ryan Petschek edited this page Jun 6, 2017 · 1 revision

See the hlpr_documentation repository for information on getting started with the Kinesthetic Learning GUI

Requirements

Ubuntu 14.04 Trusty

Dependencies

  • ROS
  • HLPR_Manipulation

Data topic utilities

eef_publisher.py This code continually publishes the end effector pose (the '/base_link' to '/right_ee_link' transform) to the topic /eef_pose; this topic along with /joint_states is what the record demo action will bag.

Recording Demonstrations

RecordKFDemoAction()

This is an action server that will record a single demo each time it is initiated (it's called a keyframe demo but can be a keyframe or a trajectory demo, should rename??).

This action server subscribes to three topics:

  • /record_demo_frame: the messages on this topic tell the action server when to record data, messages have the following meaning:

    • msg = 0: start a trajectory demonstration ("like this")
    • msg = 1: start a keyframe demonstration ("start here")
    • msg = 2: record intermediate keyframe ("go here")
    • msg = 3" last keyframe, or end of trajectory demo ("end here")
  • /joint_states: each keyframe written to the bag file includes a JointState msg

  • /eef_pose: each keyframe written to the bag file include a Pose msg

The bag file with the name specified in the goal is opened as soon as the goal is sent to the server, then each keyframe writes data to the bag file, and the bag is closed on the last keyframe. For trjaectory demonstrations, data is written to the bag file at 100hz

record_keyframe_demo_action_client.py shows example client usage of the RecordKFDemoAction server.

Playing back a Recorded Demo

playback_keyframe_demo_AS.py

This is an action server that will take a demo, stored as a bag file, and play it back using MoveIt to construct a plan and using hlpr_manipulation to execute the plan

playback_keyframe_demo_action_client.py

These are both little scripts if you want to quickly test out the above two action servers. The record client has different examples of recording demonstrations. The playback client tries to playback 'demo_data_0'.