From H.Miri at 2007.hull.ac.uk Sun May 1 06:39:35 2011 From: H.Miri at 2007.hull.ac.uk (Hossein Miri) Date: Sun, 1 May 2011 11:39:35 +0100 Subject: [Aria-users] Running two robots in MobileSime (Pioneer the main - Amigo just wandering) Message-ID: <445800D8FD5D3D43878FD7D2842A304701AB4ADF@EXCL2VS2.adir.hull.ac.uk> Could someone please help me find the problem in my code? I am trying to run two robots in MobileSim - one Pioneer (called robot) and one Amigo (called amigo). I have used the twoRobotWander example to modify my own program, but it fails to run, with no particular error message. It just says: The program has exited with code 0 (0x0) ----------- .cpp file ----------- int main( int argc, char** argv ) { Aria::init(); ArArgumentParser argParser( &argc, argv ); char* host1 = argParser.checkParameterArgument( "-rh1" ); if( !host1 ) host1 = "localhost"; char* host2 = argParser.checkParameterArgument( "-rh2" ); if( !host2 ) host2 = "localhost"; int port1 = 8101; int port2 = 8101; if( strcmp( host1, host2 ) == 0 ) { port2++; } bool argSet = false; argParser.checkParameterArgumentInteger( "-rp1", &port1, &argSet ); if( !argSet ) argParser.checkParameterArgumentInteger( "-rrtp1", &port1 ); argSet = false; argParser.checkParameterArgumentInteger( "-rp2", &port2, &argSet ); if( !argSet ) argParser.checkParameterArgumentInteger( "-rrtp2", &port2 ); if( !argParser.checkHelpAndWarnUnparsed() ) { ArLog::log(ArLog::Terse, "Usage: twoRobotWander [-rh1 ] [-rh2 ] [-rp1 ] [-rp2 ]\n"\ "\t Is the network host name of the first robot."\ " Default is localhost (for the simulator).\n"\ "\t Is the network host name of the second robot."\ " Default is localhost (for the simulator).\n"\ "\t Is the TCP port number of the first robot. Default is 8101.\n"\ "\t Is the TCP port number of the second robot. Default is 8102 if"\ " both robots have the same hostname, or 8101 if they differ.\n\n"); return 1; } ArTcpConnection robotcon; ArTcpConnection amigocon; ArRobot robot; // robot is my P3-DX ArRobot amigo; // amigo is my Amigo ArSonarDevice sonar; robot.addRangeDevice( &sonar ); robot.setDeviceConnection( &robotcon ); ArSonarDevice amigosonar; amigo.addRangeDevice( &amigosonar ); amigo.setDeviceConnection( &amigocon ); ArActionStallRecover recoverAct; ArActionAvoidFront avoidFrontNearAct( "Avoid Front Near", 200, 0 ); ArActionAvoidFront avoidFrontFarAct; ArActionConstantVelocity constantVelocityAct( "Constant Velocity", 200 ); UserTask talk( &robot ); ArActionStallRecover amigorecoverAct; ArActionAvoidFront amigoavoidFrontNearAct( "Avoid Front Near", 200, 0 ); ArActionAvoidFront amigoavoidFrontFarAct; ArActionConstantVelocity amigoconstantVelocityAct( "Constant Velocity", 200 ); robot.addAction( &recoverAct, 90 ); robot.addAction( &avoidFrontNearAct, 50 ); robot.addAction( &avoidFrontFarAct, 30 ); robot.addAction( &constantVelocityAct, 20 ); robot.enableMotors(); amigo.addAction( &amigorecoverAct, 90 ); amigo.addAction( &amigoavoidFrontNearAct, 50 ); amigo.addAction( &amigoavoidFrontFarAct, 30 ); amigo.addAction( &amigoconstantVelocityAct, 20 ); amigo.enableMotors(); robot.runAsync( true ); amigo.runAsync( true ); robot.waitForRunExit(); amigo.waitForRunExit(); Aria::exit( 0 ); } //////////////////////// This obviously comes before the main program //////////////////////// //////////////////////// I have put it down here so that it doesn't //////////////////////// //////////////////////// make the main program look complicated //////////////////////// UserTask::UserTask( ArRobot* r ) : robot( r ), robotTaskFunc( this, &UserTask::Talk ) { aria_cycles = 0; robot->addSensorInterpTask( "UserTask", 50, &robotTaskFunc ); } UserTask::~UserTask() { robot->remSensorInterpTask( &robotTaskFunc ); } void UserTask::Talk() { if ( lastLogTime.mSecSince() >= 1000 ) { aria_cycles++; cout << "\n" << aria_cycles; int i, numSonar; numSonar = robot->getNumSonar(); double sonar_range, sonar_angle; for( i = 0; i < numSonar; i++ ) { sonar_range = double( robot->getSonarRange( i ) ); sonar_angle = double( robot->getSonarReading( i )->getSensorTh() ); } double x, y, th, range, angle; x = robot->getX(); y = robot->getY(); th = robot->getTh(); range = ( robot->checkRangeDevicesCurrentPolar( -179, 179, &angle ) - robot->getRobotRadius() ); cout << " range: " << range; ofstream SaveFile( "reactive_feedback.pl" ); SaveFile << aria_cycles << ".\n" << x << ".\n" << y << ".\n" << th << ".\n" << range << ".\n" << angle << ".\n"; SaveFile.close(); lastLogTime.setToNow(); } } --------------------------------- ----------- .h file ----------- class UserTask { public: UserTask( ArRobot* r ); ~UserTask(); void Talk(); protected: int aria_cycles; ArRobot* robot; ArTime lastLogTime; ArFunctorC robotTaskFunc; }; --------------------------------- . -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110501/b5204369/attachment-0001.html -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: not available Url: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110501/b5204369/attachment-0001.ksh From Reed.Hedges at Adept.com Mon May 2 13:28:33 2011 From: Reed.Hedges at Adept.com (Reed Hedges) Date: Mon, 2 May 2011 10:28:33 -0700 Subject: [Aria-users] adding the GoalBlockedCB some issues In-Reply-To: <340791ED1D7442D9BE343A673535AE47@rmail.ucr.edu> References: <340791ED1D7442D9BE343A673535AE47@rmail.ucr.edu> Message-ID: <38B0EB303E4E804F8A93B5CFA8FFF15F02CC194228@SRV-APP-6.adept.local> What exactly is error C2259? blockedfun() should have const std::list* as an argument. I will look into this more but the blocked path callback may be part of the global replanning feature, which requires the program to have created an ArGlobalReplanningRangeDevice object connected to the path planning task. Reed- From: aria-users-bounces at lists.mobilerobots.com [mailto:aria-users-bounces at lists.mobilerobots.com] On Behalf Of School Sent: Friday, April 29, 2011 1:35 AM To: ariausers Subject: [Aria-users] adding the GoalBlockedCB some issues The questions: 1) What is the difference between addBlockedPathCB and addPlainBlockedPathCB? 2) When does the robot call the blocked path call back? 3) I am having trouble adding the addBlockedPathCB, can you help me? Background: 1) none 2) I have added the addPlainBlockedPathCB. If i tell the robot to move to a point and temporarily block the path, nothing happens .I would have expected the addPlainBlockedPathCB to be called because it has to replan a path. I have also tried to completely block the target location, but that calls the goal failed CB. 3) Down below is how i added PlainBlockedPathCB and BlockedPathCB. if i remove the lines (1-3)### lines, the build compiles. But my PlainBlockedPathCB does nothing. If i add the 1### line, the build compiles. once I add 2### i receive error C2259. But to my understanding line 3### should be the next thing to do. ---This is not the code but rather the set of lines i need, to my understanding, to make it work. Additional information can be given if necessary. (in A.h) Class A{ A(ArPathPlanningTask *path); ArPathPlanningTask *aPath; ArFunctor1C(A, const std::list *> myfunctor; //1### ArFunctorC myPlainFunctor; blockedfun(); blockedfun2(); }; (in A.cpp) A::A(ArPathPlanningTask *path): myfunctor(this, &A::blockedfun), //2### myPlainFunctor(this,&A::blockedfun2) { aPath = path; aPath->addBlockedPathCB(&myfunctor); //3### aPath->addPlainBlockedPathCB(&myPlainFunctor); } A::blockedfun(){ cout << "I am blocked!!!" << endl;} A::blockedfun2(){cout << "In Blocked 2---" << endl;} The Error: C2664 'ArFunctor1C::ArFunctor1C(T &, void (_thiscall A::* )(PA))': cannot convert parameter 1 from 'A *const ' to 'A &' with [ T = A, P1 = const std::list * ] Thank you Angello Pozo -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110502/92604aef/attachment.html From angello.pozo at email.ucr.edu Mon May 2 17:15:12 2011 From: angello.pozo at email.ucr.edu (School) Date: Mon, 2 May 2011 14:15:12 -0700 Subject: [Aria-users] adding the GoalBlockedCB some issues In-Reply-To: <38B0EB303E4E804F8A93B5CFA8FFF15F02CC194228@SRV-APP-6.adept.local> References: <340791ED1D7442D9BE343A673535AE47@rmail.ucr.edu> <38B0EB303E4E804F8A93B5CFA8FFF15F02CC194228@SRV-APP-6.adept.local> Message-ID: <1EB2B9F4AA554AE783B10361CB894E94@rmail.ucr.edu> System we have: (forgot to add this last time) People Bot running windows XP Aria 1.7.2 VisualC++ 2008 Express Edition New Information: The written error number was correct, I made the mistake of linking to the wrong page. I added the list ArPose to the blockedfun function and that removed the error. Additionally, I added the ArGlobalReplanningRangeDevice class in main. New Status: The code will compile with the changes i made shown below. But testing BlockedPath or PlainBlocked Path individually, does not work when i force the robot to replan its path. I force the replan by allowing the robot to start to move. I then place myself in its path. Then I allow the robot continue around me. On the console i expected to see my cout, but nothing is shown. Clarification: The plaingoalblocked and goalblocked should be called when the robot replans its path correct? [Changes to the example code are below] > (in A.h) > > Class A{ > > A(ArPathPlanningTask *path); > > ArPathPlanningTask *aPath; > > ArFunctor1C(A, const std::list *> myfunctor; > > ArFunctorC myPlainFunctor; > > blockedfun(const std::list * newlist); > > > > > > > > PlainBlockedfun(); > > }; > > > > (in A.cpp) > > A::A(ArPathPlanningTask *path): > > myfunctor(this, &A::blockedfun), > > myPlainFunctor(this,&A::PlainBlockedfun) > > > > > > > > > { > > aPath = path; > > aPath->addBlockedPathCB(&myfunctor); > > aPath->addPlainBlockedPathCB(&myPlainFunctor,50); > > } > > > > A::blockedfun(const std::list * newlist){cout << "I am blocked!!!" << endl;} > > > > > > > > > > A::PlainBlockedfun(){cout << "In Plain Blocked ---" << endl;} > > > > > > > On Monday, May 2, 2011 at 10:28 AM, Reed Hedges wrote: > > What exactly is error C2259? blockedfun() should have const std::list* as an argument. > > > I will look into this more but the blocked path callback may be part of the global replanning feature, which requires the program to have created an ArGlobalReplanningRangeDevice object connected to the path planning task. > > Reed- > > > > From: aria-users-bounces at lists.mobilerobots.com [mailto:aria-users-bounces at lists.mobilerobots.com] On Behalf Of School > Sent: Friday, April 29, 2011 1:35 AM > To: ariausers > Subject: [Aria-users] adding the GoalBlockedCB some issues > > The questions: > > 1) What is the difference between addBlockedPathCB and addPlainBlockedPathCB? > > 2) When does the robot call the blocked path call back? > > 3) I am having trouble adding the addBlockedPathCB, can you help me? > > > > > > Background: > > 1) none > > 2) I have added the addPlainBlockedPathCB. If i tell the robot to move to a point and temporarily block the path, nothing happens .I would have expected the addPlainBlockedPathCB to be called because it has to replan a path. I have also tried to completely block the target location, but that calls the goal failed CB. > > 3) Down below is how i added PlainBlockedPathCB and BlockedPathCB. if i remove the lines (1-3)### lines, the build compiles. But my PlainBlockedPathCB does nothing. If i add the 1### line, the build compiles. once I add 2### i receive error C2259. But to my understanding line 3### should be the next thing to do. > > ---This is not the code but rather the set of lines i need, to my understanding, to make it work. Additional information can be given if necessary. > > > > (in A.h) > > Class A{ > > A(ArPathPlanningTask *path); > > ArPathPlanningTask *aPath; > > ArFunctor1C(A, const std::list *> myfunctor; //1### > > ArFunctorC myPlainFunctor; > > blockedfun(); > > blockedfun2(); > > }; > > > > (in A.cpp) > > A::A(ArPathPlanningTask *path): > > myfunctor(this, &A::blockedfun), //2### > > myPlainFunctor(this,&A::blockedfun2) > > { > > aPath = path; > > aPath->addBlockedPathCB(&myfunctor); //3### > > aPath->addPlainBlockedPathCB(&myPlainFunctor); > > } > > > > A::blockedfun(){ cout << "I am blocked!!!" << endl;} > > A::blockedfun2(){cout << "In Blocked 2---" << endl;} > > > > > > > > The Error: C2664 > > 'ArFunctor1C::ArFunctor1C(T &, void (_thiscall A::* )(PA))': > > cannot convert parameter 1 from 'A *const ' to 'A &' > > with > > [ > > T = A, > > P1 = const std::list * > > ] > > > > > > Thank you > > Angello Pozo > > > > > > > > > _______________________________________________ > Aria-users mailing list > Aria-users at lists.mobilerobots.com > http://lists.mobilerobots.com/mailman/listinfo/aria-users > > To unsubscribe visit the above webpage or send an e-mail to: > > aria-users-leave at lists.mobilerobots.com > > Visit http://robots.mobilerobots.com for information including documentation, FAQ, tips, manuals, and software, firmware and driver downloads. > > Mailing list archives are at http://lists.mobilerobots.com/ > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110502/62e46267/attachment-0001.html From Reed.Hedges at Adept.com Tue May 3 10:10:04 2011 From: Reed.Hedges at Adept.com (Reed Hedges) Date: Tue, 3 May 2011 07:10:04 -0700 Subject: [Aria-users] adding the GoalBlockedCB some issues In-Reply-To: <1EB2B9F4AA554AE783B10361CB894E94@rmail.ucr.edu> References: <340791ED1D7442D9BE343A673535AE47@rmail.ucr.edu> <38B0EB303E4E804F8A93B5CFA8FFF15F02CC194228@SRV-APP-6.adept.local> <1EB2B9F4AA554AE783B10361CB894E94@rmail.ucr.edu> Message-ID: <38B0EB303E4E804F8A93B5CFA8FFF15F02CC194364@SRV-APP-6.adept.local> Global replanning only happens if the robot is unable to modify its initial path to get around an obstacle. I have not looked too deeply into exactly when the callback happens but you can try a test like this (I will try it later): Find an area with several rooms with doors, such that there are two ways to travel from one room or area to another, one of which goes through the doors. Make sure the doors are open during mapping (or erase them in Mapper3). Make sure the robot can?t see the closed door with the laser, and have it plan a path that requires it to go through a door. However, close the door. It should enter the room with the closed door, detect the blocked door with the laser, and need to make a new global path down a different route, such as through an adjacent hallway. Again, I think this may trigger the callback but am not certain yet, I will double check and let you know (and try to document this better). Reed From: aria-users-bounces at lists.mobilerobots.com [mailto:aria-users-bounces at lists.mobilerobots.com] On Behalf Of School Sent: Monday, May 02, 2011 5:15 PM To: ariausers Subject: Re: [Aria-users] adding the GoalBlockedCB some issues System we have: (forgot to add this last time) People Bot running windows XP Aria 1.7.2 VisualC++ 2008 Express Edition New Information: The written error number was correct, I made the mistake of linking to the wrong page. I added the list ArPose to the blockedfun function and that removed the error. Additionally, I added the ArGlobalReplanningRangeDevice class in main. New Status: The code will compile with the changes i made shown below. But testing BlockedPath or PlainBlocked Path individually, does not work when i force the robot to replan its path. I force the replan by allowing the robot to start to move. I then place myself in its path. Then I allow the robot continue around me. On the console i expected to see my cout, but nothing is shown. Clarification: The plaingoalblocked and goalblocked should be called when the robot replans its path correct? [Changes to the example code are below] (in A.h) Class A{ A(ArPathPlanningTask *path); ArPathPlanningTask *aPath; ArFunctor1C(A, const std::list *> myfunctor; ArFunctorC myPlainFunctor; blockedfun(const std::list * newlist); PlainBlockedfun(); }; (in A.cpp) A::A(ArPathPlanningTask *path): myfunctor(this, &A::blockedfun), myPlainFunctor(this,&A::PlainBlockedfun) { aPath = path; aPath->addBlockedPathCB(&myfunctor); aPath->addPlainBlockedPathCB(&myPlainFunctor,50); } A::blockedfun(const std::list * newlist){cout << "I am blocked!!!" << endl;} A::PlainBlockedfun(){cout << "In Plain Blocked ---" << endl;} On Monday, May 2, 2011 at 10:28 AM, Reed Hedges wrote: What exactly is error C2259? blockedfun() should have const std::list* as an argument. I will look into this more but the blocked path callback may be part of the global replanning feature, which requires the program to have created an ArGlobalReplanningRangeDevice object connected to the path planning task. Reed- From: aria-users-bounces at lists.mobilerobots.com [mailto:aria-users-bounces at lists.mobilerobots.com] On Behalf Of School Sent: Friday, April 29, 2011 1:35 AM To: ariausers Subject: [Aria-users] adding the GoalBlockedCB some issues The questions: 1) What is the difference between addBlockedPathCB and addPlainBlockedPathCB? 2) When does the robot call the blocked path call back? 3) I am having trouble adding the addBlockedPathCB, can you help me? Background: 1) none 2) I have added the addPlainBlockedPathCB. If i tell the robot to move to a point and temporarily block the path, nothing happens .I would have expected the addPlainBlockedPathCB to be called because it has to replan a path. I have also tried to completely block the target location, but that calls the goal failed CB. 3) Down below is how i added PlainBlockedPathCB and BlockedPathCB. if i remove the lines (1-3)### lines, the build compiles. But my PlainBlockedPathCB does nothing. If i add the 1### line, the build compiles. once I add 2### i receive error C2259. But to my understanding line 3### should be the next thing to do. ---This is not the code but rather the set of lines i need, to my understanding, to make it work. Additional information can be given if necessary. (in A.h) Class A{ A(ArPathPlanningTask *path); ArPathPlanningTask *aPath; ArFunctor1C(A, const std::list *> myfunctor; //1### ArFunctorC myPlainFunctor; blockedfun(); blockedfun2(); }; (in A.cpp) A::A(ArPathPlanningTask *path): myfunctor(this, &A::blockedfun), //2### myPlainFunctor(this,&A::blockedfun2) { aPath = path; aPath->addBlockedPathCB(&myfunctor); //3### aPath->addPlainBlockedPathCB(&myPlainFunctor); } A::blockedfun(){ cout << "I am blocked!!!" << endl;} A::blockedfun2(){cout << "In Blocked 2---" << endl;} The Error: C2664 'ArFunctor1C::ArFunctor1C(T &, void (_thiscall A::* )(PA))': cannot convert parameter 1 from 'A *const ' to 'A &' with [ T = A, P1 = const std::list * ] Thank you Angello Pozo _______________________________________________ Aria-users mailing list Aria-users at lists.mobilerobots.com http://lists.mobilerobots.com/mailman/listinfo/aria-users To unsubscribe visit the above webpage or send an e-mail to: aria-users-leave at lists.mobilerobots.com Visit http://robots.mobilerobots.com for information including documentation, FAQ, tips, manuals, and software, firmware and driver downloads. Mailing list archives are at http://lists.mobilerobots.com/ -------------- next part -------------- A non-text attachment was scrubbed... Name: winmail.dat Type: application/ms-tnef Size: 19518 bytes Desc: not available Url : http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110503/fdb5325a/attachment-0001.bin From RHARLAN at sbu.edu Wed May 4 16:31:20 2011 From: RHARLAN at sbu.edu (Harlan, Robert) Date: Wed, 4 May 2011 16:31:20 -0400 Subject: [Aria-users] Remote access to camera video Message-ID: We have PeopleBot model PB-V2. We are able to display the video feed from the camera in a X-windows window. The problem is that X-windows must be run directly on the onboard PC on the robot to view the feed. What options are available for viewing the camera video output remotely? Does the robot have video streaming capabilities that can be consumed by either a custom client or one that is already provided? ***************************************** * Robert M. Harlan, Ph.D. * Professor of Computer Science * Department of Computer Science * St. Bonaventure University * St. Bonaventure, NY 14778 * Office: Walsh 111 * Email * Web Page * 716.375.2019 ***************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110504/847e64b9/attachment.html From Zeb.Dahl at Adept.com Wed May 4 16:43:43 2011 From: Zeb.Dahl at Adept.com (Zeb Dahl) Date: Wed, 4 May 2011 13:43:43 -0700 Subject: [Aria-users] Remote access to camera video In-Reply-To: References: Message-ID: <38B0EB303E4E804F8A93B5CFA8FFF15F02CC1946A6@SRV-APP-6.adept.local> Hello Robert, We have a program called SAV which can be used to remotely view video from the camera. http://robots.mobilerobots.com/wiki/SAV Acts also has a server built in which can be used to serve the SAVclient program. Zeb Dahl Research Robot Support Adept MobileRobots support at mobilerobots.com From: aria-users-bounces at lists.mobilerobots.com [mailto:aria-users-bounces at lists.mobilerobots.com] On Behalf Of Harlan, Robert Sent: Wednesday, May 04, 2011 4:31 PM To: ariausers Subject: [Aria-users] Remote access to camera video We have PeopleBot model PB-V2. We are able to display the video feed from the camera in a X-windows window. The problem is that X-windows must be run directly on the onboard PC on the robot to view the feed. What options are available for viewing the camera video output remotely? Does the robot have video streaming capabilities that can be consumed by either a custom client or one that is already provided? ***************************************** * Robert M. Harlan, Ph.D. * Professor of Computer Science * Department of Computer Science * St. Bonaventure University * St. Bonaventure, NY 14778 * Office: Walsh 111 * Email * Web Page * 716.375.2019 ***************************************** -------------- next part -------------- A non-text attachment was scrubbed... Name: winmail.dat Type: application/ms-tnef Size: 10866 bytes Desc: not available Url : http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110504/148d6ea0/attachment.bin From H.Miri at 2007.hull.ac.uk Fri May 6 05:55:17 2011 From: H.Miri at 2007.hull.ac.uk (Hossein Miri) Date: Fri, 6 May 2011 10:55:17 +0100 Subject: [Aria-users] Running two robots in MobileSim without switching between them Message-ID: <445800D8FD5D3D43878FD7D2842A304701AB4AE4@EXCL2VS2.adir.hull.ac.uk> Can someone please help me understand why commenting out the bit at the end (curRobot = 1) that alternates between the two robots causes a crash (disconnection from the robots) ? I am trying to get them both running without switching from one to another, and that is the only bit that seems to be doing the swap. How do I keep them both running in MobileSim? int main( int argc, char** argv ) { int ret, curRobot; string str; ArArgumentParser argParser( &argc, argv ); char* host1 = argParser.checkParameterArgument( "-rh1" ); if( !host1 ) host1 = "localhost"; char* host2 = argParser.checkParameterArgument( "-rh2" ); if( !host2 ) host2 = "localhost"; int port1 = 8101; int port2 = 8101; if( strcmp( host1, host2 ) == 0 ) { port2++; } bool argSet = false; argParser.checkParameterArgumentInteger( "-rp1", &port1, &argSet ); if( !argSet ) argParser.checkParameterArgumentInteger( "-rrtp1", &port1 ); argSet = false; argParser.checkParameterArgumentInteger( "-rp2", &port2, &argSet ); if( !argSet ) argParser.checkParameterArgumentInteger( "-rrtp2", &port2 ); ArTcpConnection robotcon; ArTcpConnection amigocon; ArRobot robot; // Robot 1 ArRobot amigo; // Robot 2 ArSonarDevice robotsonar; ArSonarDevice amigosonar; ArActionStallRecover recoverAct; ArActionAvoidFront avoidFrontNearAct( "Avoid Front Near", 200, 0 ); ArActionAvoidFront avoidFrontFarAct; ArActionConstantVelocity constantVelocityAct( "Constant Velocity", 200 ); ArActionStallRecover amigorecoverAct; ArActionAvoidFront amigoavoidFrontNearAct( "Avoid Front Near", 200, 0 ); ArActionAvoidFront amigoavoidFrontFarAct; ArActionConstantVelocity amigoconstantVelocityAct( "Constant Velocity", 200 ); Aria::init(); ArLog::log( ArLog::Normal, "Connecting to first robot at %s:%d...", host1, port1 ); if ( ( ret = robotcon.open( host1, port1 ) ) != 0 ) { str = robotcon.getOpenMessage( ret ); printf( "Open failed to robot 1: %s\n", str.c_str() ); Aria::shutdown(); return 1; } robot.addRangeDevice( &robotsonar ); robot.setDeviceConnection( &robotcon ); if ( !robot.blockingConnect() ) { printf( "Could not connect to robot 1... exiting\n" ); Aria::shutdown(); return 1; } robot.comInt( ArCommands::ENABLE, 1 ); robot.addAction( &recoverAct, 90 ); robot.addAction( &avoidFrontNearAct, 50 ); robot.addAction( &avoidFrontFarAct, 30 ); robot.addAction( &constantVelocityAct, 20 ); ArLog::log( ArLog::Normal, "Connecting to second robot at %s:%d...", host2, port2 ); if ( ( ret = amigocon.open( host2, port2 ) ) != 0 ) { str = amigocon.getOpenMessage( ret ); printf( "Open failed to robot 2: %s\n", str.c_str() ); Aria::shutdown(); return 1; } amigo.addRangeDevice( &amigosonar ); amigo.setDeviceConnection( &amigocon ); if ( !amigo.blockingConnect() ) { printf( "Could not connect to robot 2... exiting\n" ); Aria::shutdown(); return 1; } amigo.comInt( ArCommands::ENABLE, 1 ); amigo.addAction( &amigorecoverAct, 90 ); amigo.addAction( &amigoavoidFrontNearAct, 50 ); amigo.addAction( &amigoavoidFrontFarAct, 30 ); amigo.addAction( &amigoconstantVelocityAct, 20 ); robot.runAsync( true ); amigo.runAsync( true ); curRobot = 1; while ( robot.isRunning() && amigo.isRunning() ) { ArUtil::sleep( 10000 ); if ( curRobot == 1 ) { robot.stop(); amigo.clearDirectMotion(); curRobot = 2; } else { amigo.stop(); robot.clearDirectMotion(); curRobot = 1; } } Aria::shutdown(); return 0; } . -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110506/a41fbb60/attachment-0001.html -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: not available Url: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110506/a41fbb60/attachment-0001.ksh From Reed.Hedges at Adept.com Tue May 10 19:01:26 2011 From: Reed.Hedges at Adept.com (Reed Hedges) Date: Tue, 10 May 2011 16:01:26 -0700 Subject: [Aria-users] Adept MobileRobots is at ICRA Message-ID: <38B0EB303E4E804F8A93B5CFA8FFF15F02CDCB28E1@SRV-APP-6.adept.local> Adept MobileRobots is at ICRA in Shanghai! If you are here, \come visit our booth near the entrance to the exhibition hall on the first floor near the lobby and say hello, ask any questions you have, etc. We have two excition new products we will now be selling: the Aqua2 underwater vehicle (http://mobilerobots.com/ResearchRobots/ResearchRobots/aqua2.aspx) and the Maveric aerial vehicle system (http://mobilerobots.com/ResearchRobots/ResearchRobots/Maveric.aspx). Come see videos of these new robots, and we have an example of an Aqua2 to look at up close as well. (Videos will be available online sometime next week as well.) If you are at ICRA I hope you have a great conference! Reed -- Reed Hedges Research Support and Software Adept Technology Inc. - Mobile Robots reed.hedges at adept.com http://www.mobilerobots.com - http://www.adept.com For documentation and support, visit http://robots.mobilerobots.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110510/c3b6b2fc/attachment.html From H.Miri at 2007.hull.ac.uk Mon May 23 07:06:50 2011 From: H.Miri at 2007.hull.ac.uk (Hossein Miri) Date: Mon, 23 May 2011 12:06:50 +0100 Subject: [Aria-users] Telling red robots and green obstacles apart in MobileSim References: <445800D8FD5D3D43878FD7D2842A304701AB4AE4@EXCL2VS2.adir.hull.ac.uk> <38B0EB303E4E804F8A93B5CFA8FFF15F02CDCB28F0@SRV-APP-6.adept.local> <445800D8FD5D3D43878FD7D2842A304701AB4AF3@EXCL2VS2.adir.hull.ac.uk> <38B0EB303E4E804F8A93B5CFA8FFF15F02CDC0E473@SRV-APP-6.adept.local> <445800D8FD5D3D43878FD7D2842A304701AB4AF9@EXCL2VS2.adir.hull.ac.uk> Message-ID: <445800D8FD5D3D43878FD7D2842A304701AB4AFA@EXCL2VS2.adir.hull.ac.uk> Hi guys, How can I distinguish between objects and robots in MobileSim, solely based on sonar readings? Regards, . -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110523/e32d1fa3/attachment.html -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: not available Url: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110523/e32d1fa3/attachment.ksh From Reed.Hedges at Adept.com Wed May 25 11:30:05 2011 From: Reed.Hedges at Adept.com (Reed Hedges) Date: Wed, 25 May 2011 08:30:05 -0700 Subject: [Aria-users] Telling red robots and green obstacles apart in MobileSim In-Reply-To: <445800D8FD5D3D43878FD7D2842A304701AB4AFA@EXCL2VS2.adir.hull.ac.uk> References: <445800D8FD5D3D43878FD7D2842A304701AB4AE4@EXCL2VS2.adir.hull.ac.uk> <38B0EB303E4E804F8A93B5CFA8FFF15F02CDCB28F0@SRV-APP-6.adept.local> <445800D8FD5D3D43878FD7D2842A304701AB4AF3@EXCL2VS2.adir.hull.ac.uk> <38B0EB303E4E804F8A93B5CFA8FFF15F02CDC0E473@SRV-APP-6.adept.local> <445800D8FD5D3D43878FD7D2842A304701AB4AF9@EXCL2VS2.adir.hull.ac.uk> <445800D8FD5D3D43878FD7D2842A304701AB4AFA@EXCL2VS2.adir.hull.ac.uk> Message-ID: <38B0EB303E4E804F8A93B5CFA8FFF15F02CDD9BBB0@SRV-APP-6.adept.local> Hi, Sonar can only give a range to whatever one of the sonar sensors detects (from which an X,Y position can be calculated as ARIA does for range sensors). You will need to use some other method to detect the identity or color of an object. (Stage actually supports a method of identifying nearby robots but MobileSim does not implement it yet; I've considered adding it but would like more information on how people would use it before I do, so if anyone has any suggestions, let me know.) From: aria-users-bounces at lists.mobilerobots.com [mailto:aria-users-bounces at lists.mobilerobots.com] On Behalf Of Hossein Miri Sent: Monday, May 23, 2011 7:07 AM To: ariausers Subject: [Aria-users] Telling red robots and green obstacles apart in MobileSim Hi guys, How can I distinguish between objects and robots in MobileSim, solely based on sonar readings? Regards, . -------------- next part -------------- A non-text attachment was scrubbed... Name: winmail.dat Type: application/ms-tnef Size: 8859 bytes Desc: not available Url : http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110525/9f1fe573/attachment.bin From zhossain.kuet at yahoo.com Fri May 27 00:00:31 2011 From: zhossain.kuet at yahoo.com (Hossain, Md.Z) Date: Thu, 26 May 2011 21:00:31 -0700 (PDT) Subject: [Aria-users] savServer isn't working Message-ID: <592748.22356.qm@web46410.mail.sp1.yahoo.com> Hi everybody, I'm having a problem while trying to run savServer(to open framegraber), but it was working in the morning. It's not showing anything when i'm running ./savServer from /usr/local/SAV. OS: GNU/Linux(robot(p3at) onboard OS) camera: canon vc-c50i Please help me. best regards hossain -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110526/1aea2983/attachment.html From dowlr at essex.ac.uk Fri May 27 04:55:06 2011 From: dowlr at essex.ac.uk (Dowling, Robin) Date: Fri, 27 May 2011 08:55:06 +0000 Subject: [Aria-users] savServer isn't working In-Reply-To: <592748.22356.qm@web46410.mail.sp1.yahoo.com> References: <592748.22356.qm@web46410.mail.sp1.yahoo.com> Message-ID: Hossain My experience of framegrabbers is that if they fail to work whilst the robot has been switched on you need to shutdown the PC and restart. A restart of the OS is not enough the power to the framegrabber needs to be off to allow it to reset. You can confirm it is a problem with the framegrabber and not SAV by running another utility that is known to work, acts or xawtv for instance. Regards Robin From: aria-users-bounces at lists.mobilerobots.com [mailto:aria-users-bounces at lists.mobilerobots.com] On Behalf Of Hossain, Md.Z Sent: 27 May 2011 05:01 To: aria-users at lists.mobilerobots.com Subject: [Aria-users] savServer isn't working Hi everybody, I'm having a problem while trying to run savServer(to open framegraber), but it was working in the morning. It's not showing anything when i'm running ./savServer from /usr/local/SAV. OS: GNU/Linux(robot(p3at) onboard OS) camera: canon vc-c50i Please help me. best regards hossain -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110527/c7761450/attachment-0001.html From James.Neilan at tema.toyota.com Fri May 27 10:03:49 2011 From: James.Neilan at tema.toyota.com (James.Neilan at tema.toyota.com) Date: Fri, 27 May 2011 10:03:49 -0400 Subject: [Aria-users] James Neilan has left the employ of Toyota Engineering and Manufacturing of North America Message-ID: I will be out of the office starting 05/10/2011 and will not return until 10/31/2018. Please contact Yasuhiro Ota, Earl Gay, From Reed.Hedges at Adept.com Fri May 27 10:12:37 2011 From: Reed.Hedges at Adept.com (Reed Hedges) Date: Fri, 27 May 2011 07:12:37 -0700 Subject: [Aria-users] IROS 2011 Call for Demonstrations Message-ID: <38B0EB303E4E804F8A93B5CFA8FFF15F02CDD9BEFF@SRV-APP-6.adept.local> Hi Everybody, Will you be attending IROS 2011 in San Francisco? IROS and Adept MobileRobots will provide a unique opportunity to show your latest research *live* to a large audience without worrying about shipping your hardware, by using available MobileRobots platforms (provided by us at the show). Please follow the attached link for submission instructions or contact Julian Ware at MobileRobots directly +1-603-881-7960 extension 108 or Julian.Ware at adept.com. More Information: http://www.iros2011.org/callfordemos Thanks! Let me or Julian know if you have any questions about this. Reed -------------- next part -------------- A non-text attachment was scrubbed... Name: winmail.dat Type: application/ms-tnef Size: 3690 bytes Desc: not available Url : http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110527/5b83826a/attachment.bin From roccogalati at gmail.com Mon May 30 05:53:56 2011 From: roccogalati at gmail.com (Rocco Galati) Date: Mon, 30 May 2011 11:53:56 +0200 Subject: [Aria-users] How ArRobot.setRotVel works Message-ID: Hi to all, i have a process which sends some packets to another process which uses Aria in order to control my robot. In the first process, i have a loop which sends the heading and the distance which the robot needs to move. The process send packets like "heading 20" where 20 is the value which i pass to setRolVel. Now, since i use a loop, i'd like to know if there are no problems if i send always the same values (this happens because i read values from sensors). I try to explain better: I have a loop which always send packet like: 1. heading 20 2. heading 20 3. heading 22 4. heading 20 5. heading 21 and i pass all of them to setRotVel. I'd like to ask you if i have to pass the first value as it is and then the other values as a difference between the new value and the previous one. In this case: 1. heading 20 -> OK, it's the first value, the robot turns 20 degrees 2. i send nothing because it's the same value 3. i send 22 - 20 = 2 because the robot has to move of 2 degree from its actual position 4. i send 20 - 22 = -2 because it has to turn in different direction 5. and so on.. Can you give me advices about this situation, please? If i pass heading 20 and then heading 20 again, will the robot turn of 40 degrees? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.mobilerobots.com/pipermail/aria-users/attachments/20110530/c5c7e920/attachment.html