From: syah <sy...@us...> - 2008-07-30 19:53:01
|
Hi, I have successfully done multiple robot having obstacle avoidance (using vfh) while going to a target location (goto). Another program is multiple robots aggregating (using blobs) without obstacle avoidance in a empty plane/settings. How can I combine these so that I can have multiple robots having obstacle avoidance (using vfh) but knows other robots (thus not avoiding them) ? Thank you for any help. Thanks.... my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 Kind regards, -syah- |
From: J. S. <jan...@gm...> - 2008-07-30 22:53:28
|
You could use the fiducialproxy to identify other robots. The fiducialproxy will allow you as well to have different id on the robots. Sapo On Wed, Jul 30, 2008 at 8:53 PM, syah <sy...@us...> wrote: > Hi, > > I have successfully done multiple robot having obstacle avoidance > (using vfh) while going to a target location (goto). Another program > is multiple robots aggregating (using blobs) without obstacle > avoidance in a empty plane/settings. > > How can I combine these so that I can have multiple robots having > obstacle avoidance (using vfh) but knows other robots (thus not > avoiding them) ? Thank you for any help. Thanks.... > > my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 > > Kind regards, > -syah- > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > -- J. Saez Pons http://johnthesapo.blogspot.com/ |
From: Rebble <hyy...@16...> - 2009-04-05 08:03:17
|
Hi syah: Sorry to ask here, but i really want to know how you get the GoTo () in VFH worked. This is my simple test, but failed,could you please give me some hints? The following is my simple control codes and cfg file: #include <libplayerc++/playerc++.h> #include <libplayerc/playerc.h> #include <iostream> #include "args.h" using namespace PlayerCc PlayerClient r0("localhost",6665); Position2dProxy vfh(&r0,1); int main(int argc, char **argv) { parse_args(argc,argv); try{ player_pose2d_t target_pose; target_pose.px = -1; target_pose.py = 5; target_pose.pa = 0; //vfh.SetSpeed(0.2,0); vfh.GoTo(target_pose); vfh.SetMotorEnable(true); for(;;) //to keep the connetion to player server { r0.Read(); } return 0; } catch (PlayerCc::PlayerError e) { std::cerr << e << std::endl; return -1; } } .cfg file: driver ( name "stage" provides ["simulation:0"] plugin "libstageplugin" worldfile "total1.world" ) driver( name "stage" provides ["map:0" ] model "table" ) # robot 0 driver( name "stage" provides [ "position2d:0" "sonar:0" "laser:0" ] model "r0" ) driver ( name "vfh" provides ["position2d:1"] requires ["position2d:0" "laser:0"] distance_epsilon 0.3 angle_epsilon 5 ) .world file esolution 0.02 interval_sim 100 include "pioneer.inc" include "map.inc" include "sick.inc" size [40 20 ] gui_disable 0 gui_interval 100 gui_menu_interval 20 window( size [ 755.000 684.000 ] center [-7.707 2.553] scale 0.009 ) map( bitmap "bitmaps/table.png" map_resolution 0.02 size [40 18] name "table" ) #define p2dx pioneer2dx ( laser() blobfinder() fiducialfinder(range_max 8 range_max_id 5 ) ) p2dx ( name "r0" pose [4.0 3.0 0] color "blue" ) Thank you very much! Rebble syah-2 wrote: > > Hi, > > I have successfully done multiple robot having obstacle avoidance > (using vfh) while going to a target location (goto). Another program > is multiple robots aggregating (using blobs) without obstacle > avoidance in a empty plane/settings. > > How can I combine these so that I can have multiple robots having > obstacle avoidance (using vfh) but knows other robots (thus not > avoiding them) ? Thank you for any help. Thanks.... > > my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 > > Kind regards, > -syah- > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the > world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > -- View this message in context: http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22891384.html Sent from the playerstage-users mailing list archive at Nabble.com. |
From: Brian G. <br...@ge...> - 2009-04-06 15:46:34
|
On Apr 5, 2009, at 1:03 AM, Rebble wrote: > Sorry to ask here, but i really want to know how you get the GoTo > () in > VFH worked. This is my simple test, but failed,could you please give > me some > hints? When you say that it doesn't work, what happens? brian. > > The following is my simple control codes and cfg file: > #include <libplayerc++/playerc++.h> > #include <libplayerc/playerc.h> > #include <iostream> > #include "args.h" > using namespace PlayerCc > PlayerClient r0("localhost",6665); > Position2dProxy vfh(&r0,1); > int main(int argc, char **argv) > { > parse_args(argc,argv); > try{ > player_pose2d_t target_pose; > target_pose.px = -1; > target_pose.py = 5; > target_pose.pa = 0; > //vfh.SetSpeed(0.2,0); > vfh.GoTo(target_pose); > vfh.SetMotorEnable(true); > for(;;) //to keep the connetion to player server > { r0.Read(); > } > return 0; > } > catch (PlayerCc::PlayerError e) > { > std::cerr << e << std::endl; > return -1; > } > } > .cfg file: > driver > ( > name "stage" > provides ["simulation:0"] > plugin "libstageplugin" > worldfile "total1.world" > ) > driver( name "stage" provides ["map:0" ] model "table" ) > # robot 0 > driver( > name "stage" > provides [ "position2d:0" "sonar:0" "laser:0" ] > model "r0" > ) > driver > ( > name "vfh" > provides ["position2d:1"] > requires ["position2d:0" "laser:0"] > distance_epsilon 0.3 > angle_epsilon 5 > ) > .world file > esolution 0.02 > interval_sim 100 > include "pioneer.inc" > include "map.inc" > include "sick.inc" > > size [40 20 ] > gui_disable 0 > gui_interval 100 > gui_menu_interval 20 > > window( > size [ 755.000 684.000 ] > center [-7.707 2.553] > scale 0.009 > ) > map( > bitmap "bitmaps/table.png" > map_resolution 0.02 > size [40 18] > name "table" > ) > #define p2dx pioneer2dx > ( > laser() > blobfinder() > fiducialfinder(range_max 8 range_max_id 5 ) > ) > p2dx > ( > name "r0" > pose [4.0 3.0 0] > color "blue" > ) > > Thank you very much! > Rebble > > syah-2 wrote: >> >> Hi, >> >> I have successfully done multiple robot having obstacle avoidance >> (using vfh) while going to a target location (goto). Another program >> is multiple robots aggregating (using blobs) without obstacle >> avoidance in a empty plane/settings. >> >> How can I combine these so that I can have multiple robots having >> obstacle avoidance (using vfh) but knows other robots (thus not >> avoiding them) ? Thank you for any help. Thanks.... >> >> my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 >> >> Kind regards, >> -syah- >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> challenge >> Build the coolest Linux based applications with Moblin SDK & win >> great >> prizes >> Grand prize is a trip for two to an Open Source event anywhere in the >> world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> Playerstage-users mailing list >> Pla...@li... >> https://lists.sourceforge.net/lists/listinfo/playerstage-users >> >> > > -- > View this message in context: http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22891384.html > Sent from the playerstage-users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users |
From: Rebble <hyy...@16...> - 2009-04-07 07:54:04
|
Hi Brian: when i run the .cc, at first the robot doesn't move at all, and after i just use vfh.SetSpeed(0.2,0); without GoTo(), then it can move, but the position it arrive is not that i set. For example, if i set the position (3,3),it may go to (6.5,6) and everytime the result is not same. The error can not be tolerated in fact.Besides, it seems that only VFH support 6665, because if i use VFH with other ports, the robot doesn't move. What's the reason? Or the VFH in stage 2.1.1 reallly broken in source? Thank you! Rebble Brian Gerkey wrote: > > > On Apr 5, 2009, at 1:03 AM, Rebble wrote: > >> Sorry to ask here, but i really want to know how you get the GoTo >> () in >> VFH worked. This is my simple test, but failed,could you please give >> me some >> hints? > > When you say that it doesn't work, what happens? > > brian. > >> >> The following is my simple control codes and cfg file: >> #include <libplayerc++/playerc++.h> >> #include <libplayerc/playerc.h> >> #include <iostream> >> #include "args.h" >> using namespace PlayerCc >> PlayerClient r0("localhost",6665); >> Position2dProxy vfh(&r0,1); >> int main(int argc, char **argv) >> { >> parse_args(argc,argv); >> try{ >> player_pose2d_t target_pose; >> target_pose.px = -1; >> target_pose.py = 5; >> target_pose.pa = 0; >> //vfh.SetSpeed(0.2,0); >> vfh.GoTo(target_pose); >> vfh.SetMotorEnable(true); >> for(;;) //to keep the connetion to player server >> { r0.Read(); >> } >> return 0; >> } >> catch (PlayerCc::PlayerError e) >> { >> std::cerr << e << std::endl; >> return -1; >> } >> } >> .cfg file: >> driver >> ( >> name "stage" >> provides ["simulation:0"] >> plugin "libstageplugin" >> worldfile "total1.world" >> ) >> driver( name "stage" provides ["map:0" ] model "table" ) >> # robot 0 >> driver( >> name "stage" >> provides [ "position2d:0" "sonar:0" "laser:0" ] >> model "r0" >> ) >> driver >> ( >> name "vfh" >> provides ["position2d:1"] >> requires ["position2d:0" "laser:0"] >> distance_epsilon 0.3 >> angle_epsilon 5 >> ) >> .world file >> esolution 0.02 >> interval_sim 100 >> include "pioneer.inc" >> include "map.inc" >> include "sick.inc" >> >> size [40 20 ] >> gui_disable 0 >> gui_interval 100 >> gui_menu_interval 20 >> >> window( >> size [ 755.000 684.000 ] >> center [-7.707 2.553] >> scale 0.009 >> ) >> map( >> bitmap "bitmaps/table.png" >> map_resolution 0.02 >> size [40 18] >> name "table" >> ) >> #define p2dx pioneer2dx >> ( >> laser() >> blobfinder() >> fiducialfinder(range_max 8 range_max_id 5 ) >> ) >> p2dx >> ( >> name "r0" >> pose [4.0 3.0 0] >> color "blue" >> ) >> >> Thank you very much! >> Rebble >> >> syah-2 wrote: >>> >>> Hi, >>> >>> I have successfully done multiple robot having obstacle avoidance >>> (using vfh) while going to a target location (goto). Another program >>> is multiple robots aggregating (using blobs) without obstacle >>> avoidance in a empty plane/settings. >>> >>> How can I combine these so that I can have multiple robots having >>> obstacle avoidance (using vfh) but knows other robots (thus not >>> avoiding them) ? Thank you for any help. Thanks.... >>> >>> my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 >>> >>> Kind regards, >>> -syah- >>> >>> ------------------------------------------------------------------------- >>> This SF.Net email is sponsored by the Moblin Your Move Developer's >>> challenge >>> Build the coolest Linux based applications with Moblin SDK & win >>> great >>> prizes >>> Grand prize is a trip for two to an Open Source event anywhere in the >>> world >>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >>> _______________________________________________ >>> Playerstage-users mailing list >>> Pla...@li... >>> https://lists.sourceforge.net/lists/listinfo/playerstage-users >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22891384.html >> Sent from the playerstage-users mailing list archive at Nabble.com. >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Playerstage-users mailing list >> Pla...@li... >> https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > ------------------------------------------------------------------------------ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > -- View this message in context: http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22922856.html Sent from the playerstage-users mailing list archive at Nabble.com. |
From: Richard E. <red...@ee...> - 2009-04-06 18:14:40
|
Brian Gerkey wrote: > On Apr 5, 2009, at 1:03 AM, Rebble wrote: > > >> Sorry to ask here, but i really want to know how you get the GoTo >> () in >> VFH worked. This is my simple test, but failed,could you please give >> me some >> hints? >> > > When you say that it doesn't work, what happens? > > brian. > > I noticed that GoTo for differential robots is broken in the stage-2.1.1 tar ball on source forge. The culprit being max_speed.x, max_speed.y, and max_speed.a. They are set at start as follows: if( wf_property_exists( mod->id, "max_speed" ) ) { data->max_speed.x = wf_read_tuple_length(mod->id, "max_speed", 0, data->max_speed.x ); data->max_speed.y = wf_read_tuple_length(mod->id, "max_speed", 1, data->max_speed.y ); data->max_speed.a = wf_read_tuple_angle(mod->id, "max_speed", 2, data->max_speed.a ); } Thus, if not specified they all default to zero causing the goto operation for differential robots to not perform correctly. However, this problem is fixed in Stage-3.0.1. I am not sure if this was alread patched or not for 2.1.1. Thank You, Richard Edwards |
From: Toby C. <tco...@pl...> - 2009-05-09 14:26:33
|
max_speed in stage 2.1 svn has defaults of 1.0 for each of these values. Toby 2009/4/6 Richard Edwards <red...@ee...> > > I noticed that GoTo for differential robots is broken in the stage-2.1.1 > tar ball on source forge. The culprit being max_speed.x, max_speed.y, > and max_speed.a. They are set at start as follows: > > if( wf_property_exists( mod->id, "max_speed" ) ) > { > data->max_speed.x = wf_read_tuple_length(mod->id, "max_speed", 0, > data->max_speed.x ); > data->max_speed.y = wf_read_tuple_length(mod->id, "max_speed", 1, > data->max_speed.y ); > data->max_speed.a = wf_read_tuple_angle(mod->id, "max_speed", 2, > data->max_speed.a ); > } > > > Thus, if not specified they all default to zero causing the goto > operation for differential robots to not perform correctly. However, > this problem is fixed in Stage-3.0.1. I am not sure if this was alread > patched or not for 2.1.1. > > Thank You, > > Richard Edwards > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > -- This email is intended for the addressee only and may contain privileged and/or confidential information |
From: syah <sy...@us...> - 2009-04-07 14:24:47
|
Hi Rebble, Firstly, my specs are as follows: Player 2.0.5, Stage 2.0.4 This is the *test* code that I have tried. It may have a few errors (I have not checked it), but the general structure is the same, I think... Skimming your code, your robot (with vfh) should move - maybe its the version you are using, but I am no expert in Player/Stage though. Hope this helps. Thanks. regards, -syah- #include <stdio.h> #include <math.h> #include <libplayerc++/playerc++.h> using namespace PlayerCc; int main(int argc, char *argv[]) { PlayerClient robot("localhost"); Position2dProxy pos(&robot, 0); Position2dProxy posSmart(&robot, 4); // Because have a few other robots, index is higher pos.SetMotorEnable(true); // Not needed for simulation, but needed for // real robots. double xtarget = 3.0; double ytarget = 0.0; double theta_target = 0.0; double distance = hypot(xtarget - posSmart.GetXPos(), ytarget - posSmart.GetYPos()); posSmart.GoTo(xtarget, ytarget, theta_target); while (distance > 0.0625 && !posSmart.GetStall()) { robot.Read(); // Get the latest data from the server. distance = hypot(xtarget - posSmart.GetXPos(), ytarget - posSmart.GetYPos()); } if (posSmart.GetStall()) { // If the wheels stopped turning ... printf("Problem: robot motors have stalled.\n"); } else { printf("Robot has reached target.\n"); } posSmart.SetSpeed(0, 0, 0); // Stop the robot } On Sun, Apr 5, 2009 at 9:03 AM, Rebble <hyy...@16...> wrote: > > Hi syah: > Sorry to ask here, but i really want to know how you get the GoTo () in > VFH worked. This is my simple test, but failed,could you please give me some > hints? > The following is my simple control codes and cfg file: > #include <libplayerc++/playerc++.h> > #include <libplayerc/playerc.h> > #include <iostream> > #include "args.h" > using namespace PlayerCc > PlayerClient r0("localhost",6665); > Position2dProxy vfh(&r0,1); > int main(int argc, char **argv) > { > parse_args(argc,argv); > try{ > player_pose2d_t target_pose; > target_pose.px = -1; > target_pose.py = 5; > target_pose.pa = 0; > //vfh.SetSpeed(0.2,0); > vfh.GoTo(target_pose); > vfh.SetMotorEnable(true); > for(;;) //to keep the connetion to player server > { r0.Read(); > } > return 0; > } > catch (PlayerCc::PlayerError e) > { > std::cerr << e << std::endl; > return -1; > } > } > .cfg file: > driver > ( > name "stage" > provides ["simulation:0"] > plugin "libstageplugin" > worldfile "total1.world" > ) > driver( name "stage" provides ["map:0" ] model "table" ) > # robot 0 > driver( > name "stage" > provides [ "position2d:0" "sonar:0" "laser:0" ] > model "r0" > ) > driver > ( > name "vfh" > provides ["position2d:1"] > requires ["position2d:0" "laser:0"] > distance_epsilon 0.3 > angle_epsilon 5 > ) > .world file > esolution 0.02 > interval_sim 100 > include "pioneer.inc" > include "map.inc" > include "sick.inc" > > size [40 20 ] > gui_disable 0 > gui_interval 100 > gui_menu_interval 20 > > window( > size [ 755.000 684.000 ] > center [-7.707 2.553] > scale 0.009 > ) > map( > bitmap "bitmaps/table.png" > map_resolution 0.02 > size [40 18] > name "table" > ) > #define p2dx pioneer2dx > ( > laser() > blobfinder() > fiducialfinder(range_max 8 range_max_id 5 ) > ) > p2dx > ( > name "r0" > pose [4.0 3.0 0] > color "blue" > ) > > Thank you very much! > Rebble > > syah-2 wrote: >> >> Hi, >> >> I have successfully done multiple robot having obstacle avoidance >> (using vfh) while going to a target location (goto). Another program >> is multiple robots aggregating (using blobs) without obstacle >> avoidance in a empty plane/settings. >> >> How can I combine these so that I can have multiple robots having >> obstacle avoidance (using vfh) but knows other robots (thus not >> avoiding them) ? Thank you for any help. Thanks.... >> >> my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 >> >> Kind regards, >> -syah- >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> challenge >> Build the coolest Linux based applications with Moblin SDK & win great >> prizes >> Grand prize is a trip for two to an Open Source event anywhere in the >> world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> Playerstage-users mailing list >> Pla...@li... >> https://lists.sourceforge.net/lists/listinfo/playerstage-users >> >> > > -- > View this message in context: http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22891384.html > Sent from the playerstage-users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > |
From: Rebble <hyy...@16...> - 2009-04-09 02:07:07
|
Hi syah: i have tried your codes, the problem still exists. But when i try the "nd" driver, it seems better though it still move to the exact position i want it to. But by subtracting the vector from initial position to destination, it almost can get it. And i also want to ask about the use of PowerProxy, which driver should i use to delare the power interface in the .cfg file? Thanks for your kindness. Rebble syah-2 wrote: > > Hi Rebble, > > Firstly, my specs are as follows: Player 2.0.5, Stage 2.0.4 > > This is the *test* code that I have tried. It may have a few errors (I > have not checked it), but the general structure is the same, I > think... > > Skimming your code, your robot (with vfh) should move - maybe its the > version you are using, but I am no expert in Player/Stage though. Hope > this helps. Thanks. > > regards, > -syah- > > > #include <stdio.h> > #include <math.h> > #include <libplayerc++/playerc++.h> > > using namespace PlayerCc; > > int main(int argc, char *argv[]) > { > > PlayerClient robot("localhost"); > Position2dProxy pos(&robot, 0); > Position2dProxy posSmart(&robot, 4); // Because have a few other > robots, index is higher > > pos.SetMotorEnable(true); // Not needed for simulation, but needed for > // real robots. > > double xtarget = 3.0; > double ytarget = 0.0; > double theta_target = 0.0; > double distance = hypot(xtarget - posSmart.GetXPos(), ytarget - > posSmart.GetYPos()); > > posSmart.GoTo(xtarget, ytarget, theta_target); > > while (distance > 0.0625 && !posSmart.GetStall()) { > robot.Read(); // Get the latest data from the server. > distance = hypot(xtarget - posSmart.GetXPos(), ytarget - > posSmart.GetYPos()); > } > > if (posSmart.GetStall()) { // If the wheels stopped turning ... > printf("Problem: robot motors have stalled.\n"); > } else { > printf("Robot has reached target.\n"); > } > > posSmart.SetSpeed(0, 0, 0); // Stop the robot > } > > > On Sun, Apr 5, 2009 at 9:03 AM, Rebble <hyy...@16...> wrote: >> >> Hi syah: >> Sorry to ask here, but i really want to know how you get the GoTo () in >> VFH worked. This is my simple test, but failed,could you please give me >> some >> hints? >> The following is my simple control codes and cfg file: >> #include <libplayerc++/playerc++.h> >> #include <libplayerc/playerc.h> >> #include <iostream> >> #include "args.h" >> using namespace PlayerCc >> PlayerClient r0("localhost",6665); >> Position2dProxy vfh(&r0,1); >> int main(int argc, char **argv) >> { >> parse_args(argc,argv); >> try{ >> player_pose2d_t target_pose; >> target_pose.px = -1; >> target_pose.py = 5; >> target_pose.pa = 0; >> //vfh.SetSpeed(0.2,0); >> vfh.GoTo(target_pose); >> vfh.SetMotorEnable(true); >> for(;;) //to keep the connetion to player server >> { r0.Read(); >> } >> return 0; >> } >> catch (PlayerCc::PlayerError e) >> { >> std::cerr << e << std::endl; >> return -1; >> } >> } >> .cfg file: >> driver >> ( >> name "stage" >> provides ["simulation:0"] >> plugin "libstageplugin" >> worldfile "total1.world" >> ) >> driver( name "stage" provides ["map:0" ] model "table" ) >> # robot 0 >> driver( >> name "stage" >> provides [ "position2d:0" "sonar:0" "laser:0" ] >> model "r0" >> ) >> driver >> ( >> name "vfh" >> provides ["position2d:1"] >> requires ["position2d:0" "laser:0"] >> distance_epsilon 0.3 >> angle_epsilon 5 >> ) >> .world file >> esolution 0.02 >> interval_sim 100 >> include "pioneer.inc" >> include "map.inc" >> include "sick.inc" >> >> size [40 20 ] >> gui_disable 0 >> gui_interval 100 >> gui_menu_interval 20 >> >> window( >> size [ 755.000 684.000 ] >> center [-7.707 2.553] >> scale 0.009 >> ) >> map( >> bitmap "bitmaps/table.png" >> map_resolution 0.02 >> size [40 18] >> name "table" >> ) >> #define p2dx pioneer2dx >> ( >> laser() >> blobfinder() >> fiducialfinder(range_max 8 range_max_id 5 ) >> ) >> p2dx >> ( >> name "r0" >> pose [4.0 3.0 0] >> color "blue" >> ) >> >> Thank you very much! >> Rebble >> >> syah-2 wrote: >>> >>> Hi, >>> >>> I have successfully done multiple robot having obstacle avoidance >>> (using vfh) while going to a target location (goto). Another program >>> is multiple robots aggregating (using blobs) without obstacle >>> avoidance in a empty plane/settings. >>> >>> How can I combine these so that I can have multiple robots having >>> obstacle avoidance (using vfh) but knows other robots (thus not >>> avoiding them) ? Thank you for any help. Thanks.... >>> >>> my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 >>> >>> Kind regards, >>> -syah- >>> >>> ------------------------------------------------------------------------- >>> This SF.Net email is sponsored by the Moblin Your Move Developer's >>> challenge >>> Build the coolest Linux based applications with Moblin SDK & win great >>> prizes >>> Grand prize is a trip for two to an Open Source event anywhere in the >>> world >>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >>> _______________________________________________ >>> Playerstage-users mailing list >>> Pla...@li... >>> https://lists.sourceforge.net/lists/listinfo/playerstage-users >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22891384.html >> Sent from the playerstage-users mailing list archive at Nabble.com. >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Playerstage-users mailing list >> Pla...@li... >> https://lists.sourceforge.net/lists/listinfo/playerstage-users >> > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > -- View this message in context: http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22963243.html Sent from the playerstage-users mailing list archive at Nabble.com. |
From: Toby C. <tco...@pl...> - 2009-04-07 19:58:59
|
Quick question, in your world file does you robot use odom or GPS mode to localise. If it is using odometry, then it is not an absolute reference. This could account for the difference in position. What does "playerprint position2d" report when the robot claims to have reached its goal. Toby 2009/4/8 syah <sy...@us...> > Hi Rebble, > > Firstly, my specs are as follows: Player 2.0.5, Stage 2.0.4 > > This is the *test* code that I have tried. It may have a few errors (I > have not checked it), but the general structure is the same, I > think... > > Skimming your code, your robot (with vfh) should move - maybe its the > version you are using, but I am no expert in Player/Stage though. Hope > this helps. Thanks. > > regards, > -syah- > > > #include <stdio.h> > #include <math.h> > #include <libplayerc++/playerc++.h> > > using namespace PlayerCc; > > int main(int argc, char *argv[]) > { > > PlayerClient robot("localhost"); > Position2dProxy pos(&robot, 0); > Position2dProxy posSmart(&robot, 4); // Because have a few other > robots, index is higher > > pos.SetMotorEnable(true); // Not needed for simulation, but needed > for > // real robots. > > double xtarget = 3.0; > double ytarget = 0.0; > double theta_target = 0.0; > double distance = hypot(xtarget - posSmart.GetXPos(), ytarget - > posSmart.GetYPos()); > > posSmart.GoTo(xtarget, ytarget, theta_target); > > while (distance > 0.0625 && !posSmart.GetStall()) { > robot.Read(); // Get the latest data from the server. > distance = hypot(xtarget - posSmart.GetXPos(), ytarget - > posSmart.GetYPos()); > } > > if (posSmart.GetStall()) { // If the wheels stopped turning ... > printf("Problem: robot motors have stalled.\n"); > } else { > printf("Robot has reached target.\n"); > } > > posSmart.SetSpeed(0, 0, 0); // Stop the robot > } > > > On Sun, Apr 5, 2009 at 9:03 AM, Rebble <hyy...@16...> wrote: > > > > Hi syah: > > Sorry to ask here, but i really want to know how you get the GoTo () in > > VFH worked. This is my simple test, but failed,could you please give me > some > > hints? > > The following is my simple control codes and cfg file: > > #include <libplayerc++/playerc++.h> > > #include <libplayerc/playerc.h> > > #include <iostream> > > #include "args.h" > > using namespace PlayerCc > > PlayerClient r0("localhost",6665); > > Position2dProxy vfh(&r0,1); > > int main(int argc, char **argv) > > { > > parse_args(argc,argv); > > try{ > > player_pose2d_t target_pose; > > target_pose.px = -1; > > target_pose.py = 5; > > target_pose.pa = 0; > > //vfh.SetSpeed(0.2,0); > > vfh.GoTo(target_pose); > > vfh.SetMotorEnable(true); > > for(;;) //to keep the connetion to player server > > { r0.Read(); > > } > > return 0; > > } > > catch (PlayerCc::PlayerError e) > > { > > std::cerr << e << std::endl; > > return -1; > > } > > } > > .cfg file: > > driver > > ( > > name "stage" > > provides ["simulation:0"] > > plugin "libstageplugin" > > worldfile "total1.world" > > ) > > driver( name "stage" provides ["map:0" ] model "table" ) > > # robot 0 > > driver( > > name "stage" > > provides [ "position2d:0" "sonar:0" "laser:0" ] > > model "r0" > > ) > > driver > > ( > > name "vfh" > > provides ["position2d:1"] > > requires ["position2d:0" "laser:0"] > > distance_epsilon 0.3 > > angle_epsilon 5 > > ) > > .world file > > esolution 0.02 > > interval_sim 100 > > include "pioneer.inc" > > include "map.inc" > > include "sick.inc" > > > > size [40 20 ] > > gui_disable 0 > > gui_interval 100 > > gui_menu_interval 20 > > > > window( > > size [ 755.000 684.000 ] > > center [-7.707 2.553] > > scale 0.009 > > ) > > map( > > bitmap "bitmaps/table.png" > > map_resolution 0.02 > > size [40 18] > > name "table" > > ) > > #define p2dx pioneer2dx > > ( > > laser() > > blobfinder() > > fiducialfinder(range_max 8 range_max_id 5 ) > > ) > > p2dx > > ( > > name "r0" > > pose [4.0 3.0 0] > > color "blue" > > ) > > > > Thank you very much! > > Rebble > > > > syah-2 wrote: > >> > >> Hi, > >> > >> I have successfully done multiple robot having obstacle avoidance > >> (using vfh) while going to a target location (goto). Another program > >> is multiple robots aggregating (using blobs) without obstacle > >> avoidance in a empty plane/settings. > >> > >> How can I combine these so that I can have multiple robots having > >> obstacle avoidance (using vfh) but knows other robots (thus not > >> avoiding them) ? Thank you for any help. Thanks.... > >> > >> my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 > >> > >> Kind regards, > >> -syah- > >> > >> > ------------------------------------------------------------------------- > >> This SF.Net email is sponsored by the Moblin Your Move Developer's > >> challenge > >> Build the coolest Linux based applications with Moblin SDK & win great > >> prizes > >> Grand prize is a trip for two to an Open Source event anywhere in the > >> world > >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ > >> _______________________________________________ > >> Playerstage-users mailing list > >> Pla...@li... > >> https://lists.sourceforge.net/lists/listinfo/playerstage-users > >> > >> > > > > -- > > View this message in context: > http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22891384.html > > Sent from the playerstage-users mailing list archive at Nabble.com. > > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Playerstage-users mailing list > > Pla...@li... > > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > -- This email is intended for the addressee only and may contain privileged and/or confidential information |
From: syah <sy...@us...> - 2009-04-08 11:55:15
|
Not sure if the question is for me.. Anyway, yes - it is not absolute reference, it is local to the robot (using odometry). That was what I was thinking for Rebble's problem of the coordinate that does not match, the local coordinate of the robot is not the same as the global map coordinate (as I've found out the hard way). Anyhow, Rebble's robot should've move (using the GoTo command) - but I'm not sure of Rebble's specific problem with it though. regards, -syah- On Tue, Apr 7, 2009 at 8:58 PM, Toby Collett <tco...@pl...> wrote: > Quick question, in your world file does you robot use odom or GPS mode to > localise. If it is using odometry, then it is not an absolute reference. > This could account for the difference in position. What does "playerprint > position2d" report when the robot claims to have reached its goal. > > Toby > > 2009/4/8 syah <sy...@us...> >> >> Hi Rebble, >> >> Firstly, my specs are as follows: Player 2.0.5, Stage 2.0.4 >> >> This is the *test* code that I have tried. It may have a few errors (I >> have not checked it), but the general structure is the same, I >> think... >> >> Skimming your code, your robot (with vfh) should move - maybe its the >> version you are using, but I am no expert in Player/Stage though. Hope >> this helps. Thanks. >> >> regards, >> -syah- >> >> >> #include <stdio.h> >> #include <math.h> >> #include <libplayerc++/playerc++.h> >> >> using namespace PlayerCc; >> >> int main(int argc, char *argv[]) >> { >> >> PlayerClient robot("localhost"); >> Position2dProxy pos(&robot, 0); >> Position2dProxy posSmart(&robot, 4); // Because have a few other >> robots, index is higher >> >> pos.SetMotorEnable(true); // Not needed for simulation, but needed >> for >> // real robots. >> >> double xtarget = 3.0; >> double ytarget = 0.0; >> double theta_target = 0.0; >> double distance = hypot(xtarget - posSmart.GetXPos(), ytarget - >> posSmart.GetYPos()); >> >> posSmart.GoTo(xtarget, ytarget, theta_target); >> >> while (distance > 0.0625 && !posSmart.GetStall()) { >> robot.Read(); // Get the latest data from the server. >> distance = hypot(xtarget - posSmart.GetXPos(), ytarget - >> posSmart.GetYPos()); >> } >> >> if (posSmart.GetStall()) { // If the wheels stopped turning ... >> printf("Problem: robot motors have stalled.\n"); >> } else { >> printf("Robot has reached target.\n"); >> } >> >> posSmart.SetSpeed(0, 0, 0); // Stop the robot >> } >> >> >> On Sun, Apr 5, 2009 at 9:03 AM, Rebble <hyy...@16...> wrote: >> > >> > Hi syah: >> > Sorry to ask here, but i really want to know how you get the GoTo () in >> > VFH worked. This is my simple test, but failed,could you please give me >> > some >> > hints? >> > The following is my simple control codes and cfg file: >> > #include <libplayerc++/playerc++.h> >> > #include <libplayerc/playerc.h> >> > #include <iostream> >> > #include "args.h" >> > using namespace PlayerCc >> > PlayerClient r0("localhost",6665); >> > Position2dProxy vfh(&r0,1); >> > int main(int argc, char **argv) >> > { >> > parse_args(argc,argv); >> > try{ >> > player_pose2d_t target_pose; >> > target_pose.px = -1; >> > target_pose.py = 5; >> > target_pose.pa = 0; >> > //vfh.SetSpeed(0.2,0); >> > vfh.GoTo(target_pose); >> > vfh.SetMotorEnable(true); >> > for(;;) //to keep the connetion to player server >> > { r0.Read(); >> > } >> > return 0; >> > } >> > catch (PlayerCc::PlayerError e) >> > { >> > std::cerr << e << std::endl; >> > return -1; >> > } >> > } >> > .cfg file: >> > driver >> > ( >> > name "stage" >> > provides ["simulation:0"] >> > plugin "libstageplugin" >> > worldfile "total1.world" >> > ) >> > driver( name "stage" provides ["map:0" ] model "table" ) >> > # robot 0 >> > driver( >> > name "stage" >> > provides [ "position2d:0" "sonar:0" "laser:0" ] >> > model "r0" >> > ) >> > driver >> > ( >> > name "vfh" >> > provides ["position2d:1"] >> > requires ["position2d:0" "laser:0"] >> > distance_epsilon 0.3 >> > angle_epsilon 5 >> > ) >> > .world file >> > esolution 0.02 >> > interval_sim 100 >> > include "pioneer.inc" >> > include "map.inc" >> > include "sick.inc" >> > >> > size [40 20 ] >> > gui_disable 0 >> > gui_interval 100 >> > gui_menu_interval 20 >> > >> > window( >> > size [ 755.000 684.000 ] >> > center [-7.707 2.553] >> > scale 0.009 >> > ) >> > map( >> > bitmap "bitmaps/table.png" >> > map_resolution 0.02 >> > size [40 18] >> > name "table" >> > ) >> > #define p2dx pioneer2dx >> > ( >> > laser() >> > blobfinder() >> > fiducialfinder(range_max 8 range_max_id 5 ) >> > ) >> > p2dx >> > ( >> > name "r0" >> > pose [4.0 3.0 0] >> > color "blue" >> > ) >> > >> > Thank you very much! >> > Rebble >> > >> > syah-2 wrote: >> >> >> >> Hi, >> >> >> >> I have successfully done multiple robot having obstacle avoidance >> >> (using vfh) while going to a target location (goto). Another program >> >> is multiple robots aggregating (using blobs) without obstacle >> >> avoidance in a empty plane/settings. >> >> >> >> How can I combine these so that I can have multiple robots having >> >> obstacle avoidance (using vfh) but knows other robots (thus not >> >> avoiding them) ? Thank you for any help. Thanks.... >> >> >> >> my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 >> >> >> >> Kind regards, >> >> -syah- >> >> >> >> >> >> ------------------------------------------------------------------------- >> >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> >> challenge >> >> Build the coolest Linux based applications with Moblin SDK & win great >> >> prizes >> >> Grand prize is a trip for two to an Open Source event anywhere in the >> >> world >> >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >> _______________________________________________ >> >> Playerstage-users mailing list >> >> Pla...@li... >> >> https://lists.sourceforge.net/lists/listinfo/playerstage-users >> >> >> >> >> > >> > -- >> > View this message in context: >> > http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22891384.html >> > Sent from the playerstage-users mailing list archive at Nabble.com. >> > >> > >> > >> > ------------------------------------------------------------------------------ >> > _______________________________________________ >> > Playerstage-users mailing list >> > Pla...@li... >> > https://lists.sourceforge.net/lists/listinfo/playerstage-users >> > >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> High Quality Requirements in a Collaborative Environment. >> Download a free trial of Rational Requirements Composer Now! >> http://p.sf.net/sfu/www-ibm-com >> _______________________________________________ >> Playerstage-users mailing list >> Pla...@li... >> https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > > -- > This email is intended for the addressee only and may contain privileged > and/or confidential information > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > |
From: Rebble <hyy...@16...> - 2009-04-09 02:17:29
|
Hello Toby: i don't use odom or GPS in my file.the playerprint posidion2d report "at goal" when the robot claims to reach the goal. Also after running ,it always shows :warning : other error on client 0. What's the reason? Thank you! Rebble Toby Collett-3 wrote: > > Quick question, in your world file does you robot use odom or GPS mode to > localise. If it is using odometry, then it is not an absolute reference. > This could account for the difference in position. What does "playerprint > position2d" report when the robot claims to have reached its goal. > > Toby > > 2009/4/8 syah <sy...@us...> > >> Hi Rebble, >> >> Firstly, my specs are as follows: Player 2.0.5, Stage 2.0.4 >> >> This is the *test* code that I have tried. It may have a few errors (I >> have not checked it), but the general structure is the same, I >> think... >> >> Skimming your code, your robot (with vfh) should move - maybe its the >> version you are using, but I am no expert in Player/Stage though. Hope >> this helps. Thanks. >> >> regards, >> -syah- >> >> >> #include <stdio.h> >> #include <math.h> >> #include <libplayerc++/playerc++.h> >> >> using namespace PlayerCc; >> >> int main(int argc, char *argv[]) >> { >> >> PlayerClient robot("localhost"); >> Position2dProxy pos(&robot, 0); >> Position2dProxy posSmart(&robot, 4); // Because have a few other >> robots, index is higher >> >> pos.SetMotorEnable(true); // Not needed for simulation, but needed >> for >> // real robots. >> >> double xtarget = 3.0; >> double ytarget = 0.0; >> double theta_target = 0.0; >> double distance = hypot(xtarget - posSmart.GetXPos(), ytarget - >> posSmart.GetYPos()); >> >> posSmart.GoTo(xtarget, ytarget, theta_target); >> >> while (distance > 0.0625 && !posSmart.GetStall()) { >> robot.Read(); // Get the latest data from the server. >> distance = hypot(xtarget - posSmart.GetXPos(), ytarget - >> posSmart.GetYPos()); >> } >> >> if (posSmart.GetStall()) { // If the wheels stopped turning ... >> printf("Problem: robot motors have stalled.\n"); >> } else { >> printf("Robot has reached target.\n"); >> } >> >> posSmart.SetSpeed(0, 0, 0); // Stop the robot >> } >> >> >> On Sun, Apr 5, 2009 at 9:03 AM, Rebble <hyy...@16...> wrote: >> > >> > Hi syah: >> > Sorry to ask here, but i really want to know how you get the GoTo () >> in >> > VFH worked. This is my simple test, but failed,could you please give me >> some >> > hints? >> > The following is my simple control codes and cfg file: >> > #include <libplayerc++/playerc++.h> >> > #include <libplayerc/playerc.h> >> > #include <iostream> >> > #include "args.h" >> > using namespace PlayerCc >> > PlayerClient r0("localhost",6665); >> > Position2dProxy vfh(&r0,1); >> > int main(int argc, char **argv) >> > { >> > parse_args(argc,argv); >> > try{ >> > player_pose2d_t target_pose; >> > target_pose.px = -1; >> > target_pose.py = 5; >> > target_pose.pa = 0; >> > //vfh.SetSpeed(0.2,0); >> > vfh.GoTo(target_pose); >> > vfh.SetMotorEnable(true); >> > for(;;) //to keep the connetion to player server >> > { r0.Read(); >> > } >> > return 0; >> > } >> > catch (PlayerCc::PlayerError e) >> > { >> > std::cerr << e << std::endl; >> > return -1; >> > } >> > } >> > .cfg file: >> > driver >> > ( >> > name "stage" >> > provides ["simulation:0"] >> > plugin "libstageplugin" >> > worldfile "total1.world" >> > ) >> > driver( name "stage" provides ["map:0" ] model "table" ) >> > # robot 0 >> > driver( >> > name "stage" >> > provides [ "position2d:0" "sonar:0" "laser:0" ] >> > model "r0" >> > ) >> > driver >> > ( >> > name "vfh" >> > provides ["position2d:1"] >> > requires ["position2d:0" "laser:0"] >> > distance_epsilon 0.3 >> > angle_epsilon 5 >> > ) >> > .world file >> > esolution 0.02 >> > interval_sim 100 >> > include "pioneer.inc" >> > include "map.inc" >> > include "sick.inc" >> > >> > size [40 20 ] >> > gui_disable 0 >> > gui_interval 100 >> > gui_menu_interval 20 >> > >> > window( >> > size [ 755.000 684.000 ] >> > center [-7.707 2.553] >> > scale 0.009 >> > ) >> > map( >> > bitmap "bitmaps/table.png" >> > map_resolution 0.02 >> > size [40 18] >> > name "table" >> > ) >> > #define p2dx pioneer2dx >> > ( >> > laser() >> > blobfinder() >> > fiducialfinder(range_max 8 range_max_id 5 ) >> > ) >> > p2dx >> > ( >> > name "r0" >> > pose [4.0 3.0 0] >> > color "blue" >> > ) >> > >> > Thank you very much! >> > Rebble >> > >> > syah-2 wrote: >> >> >> >> Hi, >> >> >> >> I have successfully done multiple robot having obstacle avoidance >> >> (using vfh) while going to a target location (goto). Another program >> >> is multiple robots aggregating (using blobs) without obstacle >> >> avoidance in a empty plane/settings. >> >> >> >> How can I combine these so that I can have multiple robots having >> >> obstacle avoidance (using vfh) but knows other robots (thus not >> >> avoiding them) ? Thank you for any help. Thanks.... >> >> >> >> my specs: Player 2.0.5, Stage 2.0.4, Linux Fedora Core 4 >> >> >> >> Kind regards, >> >> -syah- >> >> >> >> >> ------------------------------------------------------------------------- >> >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> >> challenge >> >> Build the coolest Linux based applications with Moblin SDK & win great >> >> prizes >> >> Grand prize is a trip for two to an Open Source event anywhere in the >> >> world >> >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> >> _______________________________________________ >> >> Playerstage-users mailing list >> >> Pla...@li... >> >> https://lists.sourceforge.net/lists/listinfo/playerstage-users >> >> >> >> >> > >> > -- >> > View this message in context: >> http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22891384.html >> > Sent from the playerstage-users mailing list archive at Nabble.com. >> > >> > >> > >> ------------------------------------------------------------------------------ >> > _______________________________________________ >> > Playerstage-users mailing list >> > Pla...@li... >> > https://lists.sourceforge.net/lists/listinfo/playerstage-users >> > >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> High Quality Requirements in a Collaborative Environment. >> Download a free trial of Rational Requirements Composer Now! >> http://p.sf.net/sfu/www-ibm-com >> _______________________________________________ >> Playerstage-users mailing list >> Pla...@li... >> https://lists.sourceforge.net/lists/listinfo/playerstage-users >> > > > > -- > This email is intended for the addressee only and may contain privileged > and/or confidential information > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > -- View this message in context: http://www.nabble.com/differentiate-between-other-robots---obstacles...-tp18741344p22963330.html Sent from the playerstage-users mailing list archive at Nabble.com. |