diff --git a/jsk_rosbag_tools/.gitignore b/jsk_rosbag_tools/.gitignore
index f935021a8..571491802 100644
--- a/jsk_rosbag_tools/.gitignore
+++ b/jsk_rosbag_tools/.gitignore
@@ -1 +1,2 @@
!.gitignore
+requirements.txt
diff --git a/jsk_rosbag_tools/CMakeLists.txt b/jsk_rosbag_tools/CMakeLists.txt
index 686c46117..307da0895 100644
--- a/jsk_rosbag_tools/CMakeLists.txt
+++ b/jsk_rosbag_tools/CMakeLists.txt
@@ -3,14 +3,32 @@ project(jsk_rosbag_tools)
find_package(
catkin REQUIRED
+ catkin_virtualenv
)
+if (${catkin_virtualenv_VERSION} VERSION_LESS "0.5.1")
+ message(STATUS "jsk_rosbag_tools requires catkin_virtualenv >= 0.5.1")
+ return()
+endif()
+
+
catkin_python_setup()
catkin_package(
CATKIN_DEPENDS
)
+if($ENV{ROS_DISTRO} STREQUAL "noetic")
+ catkin_generate_virtualenv(
+ INPUT_REQUIREMENTS requirements.in
+ PYTHON_INTERPRETER python3
+ )
+else()
+ catkin_generate_virtualenv(
+ INPUT_REQUIREMENTS requirements.in
+ )
+endif()
+
file(GLOB SCRIPTS_FILES scripts/*)
catkin_install_python(
PROGRAMS ${SCRIPTS_FILES}
@@ -47,10 +65,19 @@ if(CATKIN_ENABLE_TESTING)
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
add_rostest(tests/test_jsk_rosbag_tools.test
- DEPENDENCIES download_audio_data download_video_data)
+ DEPENDENCIES ${PROJECT_NAME}_generate_virtualenv download_audio_data download_video_data)
if("$ENV{ROS_DISTRO}" STRGREATER "indigo")
# could not install moviepy on indigo.
add_rostest(tests/test_bag_to_video.test
- DEPENDENCIES download_audio_data download_video_data)
+ DEPENDENCIES ${PROJECT_NAME}_generate_virtualenv download_audio_data download_video_data)
endif()
endif()
+
+install(DIRECTORY scripts samples
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+ USE_SOURCE_PERMISSIONS
+)
+
+install(FILES requirements.txt
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
diff --git a/jsk_rosbag_tools/package.xml b/jsk_rosbag_tools/package.xml
index 5a0dca4a7..87d3eef03 100644
--- a/jsk_rosbag_tools/package.xml
+++ b/jsk_rosbag_tools/package.xml
@@ -11,10 +11,11 @@
catkin
python-catkin-pkg-modules
+ catkin_virtualenv
+
audio_common_msgs
cv_bridge
ffmpeg
- python-moviepy-pip
python-numpy
python-rospkg-modules
python-scipy
@@ -34,4 +35,8 @@
roslint
rostest
+
+ requirements.txt
+
+
diff --git a/jsk_rosbag_tools/requirements.in b/jsk_rosbag_tools/requirements.in
new file mode 100644
index 000000000..f7b02cd95
--- /dev/null
+++ b/jsk_rosbag_tools/requirements.in
@@ -0,0 +1 @@
+moviepy==1.0.3
diff --git a/jsk_rosbag_tools/scripts/bag_to_audio.py b/jsk_rosbag_tools/scripts/bag_to_audio.py
old mode 100755
new mode 100644
diff --git a/jsk_rosbag_tools/scripts/bag_to_video.py b/jsk_rosbag_tools/scripts/bag_to_video.py
old mode 100755
new mode 100644
diff --git a/jsk_rosbag_tools/scripts/compress_imgs.py b/jsk_rosbag_tools/scripts/compress_imgs.py
old mode 100755
new mode 100644
diff --git a/jsk_rosbag_tools/scripts/merge.py b/jsk_rosbag_tools/scripts/merge.py
old mode 100755
new mode 100644
diff --git a/jsk_rosbag_tools/scripts/tf_static_to_tf.py b/jsk_rosbag_tools/scripts/tf_static_to_tf.py
old mode 100755
new mode 100644
diff --git a/jsk_rosbag_tools/scripts/video_to_bag.py b/jsk_rosbag_tools/scripts/video_to_bag.py
old mode 100755
new mode 100644
diff --git a/jsk_rosbag_tools/tests/test_bag_to_video.py b/jsk_rosbag_tools/tests/test_bag_to_video.py
old mode 100755
new mode 100644
diff --git a/jsk_rosbag_tools/tests/test_jsk_rosbag_tools.py b/jsk_rosbag_tools/tests/test_jsk_rosbag_tools.py
old mode 100755
new mode 100644