grasp_interface.cpp added

This commit is contained in:
Niko Feith 2024-01-30 16:06:31 +01:00
parent 38bba3f8a6
commit c976f7242a
4 changed files with 102 additions and 7 deletions

View File

@ -17,24 +17,47 @@ option(CHECK_TIDY "Adds clang-tidy tests" OFF)
find_package(Eigen3 REQUIRED) find_package(Eigen3 REQUIRED)
find_package(ament_cmake REQUIRED) find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED) find_package(rclcpp REQUIRED)
find_package(rclcpp_action REQUIRED)
find_package(moveit REQUIRED) find_package(moveit REQUIRED)
find_package(moveit_msgs REQUIRED)
find_package(moveit_visual_tools REQUIRED) find_package(moveit_visual_tools REQUIRED)
find_package(moveit_ros_planning_interface) find_package(moveit_ros_planning_interface)
find_package(moveit_task_constructor_core)
find_package(moveit_msgs REQUIRED)
find_package(std_msgs REQUIRED) find_package(std_msgs REQUIRED)
find_package(geometry_msgs REQUIRED) find_package(geometry_msgs REQUIRED)
find_package(franka_cps_msgs REQUIRED)
find_package(tf2) find_package(tf2)
find_package(tf2_ros) find_package(tf2_ros)
add_executable(franka_moveit_interface src/moveit_interface.cpp) add_executable(franka_iml_interface src/moveit_interface.cpp)
add_executable(franka_grasp_interface src/grasp_interface.cpp)
ament_target_dependencies( ament_target_dependencies(
franka_moveit_interface franka_iml_interface
rclcpp rclcpp
moveit moveit
moveit_msgs
moveit_visual_tools moveit_visual_tools
moveit_ros_planning_interface moveit_ros_planning_interface
moveit_msgs
std_msgs
geometry_msgs
tf2
tf2_ros
)
ament_target_dependencies(
franka_grasp_interface
rclcpp
rclcpp_action
moveit
moveit_visual_tools
moveit_ros_planning_interface
moveit_task_constructor_core
moveit_msgs
franka_cps_msgs
std_msgs std_msgs
geometry_msgs geometry_msgs
tf2 tf2
@ -42,7 +65,8 @@ ament_target_dependencies(
) )
install( install(
TARGETS franka_moveit_interface TARGETS franka_iml_interface
TARGETS franka_grasp_interface
DESTINATION lib/${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME}
) )

View File

@ -10,13 +10,19 @@
<buildtool_depend>ament_cmake</buildtool_depend> <buildtool_depend>ament_cmake</buildtool_depend>
<depend>rclcpp</depend> <depend>rclcpp</depend>
<depend>moveit</depend> <depend>moveit</depend>
<depend>moveit_msgs</depend>
<depend>moveit_visual_tools</depend> <depend>moveit_visual_tools</depend>
<depend>moveit_ros_planning_interface</depend>
<depend>moveit_task_constructor_core</depend>
<depend>moveit_msgs</depend>
<depend>std_msgs</depend> <depend>std_msgs</depend>
<depend>geometry_msgs</depend> <depend>geometry_msgs</depend>
<depend>moveit_ros_planning_interface</depend> <depend>franka_cps_msgs</depend>
<depend>eigen</depend> <depend>eigen</depend>
<depend>tf2</depend> <depend>tf2</depend>
<depend>tf2_ros</depend> <depend>tf2_ros</depend>

65
src/grasp_interface.cpp Normal file
View File

@ -0,0 +1,65 @@
#include <functional>
#include <future>
#include <memory>
#include <string>
#include <sstream>
#include <rclcpp/rclcpp.hpp>
#include <rclcpp_action/rclcpp_action.hpp>
#include <franka_cps_msgs/action/grasp_sequence.hpp>
#include <moveit/planning_scene/planning_scene.h>
#include <moveit/planning_scene_interface/planning_scene_interface.h>
#include <moveit/task_constructor/task.h>
#include <moveit/task_constructor/solvers.h>
#include <moveit/task_constructor/stages.h>
#if __has_include(<tf2_geometry_msgs/tf2_geometry_msgs.hpp>)
#include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
#else
#include <tf2_geometry_msgs/tf2_geometry_msgs.h>
#endif
#if __has_include(<tf2_eigen/tf2_eigen.hpp>)
#include <tf2_eigen/tf2_eigen.hpp>
#else
#include <tf2_eigen/tf2_eigen.h>
#endif
static const rclcpp::Logger LOGGER = rclcpp::get_logger("franka_grasp_interface");
namespace mtc = moveit::task_constructor;
class GraspInterfaceNode
{
public:
GraspInterfaceNode(const rclcpp::NodeOptions& options);
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr getNodeBaseInterface();
void doTask();
void setupPlanningScene();
rclcpp_action::create_client<franka_cps_msgs::action::GraspSequence>(this, "grasp_interface/grasp");
private:
mtc::Task createTask();
mtc::Task task_;
rclcpp::Node::SharedPtr node_;
}
GrapsInterfaceNode::GrapsInterfaceNode(const rclccp::NodeOptions& options)
: node_{ std::make_shared<rclcpp::Node>("grasp_interface_node", options)}
{
}
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr GraspInterfaceNode::getNodeBaseInterface()
{
return node_->get_node_base_interface();
}
int main(int argc, char** argv)
{
rclcpp::init(argc, argv);
rclcpp::shutdown();
return 0;
}