4 #include <std_srvs/SetBool.h> 5 #include <geometry_msgs/PoseStamped.h> 6 #include <geometry_msgs/Pose.h> 7 #include <ar_track_alvar_msgs/AlvarMarkers.h> 9 #include <moveit_msgs/CollisionObject.h> 12 #include <kdl/chainfksolver.hpp> 13 #include <kdl/chain.hpp> 14 #include <kdl/chainjnttojacsolver.hpp> 15 #include <kdl/frames.hpp> 16 #include "kdl/chainfksolverpos_recursive.hpp" 26 bool update_cb(std_srvs::SetBool::Request &req,std_srvs::SetBool::Response &res);
27 void handle_objects(
const ar_track_alvar_msgs::AlvarMarkers::ConstPtr& markers);
41 int main(
int argc,
char **argv) {
48 pn.
param<std::string>(
"db_path", db_path,
"??");
58 planning_scene_interface_ptr=&planning_scene_interface;
76 if (
id==1)
return "can";
83 shape_msgs::SolidPrimitive object_primitive;
85 object_primitive.type = object_primitive.CYLINDER;
86 object_primitive.dimensions.resize(2);
87 object_primitive.dimensions[0] = 0.17;
88 object_primitive.dimensions[1] = 0.03;
91 object_primitive.type = object_primitive.BOX;
92 object_primitive.dimensions.resize(3);
93 object_primitive.dimensions[0] = 0.3;
94 object_primitive.dimensions[1] = 0.3;
95 object_primitive.dimensions[2] = 0.01;
97 return object_primitive;
109 std::vector<moveit_msgs::CollisionObject> col_objects;
111 for (
int i=0;i<markers->markers.size();i++) {
113 ar_track_alvar_msgs::AlvarMarker m=markers->markers[i];
115 moveit_msgs::CollisionObject obj;
116 obj.header.frame_id = m.header.frame_id;
121 obj.operation=obj.ADD;
123 col_objects.push_back(obj);
132 std_srvs::SetBool::Response &res) {
136 if (
update) res.message=
"update collision is ON";
137 else res.message=
"update collision is OFF";
shape_msgs::SolidPrimitive get_obj_shape(int id)
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
void addCollisionObjects(const std::vector< moveit_msgs::CollisionObject > &collision_objects, const std::vector< moveit_msgs::ObjectColor > &object_colors=std::vector< moveit_msgs::ObjectColor >()) const
ServiceServer advertiseService(const std::string &service, bool(T::*srv_func)(MReq &, MRes &), T *obj)
geometry_msgs::Pose get_obj_position(int id, geometry_msgs::Pose pose)
int main(int argc, char **argv)
bool param(const std::string ¶m_name, T ¶m_val, const T &default_val) const
std::string get_obj_id(int id)
void handle_objects(const ar_track_alvar_msgs::AlvarMarkers::ConstPtr &markers)
moveit::planning_interface::PlanningSceneInterface * planning_scene_interface_ptr
bool update_cb(std_srvs::SetBool::Request &req, std_srvs::SetBool::Response &res)
ROSCPP_DECL void spinOnce()