experiment with reverse
[201903hackathon.git] / cpp / openCVnaiveObstacleAvoidance / openCVnaiveObstacleAvoidance.cpp
index 6170396..c8b60a3 100644 (file)
@@ -54,6 +54,15 @@ class MyListener : public IDepthDataListener
     const uint8_t confidence_threshold_ = 0;
     const double distance_threshold_ = 80;
 
+    const string bobbycar_stop = "s";
+    const string bobbycar_forward = "f";
+    const string bobbycar_left = "l";
+    const string bobbycar_right = "r";
+    const string bobbycar_backward = "b";
+
+    uint8_t bobbycar_reversing = 254;
+    royale::Vector<royale::String> boobycar_reversing_script ={"s","b","b","b","r","r","r","r","r","r","b","b"};
+
 public :
 
 
@@ -260,22 +269,35 @@ private:
 
     void naiveObstacleAvoidanceDemo()
     {
+        if (bobbycar_reversing<boobycar_reversing_script.size()) {
+            std::cout << boobycar_reversing_script.at(bobbycar_reversing++) << std::endl;
+            return;
+        }
+
+
         bool free_paths[num_dist_columns_];
         if (naiveIsObstaclePresent(free_paths))
         {
             assert(num_dist_columns_ == 4);
             if (free_paths[1] && free_paths[2])
             {
-                std::cout << "GOSTRAIGHT" << std::endl;
+                //std::cout << "GOSTRAIGHT" << std::endl;
+                std::cout << bobbycar_forward << std::endl;
             } else if (free_paths[0])
             {
-                std::cout << "GOLEFT" << std::endl;
+                std::cout << bobbycar_left << std::endl;
+                // std::cout << "GOLEFT" << std::endl;
             } else if (free_paths[3])
             {
-                std::cout << "GORIGHT" << std::endl;
+                // std::cout << "GORIGHT" << std::endl;
+                std::cout << bobbycar_right << std::endl;
             } else {
-                std::cout << "STOP" << std::endl;
+                // std::cout << "STOP" << std::endl;
+                std::cout << bobbycar_stop << std::endl;
+                bobbycar_reversing = 0;
             }
+        } else {
+            std::cout << bobbycar_forward << std::endl;
         }
     }
 
@@ -323,7 +345,7 @@ int main (int argc, char *argv[])
         {
             // if no argument was given try to open the first connected camera
             royale::Vector<royale::String> camlist (manager.getConnectedCameraList());
-            cout << "Detected " << camlist.size() << " camera(s)." << endl;
+            //cout << "Detected " << camlist.size() << " camera(s)." << endl;
 
             if (!camlist.empty())
             {
@@ -393,7 +415,9 @@ int main (int argc, char *argv[])
 
 
     // set an operation mode
-    if (cameraDevice->setUseCase ("MODE_5_45FPS_500") != royale::CameraStatus::SUCCESS)
+    // if (cameraDevice->setUseCase ("MODE_5_45FPS_500") != royale::CameraStatus::SUCCESS)
+    // if (cameraDevice->setUseCase ("MODE_9_10FPS_1000") != royale::CameraStatus::SUCCESS)
+    if (cameraDevice->setUseCase ("MODE_9_5FPS_2000") != royale::CameraStatus::SUCCESS)
     {
         cerr << "Error setting use case" << endl;
         return 1;