add rbs_utils
This commit is contained in:
parent
f1a6f4d817
commit
d84e8ead97
9 changed files with 551 additions and 23 deletions
|
@ -4,15 +4,14 @@
|
|||
#include <Eigen/src/Geometry/Quaternion.h>
|
||||
#include <Eigen/src/Geometry/Transform.h>
|
||||
#include <cmath>
|
||||
#include <fstream>
|
||||
#include <geometry_msgs/msg/detail/pose__struct.hpp>
|
||||
#include <memory>
|
||||
#include <nlohmann/json_fwd.hpp>
|
||||
#include <rclcpp/logging.hpp>
|
||||
#include <sdf/Geometry.hh>
|
||||
#include <tf2_eigen/tf2_eigen.hpp>
|
||||
// #include <Eigen/src/Core/Matrix.h>
|
||||
// #include <Eigen/src/Geometry/Transform.h>
|
||||
// #include <rclcpp/logging.hpp>
|
||||
// #include <tf2/LinearMath/Quaternion.h>
|
||||
// #include <tf2/exceptions.h>
|
||||
// #include <tf2/time.h>
|
||||
// #include <tf2_eigen/tf2_eigen.hpp>
|
||||
#include <vector>
|
||||
|
||||
using GetGraspPlacePoseServer = rbs_skill_actions::GetGraspPickPoseServer;
|
||||
using GetGraspPlacePoseService = rbs_skill_interfaces::srv::GetPickPlacePoses;
|
||||
|
@ -28,11 +27,11 @@ GetGraspPlacePoseServer::GetGraspPickPoseServer(rclcpp::NodeOptions options)
|
|||
|
||||
srv_ = create_service<GetGraspPlacePoseService>(
|
||||
"/get_pick_place_pose_service",
|
||||
std::bind(&GetGraspPickPoseServer::handle_server, this,
|
||||
std::bind(&GetGraspPickPoseServer::handleServer, this,
|
||||
std::placeholders::_1, std::placeholders::_2));
|
||||
}
|
||||
|
||||
void GetGraspPlacePoseServer::handle_server(
|
||||
void GetGraspPlacePoseServer::handleServer(
|
||||
const rbs_skill_interfaces::srv::GetPickPlacePoses::Request::SharedPtr
|
||||
request,
|
||||
rbs_skill_interfaces::srv::GetPickPlacePoses::Response::SharedPtr
|
||||
|
@ -40,6 +39,11 @@ void GetGraspPlacePoseServer::handle_server(
|
|||
std::string object_name =
|
||||
request->object_name + "_place"; // TODO: replace with better name
|
||||
// Load place pose from TF2
|
||||
|
||||
auto d = std::make_shared<rbs_utils::AssemblyConfigLoader>("asp-example");
|
||||
d->setTfData();
|
||||
// rbs_utils::processAsmFolderName("asp-example");
|
||||
|
||||
try {
|
||||
place_pose_tf = tf_buffer_->lookupTransform("world", object_name.c_str(),
|
||||
tf2::TimePointZero);
|
||||
|
@ -80,13 +84,15 @@ void GetGraspPlacePoseServer::handle_server(
|
|||
|
||||
Eigen::Vector3d scale_grasp(0, 0, 0.10);
|
||||
Eigen::Vector3d scale_place(0, 0, 0.15);
|
||||
auto path = std::getenv("RBS_ASSEMBLY_PATH");
|
||||
RCLCPP_ERROR_STREAM(this->get_logger(), path);
|
||||
response->grasp =
|
||||
collect_pose(grasp_pose, request->grasp_direction, scale_grasp);
|
||||
collectPose(grasp_pose, request->grasp_direction, scale_grasp);
|
||||
response->place =
|
||||
collect_pose(place_pose, request->place_direction, scale_place);
|
||||
collectPose(place_pose, request->place_direction, scale_place);
|
||||
}
|
||||
|
||||
std::vector<geometry_msgs::msg::Pose> GetGraspPlacePoseServer::collect_pose(
|
||||
std::vector<geometry_msgs::msg::Pose> GetGraspPlacePoseServer::collectPose(
|
||||
const Eigen::Isometry3d &graspPose,
|
||||
const geometry_msgs::msg::Vector3 &move_direction,
|
||||
const Eigen::Vector3d &scale_vec) {
|
||||
|
@ -123,3 +129,12 @@ std::vector<geometry_msgs::msg::Pose> GetGraspPlacePoseServer::collect_pose(
|
|||
|
||||
return poses;
|
||||
}
|
||||
|
||||
// std::vector<geometry_msgs::msg::Pose> GetGraspPlacePoseServer::getPlacePoseJson(const nlohmann::json& json)
|
||||
// {
|
||||
// std::vector<geometry_msgs::msg::Pose> place_pose;
|
||||
// auto env_path = std::getenv("PATH");
|
||||
|
||||
// RCLCPP_INFO_STREAM(this->get_logger(), env_path);
|
||||
// return place_pose;
|
||||
// }
|
Loading…
Add table
Add a link
Reference in a new issue