Skip to content

Commit

Permalink
Merge pull request #1418 from wkentaro/enhance-data-collection-server
Browse files Browse the repository at this point in the history
Enhance data_collection_server regarding of response, params, and sample
  • Loading branch information
k-okada authored Jun 22, 2016
2 parents 4954d8e + 889c6b7 commit 24df1b2
Show file tree
Hide file tree
Showing 6 changed files with 454 additions and 11 deletions.
14 changes: 10 additions & 4 deletions jsk_data/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
cmake_minimum_required(VERSION 2.8.3)
project(jsk_data)
find_package(catkin REQUIRED)
catkin_package(
)
find_package(catkin REQUIRED COMPONENTS dynamic_reconfigure message_generation)

catkin_python_setup()
catkin_install_python(PROGRAMS scripts/jsk_data DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})

generate_dynamic_reconfigure_options(
cfg/DataCollectionServer.cfg
)

catkin_add_env_hooks(99.jsk_data-completion SHELLS bash DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks)

catkin_package(
CATKIN_DEPENDS message_runtime
)

catkin_install_python(PROGRAMS scripts/jsk_data DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
install(DIRECTORY launch rvizconfig scripts
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
USE_SOURCE_PERMISSIONS
Expand Down
20 changes: 20 additions & 0 deletions jsk_data/cfg/DataCollectionServer.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env python

import sys

from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator
from dynamic_reconfigure.parameter_generator_catkin import str_t


gen = ParameterGenerator()
gen.add(
name='save_dir',
paramtype=str_t,
level=0,
description='Directory the collected data is saved to',
default='~/.ros',
)


PACKAGE = 'jsk_data'
sys.exit(gen.generate(PACKAGE, PACKAGE, 'DataCollectionServer'))
23 changes: 16 additions & 7 deletions jsk_data/node_scripts/data_collection_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,14 @@
import cv2

import cv_bridge
import dynamic_reconfigure.server
import roslib.message
import rospy
from std_srvs.srv import Trigger
from std_srvs.srv import TriggerResponse

from jsk_data.cfg import DataCollectionServerConfig


class DataCollectionServer(object):

Expand All @@ -40,12 +43,11 @@ class DataCollectionServer(object):
"""

def __init__(self):
dynamic_reconfigure.server.Server(
DataCollectionServerConfig, self.reconfig_cb)
self.msg = {}
self.save_dir = osp.expanduser(rospy.get_param('~save_dir', '~/.ros'))
if not osp.exists(self.save_dir):
os.makedirs(self.save_dir)
self.topics = rospy.get_param('~topics')
self.params = rospy.get_param('~params')
self.topics = rospy.get_param('~topics', [])
self.params = rospy.get_param('~params', [])
self.server = rospy.Service('~save_request', Trigger, self.service_cb)
self.subs = []
for topic in self.topics:
Expand All @@ -54,6 +56,12 @@ def __init__(self):
callback_args=topic['name'])
self.subs.append(sub)

def reconfig_cb(self, config, level):
self.save_dir = osp.expanduser(config['save_dir'])
if not osp.exists(self.save_dir):
os.makedirs(self.save_dir)
return config

def __del__(self):
for sub in self.subs:
sub.unregister()
Expand Down Expand Up @@ -91,8 +99,9 @@ def service_cb(self, req):
f.write(str(value))
else:
raise ValueError
rospy.loginfo('Saved data to {}'.format(save_dir))
return TriggerResponse(success=True)
message = 'Saved data to {}'.format(save_dir)
rospy.loginfo(message)
return TriggerResponse(success=True, message=message)


if __name__ == '__main__':
Expand Down
3 changes: 3 additions & 0 deletions jsk_data/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@
<maintainer email="[email protected]">Ryohei Ueda</maintainer>
<license>BSD</license>
<buildtool_depend>catkin</buildtool_depend>
<build_depend>dynamic_reconfigure</build_depend>
<build_depend>message_generation</build_depend>
<run_depend>depth_image_proc</run_depend>
<run_depend>image_transport</run_depend>
<run_depend>jsk_topic_tools</run_depend>
<run_depend>message_runtime</run_depend>
<run_depend>paramiko</run_depend>
<run_depend>python-click</run_depend>
<test_depend>python-freezegun-pip</test_depend>
Expand Down
Loading

0 comments on commit 24df1b2

Please sign in to comment.