mirror of
https://github.com/VitaAetaerna/Robotino.git
synced 2025-01-18 14:51:36 +01:00
Update LineFollow
This commit is contained in:
parent
7febd48419
commit
fe1620002b
93
LineFollow
93
LineFollow
@ -116,8 +116,58 @@ void init( const std::string& hostname )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void rotate(){
|
||||||
|
int Rotation = 0;
|
||||||
|
int turning = 0;
|
||||||
|
cout << "Enter Rotation (2.96 Ganze Umdrehung): ";
|
||||||
|
cin >> Rotation;
|
||||||
|
|
||||||
|
if (0 <= Rotation){
|
||||||
|
turning = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (1 == turning){
|
||||||
|
com.processEvents();
|
||||||
|
omniDrive.setVelocity(0, 0, -0.4);
|
||||||
|
cout << phi_absolute;
|
||||||
|
rec::robotino::api2::msleep(100);
|
||||||
|
// cout << "X: " << x << " Y: " << y << "Richtung: " << phi << "Sequenz: " << s << endl;
|
||||||
|
if (Rotation <= phi_absolute){
|
||||||
|
turning = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
com.processComEvents();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void DriveUntilWhite(){
|
||||||
|
while (0 == digital_inputs){
|
||||||
|
omniDrive.setVelocity(0.3,0,0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DriveUntilBlack(){
|
||||||
|
while (0 != digital_inputs){
|
||||||
|
for (int i=0; i<5; i++){
|
||||||
|
omniDrive.setVelocity(0.3, 0, 0);
|
||||||
|
}
|
||||||
|
for (int i=0; i<5; i++){
|
||||||
|
omniDrive.setVelocity(-0.3, 0,0 );
|
||||||
|
}
|
||||||
|
for (int i=0; i<5; i++){
|
||||||
|
omniDrive.setVelocity(0, 0.3, 0);
|
||||||
|
}
|
||||||
|
for (int i=0; i<5; i++){
|
||||||
|
omniDrive.setVelocity(0, -0.3, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
com.processEvents();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void drive()
|
void drive()
|
||||||
@ -133,27 +183,25 @@ void drive()
|
|||||||
|
|
||||||
DigitalInput();
|
DigitalInput();
|
||||||
|
|
||||||
|
DriveUntilBlack();
|
||||||
|
|
||||||
|
|
||||||
|
com.processEvents();
|
||||||
|
rec::robotino::api2::msleep(100);
|
||||||
if (0 == digital_inputs[0]){
|
if (0 == digital_inputs[0]){
|
||||||
omniDrive.setVelocity(0.2,0,0);
|
omniDrive.setVelocity(0.2,0,0);
|
||||||
}
|
}
|
||||||
if (1 == digital_inputs[0]){
|
if (1 == digital_inputs[0]){
|
||||||
omniDrive.setVelocity(0,0,0);
|
omniDrive.setVelocity(0,0,0);
|
||||||
|
rotate();
|
||||||
|
if (digital_inputs != 0){
|
||||||
|
omniDrive.setVelocity(0.2,0,0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
com.processEvents();
|
|
||||||
rec::robotino::api2::msleep(100);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void destroy()
|
|
||||||
{
|
|
||||||
com.disconnectFromServer();
|
|
||||||
}
|
|
||||||
|
|
||||||
int main( int argc, char **argv )
|
int main( int argc, char **argv )
|
||||||
{
|
{
|
||||||
std::string hostname = "192.168.100.174";
|
std::string hostname = "192.168.100.174";
|
||||||
@ -172,26 +220,7 @@ int main( int argc, char **argv )
|
|||||||
//drive (this contains a while loop)
|
//drive (this contains a while loop)
|
||||||
drive();
|
drive();
|
||||||
//exit
|
//exit
|
||||||
destroy();
|
com.disconnectFromServer();
|
||||||
}
|
|
||||||
catch( const rec::robotino::api2::RobotinoException& e )
|
|
||||||
{
|
|
||||||
std::cerr << "Com Error: " << e.what() << std::endl;
|
|
||||||
}
|
|
||||||
catch( const std::exception& e )
|
|
||||||
{
|
|
||||||
std::cerr << "Error: " << e.what() << std::endl;
|
|
||||||
}
|
|
||||||
catch( ... )
|
|
||||||
{
|
|
||||||
std::cerr << "Unknow Error" << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
rec::robotino::api2::shutdown();
|
}
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
std::cout << "Press any key to exit..." << std::endl;
|
|
||||||
rec::robotino::api2::waitForKey();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user