42
42
#include < mra_core_msgs/AssemblyState.h>
43
43
#include < mra_core_msgs/JointCommand.h>
44
44
#include < std_msgs/Bool.h>
45
+ #include < std_msgs/Int8.h>
45
46
46
47
using namespace mra_basic_config ;
47
48
using namespace std ;
48
49
49
50
UserControlOnCan *userControlOnCan;
51
+ Gripper *gripper;
50
52
mra_core_msgs::AssemblyState mra_state;
51
53
52
54
void show_ID_in_current_canbus ()
@@ -103,6 +105,14 @@ void moveJ_callback(const std_msgs::Float32MultiArray::ConstPtr &msg)
103
105
}
104
106
}
105
107
108
+ void gripper_command_callback (const std_msgs::Int8ConstPtr &msg){
109
+ if (gripper != NULL ){
110
+ ROS_INFO (" Gripper work on %d" , msg->data );
111
+ gripper->setFingerTagOpenStatus (msg->data );
112
+ }
113
+
114
+ }
115
+
106
116
void MRA_API_INIT (const std_msgs::Bool &reset) {
107
117
108
118
userControlOnCan = new UserControlOnCan ();
@@ -118,6 +128,9 @@ void MRA_API_INIT(const std_msgs::Bool &reset) {
118
128
userControlOnCan->controller .GetErrorText (s);
119
129
ROS_ERROR (" Can't Open the pcanusb32:%s" ,s.c_str ());
120
130
}
131
+ if (userControlOnCan->controller .allGripper .size () != 0 ){
132
+ gripper = userControlOnCan->findGripperID (mra_basic_config::GRIPPER_ID);
133
+ }
121
134
}
122
135
123
136
int main (int argc, char **argv)
@@ -149,6 +162,8 @@ int main(int argc, char **argv)
149
162
ros::Publisher state_pub = n.advertise <mra_core_msgs::AssemblyState> (STATE_TOPIC, 1 );
150
163
/* sub reset */
151
164
ros::Subscriber sub_reset_MRA_API = n.subscribe (RESET_MRA_API_TOPIC, 10 , &MRA_API_INIT);
165
+ /* sub gripper command*/
166
+ ros::Subscriber sub_gripper_command = n.subscribe (GRIPPER_COMMAND, 1 , &gripper_command_callback);
152
167
153
168
154
169
sensor_msgs::JointState joint_state;
0 commit comments