diff --git a/.gitignore b/.gitignore index 1c3353eb0f1ba9cd55021ac522ac9f2528eb53b3..2ef9d53d34f346f7a1779e6652143417c74923ec 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 # User-specific stuff +.idea .idea/**/workspace.xml .idea/**/tasks.xml .idea/**/usage.statistics.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index 406747dd7dbdaad5f141800576b6d7aa7fc7c2be..aefb3dfc58c55950c67ebfd825a0ba6b2010d15c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,7 +63,6 @@ catkin_package(CATKIN_DEPENDS include_directories(${catkin_INCLUDE_DIRS}) add_executable(pose_storage_service src/teaching/pose_storage_service.cpp) -add_executable(pose_collector src/teaching/pose_collector.cpp) add_executable(pose_replayer src/teaching/pose_replayer.cpp) add_executable(pose_tf_listener src/teaching/pose_tf_listener.cpp) @@ -73,4 +72,3 @@ add_dependencies(pose_tf_listener panda_teaching_generate_messages_cpp) target_link_libraries(pose_storage_service ${catkin_LIBRARIES}) target_link_libraries(pose_tf_listener ${catkin_LIBRARIES}) target_link_libraries(pose_replayer ${catkin_LIBRARIES}) -target_link_libraries(pose_collector ${catkin_LIBRARIES}) diff --git a/launch/simulation.launch b/launch/simulation.launch index 797a5f0cc8e8cceb8c8bb242203ef389c035c90a..7189bbc0d61b4e929f1b787ffb95053fab6cf6e0 100644 --- a/launch/simulation.launch +++ b/launch/simulation.launch @@ -59,7 +59,6 @@ <node pkg="panda_simulation" type="robot_state_initializer_node" name="robot_state_initializer_node" /> <node pkg="panda_teaching" type="pose_tf_listener" name="pose_tf_listener" output="screen" /> - <node pkg="panda_teaching" type="pose_collector" name="pose_collector" output="screen" /> <node pkg="panda_teaching" type="pose_replayer" name="pose_replayer" output="screen" /> <node pkg="panda_teaching" type="pose_storage_service" name="pose_storage_service" output="screen" /> </launch> diff --git a/src/teaching/pose_collector.cpp b/src/teaching/pose_collector.cpp deleted file mode 100644 index d460d058fb70de865bd0acfa9cef6cdb46ced35b..0000000000000000000000000000000000000000 --- a/src/teaching/pose_collector.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// Created by sebastian on 04.05.20. -// -#include <ros/ros.h> -#include <std_msgs/String.h> - -#include "panda_teaching/DeletePose.h" - -void collectPose(ros::NodeHandle &node_handle){ - node_handle.setParam("collect_pose", true); -} - -void cleanUp(ros::NodeHandle &node_handle){ - ros::ServiceClient client = node_handle.serviceClient<panda_teaching::DeletePose>("DeleteCollectedPoses"); - panda_teaching::DeletePose srv; - - if (!client.call(srv)){ - ROS_ERROR("Failed to delete saved poses"); - } -} - -void collectorCallback(const std_msgs::String::ConstPtr& msg, ros::NodeHandle &node_handle){ - - ROS_INFO("Retrieved new pose-message..."); - - if(msg->data.compare("collect") == 0){ - ROS_INFO("Collecting new pose for gripper..."); - collectPose(node_handle); - return; - } - - if(msg->data.compare("clear") == 0){ - ROS_INFO("Deleting saved poses..."); - cleanUp(node_handle); - return; - } -} - -int main(int argc, char** argv) { - - ros::init(argc, argv, "pose_collector"); - ros::NodeHandle node_handle; - - ros::Subscriber sub = node_handle.subscribe<std_msgs::String>("collectPose", 1000, boost::bind(&collectorCallback, _1, boost::ref(node_handle))); - ros::spin(); - - return 0; -} \ No newline at end of file diff --git a/src/teaching/pose_tf_listener.cpp b/src/teaching/pose_tf_listener.cpp index c871681912d01c9167ec155f16e3f7f4acda1e17..85d73cb07148abd88e6f3fbc243d203cdee153b5 100644 --- a/src/teaching/pose_tf_listener.cpp +++ b/src/teaching/pose_tf_listener.cpp @@ -5,8 +5,10 @@ #include <tf2_ros/transform_listener.h> #include <geometry_msgs/TransformStamped.h> #include <geometry_msgs/Twist.h> +#include <std_msgs/String.h> #include "panda_teaching/SavePose.h" +#include "panda_teaching/DeletePose.h" void collect(ros::NodeHandle node_handle, geometry_msgs::TransformStamped t) { @@ -25,11 +27,44 @@ void collect(ros::NodeHandle node_handle, geometry_msgs::TransformStamped t) { } } +void collectPose(ros::NodeHandle &node_handle){ + node_handle.setParam("collect_pose", true); +} + +void cleanUp(ros::NodeHandle &node_handle){ + ros::ServiceClient client = node_handle.serviceClient<panda_teaching::DeletePose>("DeleteCollectedPoses"); + panda_teaching::DeletePose srv; + + if (!client.call(srv)){ + ROS_ERROR("Failed to delete saved poses"); + } +} + +void collectorCallback(const std_msgs::String::ConstPtr& msg, ros::NodeHandle &node_handle){ + + ROS_INFO("Retrieved new pose-message..."); + + if(msg->data.compare("collect") == 0){ + ROS_INFO("Collecting new pose for gripper..."); + collectPose(node_handle); + return; + } + + if(msg->data.compare("clear") == 0){ + ROS_INFO("Deleting saved poses..."); + cleanUp(node_handle); + return; + } +} + int main(int argc, char **argv) { ros::init(argc, argv, "pose_tf_listener"); ros::NodeHandle node_handle; + + ros::Subscriber sub = node_handle.subscribe<std_msgs::String>("collectPose", 1000, boost::bind(&collectorCallback, _1, boost::ref(node_handle))); + tf2_ros::Buffer tfBuffer; tf2_ros::TransformListener tfListener(tfBuffer); @@ -58,6 +93,7 @@ int main(int argc, char **argv) { ros::Duration(1.0).sleep(); continue; } + ros::spinOnce(); } return 0; }; \ No newline at end of file