Skip to content

Commit 48cc031

Browse files
stefaniapedrazziygoumazad-danielcarikaseromichel
authored
Merge develop into master branch (#145)
* Merge `master` into `develop` (#129) * Add controllers directory to CMakeLists (#122) * Feature worlds using extern proto (#117) * adding EXTERNPROTOs to the webots_ros worlds * resolving merge conflicts * resolving merge conflicts * resolving merge conflicts * adding the EXTERNPROTOS in the webots_ros worlds * adding the EXTERNPROTOS in the webots_ros worlds * comment * Update worlds/tiago.wbt Co-authored-by: Yannick Goumaz <[email protected]> * Create update_urls.py (#123) * Fix hard code urls (#124) * Hard coded URLs * Delete update_urls.py * Fixed ROS service (#126) * Fix import node test (#127) * Fixed ROS service * Removed import node from complete_test Co-authored-by: Yannick Goumaz <[email protected]> Co-authored-by: carikaser <[email protected]> Co-authored-by: Olivier Michel <[email protected]> * Merge master into develop (#132) * Add controllers directory to CMakeLists (#122) * Feature worlds using extern proto (#117) * adding EXTERNPROTOs to the webots_ros worlds * resolving merge conflicts * resolving merge conflicts * resolving merge conflicts * adding the EXTERNPROTOS in the webots_ros worlds * adding the EXTERNPROTOS in the webots_ros worlds * comment * Update worlds/tiago.wbt Co-authored-by: Yannick Goumaz <[email protected]> * Create update_urls.py (#123) * Fix hard code urls (#124) * Hard coded URLs * Delete update_urls.py * Fixed ROS service (#126) * Fix import node test (#127) * Fixed ROS service * Removed import node from complete_test * Add missing declarations (#130) Co-authored-by: carikaser <[email protected]> Co-authored-by: Olivier Michel <[email protected]> Co-authored-by: ad-daniel <[email protected]> * Update node_disable_contact_points_tracking.srv (#138) (#139) * Merge master into develop (#141) * Update node_disable_contact_points_tracking.srv (#138) * Update complete_test.cpp (#140) * Feature VacuumGripper device (#144) * Test VacuumCup API * Rename device * Fix test * Fix srv type * Update src/complete_test.cpp --------- Co-authored-by: Olivier Michel <[email protected]> * Update TIAGo PROTO name (#143) --------- Co-authored-by: Yannick Goumaz <[email protected]> Co-authored-by: ad-daniel <[email protected]> Co-authored-by: carikaser <[email protected]> Co-authored-by: Olivier Michel <[email protected]> Co-authored-by: ad-daniel <[email protected]>
1 parent 9f4c9d4 commit 48cc031

File tree

3 files changed

+123
-43
lines changed

3 files changed

+123
-43
lines changed

src/complete_test.cpp

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ static double GPSSpeedVectorValues[3] = {0, 0, 0};
161161
static double GyroValues[3] = {0, 0, 0};
162162
static double inertialUnitValues[4] = {0, 0, 0, 0};
163163
static double touchSensorValues[3] = {0, 0, 0};
164+
static bool vacuumGripperPresence = 0;
164165
static bool callbackCalled = false;
165166

166167
ros::ServiceClient time_step_client;
@@ -368,6 +369,14 @@ void touchSensor3DCallback(const geometry_msgs::WrenchStamped::ConstPtr &values)
368369
callbackCalled = true;
369370
}
370371

372+
void vacuumGripperCallback(const webots_ros::BoolStamped::ConstPtr &value) {
373+
vacuumGripperPresence = value->data;
374+
375+
ROS_INFO("VacuumGripper presence: %d (time: %d:%d).", vacuumGripperPresence, value->header.stamp.sec,
376+
value->header.stamp.nsec);
377+
callbackCalled = true;
378+
}
379+
371380
void receiverCallback(const webots_ros::StringStamped::ConstPtr &value) {
372381
char *message = const_cast<char *>(value->data.c_str());
373382
ROS_INFO("Received a message %s.", message);
@@ -3025,6 +3034,75 @@ int main(int argc, char **argv) {
30253034
sampling_period_touch_sensor_client.shutdown();
30263035
time_step_client.call(time_step_srv);
30273036

3037+
/////////////////////////////////
3038+
// VACUUM GRIPPER METHODS TEST //
3039+
/////////////////////////////////
3040+
3041+
ros::ServiceClient vacuum_gripper_enable_presence_client;
3042+
webots_ros::set_int vacuum_gripper_srv;
3043+
ros::Subscriber sub_vacuum_gripper;
3044+
vacuum_gripper_enable_presence_client =
3045+
n.serviceClient<webots_ros::set_int>(model_name + "/vacuum_gripper/presence_sensor/enable");
3046+
3047+
vacuum_gripper_srv.request.value = 32;
3048+
if (vacuum_gripper_enable_presence_client.call(vacuum_gripper_srv) && vacuum_gripper_srv.response.success) {
3049+
ROS_INFO("Vacuum gripper's presence sensor enabled.");
3050+
sub_vacuum_gripper = n.subscribe(model_name + "/vacuum_gripper/presence", 1, vacuumGripperCallback);
3051+
callbackCalled = false;
3052+
while (sub_vacuum_gripper.getNumPublishers() == 0 || !callbackCalled) {
3053+
ros::spinOnce();
3054+
time_step_client.call(time_step_srv);
3055+
}
3056+
} else {
3057+
if (!vacuum_gripper_srv.response.success)
3058+
ROS_ERROR("Sampling period is not valid.");
3059+
ROS_ERROR("Failed to enable vacuum gripper's presence sensor.");
3060+
return 1;
3061+
}
3062+
3063+
sub_vacuum_gripper.shutdown();
3064+
3065+
time_step_client.call(time_step_srv);
3066+
time_step_client.call(time_step_srv);
3067+
time_step_client.call(time_step_srv);
3068+
3069+
vacuum_gripper_srv.request.value = 0;
3070+
if (vacuum_gripper_enable_presence_client.call(vacuum_gripper_srv) && vacuum_gripper_srv.response.success)
3071+
ROS_INFO("Vacuum gripper's presence sensor disabled.");
3072+
else {
3073+
if (!vacuum_gripper_srv.response.success)
3074+
ROS_ERROR("Sampling period is not valid.");
3075+
ROS_ERROR("Failed to disable vacuum gripper's presence sensor.");
3076+
return 1;
3077+
}
3078+
3079+
ros::ServiceClient vacuum_gripper_turn_on_client;
3080+
webots_ros::set_bool vacuum_gripper_turn_on_srv;
3081+
vacuum_gripper_turn_on_client = n.serviceClient<webots_ros::set_bool>(model_name + "/vacuum_gripper/turn_on");
3082+
3083+
vacuum_gripper_turn_on_srv.request.value = true;
3084+
if (vacuum_gripper_turn_on_client.call(vacuum_gripper_turn_on_srv) && vacuum_gripper_turn_on_srv.response.success)
3085+
ROS_INFO("Vacuum gripper has been turned on.");
3086+
else
3087+
ROS_INFO("Failed to turn on vacuum gripper.");
3088+
3089+
vacuum_gripper_turn_on_client.shutdown();
3090+
vacuum_gripper_enable_presence_client.shutdown();
3091+
time_step_client.call(time_step_srv);
3092+
3093+
ros::ServiceClient vacuum_gripper_is_on_client;
3094+
webots_ros::get_bool vacuum_gripper_is_on_srv;
3095+
vacuum_gripper_is_on_client = n.serviceClient<webots_ros::get_bool>(model_name + "/vacuum_gripper/is_on");
3096+
3097+
if (vacuum_gripper_is_on_client.call(vacuum_gripper_is_on_srv))
3098+
ROS_INFO("Vacuum gripper is on: %d", vacuum_gripper_is_on_srv.response.value);
3099+
else
3100+
ROS_INFO("Failed to call is_on for vacuum gripper.");
3101+
3102+
vacuum_gripper_turn_on_client.shutdown();
3103+
vacuum_gripper_enable_presence_client.shutdown();
3104+
time_step_client.call(time_step_srv);
3105+
30283106
/////////////////////////////
30293107
// SUPERVISOR METHODS TEST //
30303108
/////////////////////////////

worlds/complete_test.wbt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,8 @@ Robot {
283283
TouchSensor {
284284
name "touch_sensor"
285285
}
286+
VacuumGripper {
287+
}
286288
Shape {
287289
appearance PBRAppearance {
288290
baseColor 0.8 0 0.0117647

worlds/tiago.wbt

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
1-
#VRML_SIM R2023a utf8
1+
#VRML_SIM R2023b utf8
22

3-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/backgrounds/protos/TexturedBackground.proto"
4-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto"
5-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/floors/protos/RectangleArena.proto"
6-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/cabinet/protos/Cabinet.proto"
7-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/cabinet/protos/CabinetHandle.proto"
8-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/kitchen/oven/protos/Oven.proto"
9-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/kitchen/fridge/protos/Fridge.proto"
10-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/tables/protos/Table.proto"
11-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/chairs/protos/Chair.proto"
12-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/plants/protos/PottedTree.proto"
13-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/plants/protos/BunchOfSunFlowers.proto"
14-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/living_room_furniture/protos/Sofa.proto"
15-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/living_room_furniture/protos/Carpet.proto"
16-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/living_room_furniture/protos/Armchair.proto"
17-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/apartment_structure/protos/Door.proto"
18-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/apartment_structure/protos/DoorLever.proto"
19-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/apartment_structure/protos/Wall.proto"
20-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/apartment_structure/protos/Window.proto"
21-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/kitchen/components/protos/Sink.proto"
22-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/kitchen/components/protos/Worktop.proto"
23-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/kitchen/components/protos/HotPlate.proto"
24-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/chairs/protos/WoodenChair.proto"
25-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/drinks/protos/Can.proto"
26-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/fruits/protos/FruitBowl.proto"
27-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/school_furniture/protos/Book.proto"
28-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/robots/pal_robotics/tiago_steel/protos/TiagoSteel.proto"
29-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/lights/protos/CeilingLight.proto"
30-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/lights/protos/FloorLight.proto"
31-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/paintings/protos/PortraitPainting.proto"
32-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/paintings/protos/LandscapePainting.proto"
33-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/create_wall/protos/CreateWall.proto"
34-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/appearances/protos/PaintedWood.proto"
35-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/appearances/protos/Parquetry.proto"
36-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/appearances/protos/Roughcast.proto"
37-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/fruits/protos/Orange.proto"
38-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/fruits/protos/Apple.proto"
39-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/tables/protos/Desk.proto"
40-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/robots/gctronic/e-puck/protos/E-puck.proto"
41-
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/robots/gctronic/e-puck/protos/E-puckGroundSensors.proto"
3+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackground.proto"
4+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/backgrounds/protos/TexturedBackgroundLight.proto"
5+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/floors/protos/RectangleArena.proto"
6+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/cabinet/protos/Cabinet.proto"
7+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/cabinet/protos/CabinetHandle.proto"
8+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/kitchen/oven/protos/Oven.proto"
9+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/kitchen/fridge/protos/Fridge.proto"
10+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/tables/protos/Table.proto"
11+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/chairs/protos/Chair.proto"
12+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/plants/protos/PottedTree.proto"
13+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/plants/protos/BunchOfSunFlowers.proto"
14+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/living_room_furniture/protos/Sofa.proto"
15+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/living_room_furniture/protos/Carpet.proto"
16+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/living_room_furniture/protos/Armchair.proto"
17+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/apartment_structure/protos/Door.proto"
18+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/apartment_structure/protos/DoorLever.proto"
19+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/apartment_structure/protos/Wall.proto"
20+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/apartment_structure/protos/Window.proto"
21+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/kitchen/components/protos/Sink.proto"
22+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/kitchen/components/protos/Worktop.proto"
23+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/kitchen/components/protos/HotPlate.proto"
24+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/chairs/protos/WoodenChair.proto"
25+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/drinks/protos/Can.proto"
26+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/fruits/protos/FruitBowl.proto"
27+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/school_furniture/protos/Book.proto"
28+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/robots/pal_robotics/tiago/protos/Tiago.proto"
29+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/lights/protos/CeilingLight.proto"
30+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/lights/protos/FloorLight.proto"
31+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/paintings/protos/PortraitPainting.proto"
32+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/paintings/protos/LandscapePainting.proto"
33+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/create_wall/protos/CreateWall.proto"
34+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/appearances/protos/PaintedWood.proto"
35+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/appearances/protos/Parquetry.proto"
36+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/appearances/protos/Roughcast.proto"
37+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/fruits/protos/Orange.proto"
38+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/fruits/protos/Apple.proto"
39+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/tables/protos/Desk.proto"
40+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/robots/gctronic/e-puck/protos/E-puck.proto"
41+
EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/robots/gctronic/e-puck/protos/E-puckGroundSensors.proto"
4242

4343
WorldInfo {
4444
info [
45-
"TIAGo Steel simulation with MoveIt and differential drive integration (ROS)."
45+
"TIAGo simulation with MoveIt and differential drive integration (ROS)."
4646
]
47-
title "TIAGo Steel"
47+
title "TIAGo"
4848
basicTimeStep 16
4949
contactProperties [
5050
ContactProperties {
@@ -534,7 +534,7 @@ LandscapePainting {
534534
CreateWall {
535535
translation 3.53117 -3.235 0
536536
}
537-
TiagoSteel {
537+
Tiago {
538538
translation 2.194 -4.717 0.095
539539
controller "ros"
540540
controllerArgs [

0 commit comments

Comments
 (0)