Преглед на файлове

更新上下舵机转动时的方向,平行时90度,朝上时0度

corvin преди 4 години
родител
ревизия
989e8b8331

+ 9 - 7
ros_code/src/arduino_servo_connect/src/arduino_driver.py

@@ -7,7 +7,8 @@
   Description:
   Description:
     A Python driver for the Arduino microcontroller.
     A Python driver for the Arduino microcontroller.
   History:
   History:
-      20181205: initial this comment.
+    20181205: initial this comment.
+    20200902:更新舵机测试,测试上下转动舵机从90度开始.
 """
 """
 
 
 import rospy
 import rospy
@@ -283,8 +284,9 @@ if __name__ == "__main__":
     print "Sleeping for 1 second..."
     print "Sleeping for 1 second..."
     time.sleep(1)
     time.sleep(1)
     print "2.Test up down move servo "
     print "2.Test up down move servo "
-    deg = 0
-    while deg < 100:
+
+    deg = 90
+    while deg > -10:
         myArduino.servo_write(servo_y_id, deg, delay)
         myArduino.servo_write(servo_y_id, deg, delay)
         time.sleep(0.6)
         time.sleep(0.6)
         val = myArduino.servo_read(servo_y_id)
         val = myArduino.servo_read(servo_y_id)
@@ -292,12 +294,12 @@ if __name__ == "__main__":
             print 'o:'+str(deg)
             print 'o:'+str(deg)
         else:
         else:
             print 'x(set='+str(deg)+',read='+str(val)+')'
             print 'x(set='+str(deg)+',read='+str(val)+')'
-        deg += 10
+        deg -= 10
         degrees = myArduino.getAllServosPos()
         degrees = myArduino.getAllServosPos()
         print degrees
         print degrees
 
 
-    deg = 90
-    while deg > -10:
+    deg = 0
+    while deg < 100:
         myArduino.servo_write(servo_y_id, deg, delay)
         myArduino.servo_write(servo_y_id, deg, delay)
         time.sleep(0.6)
         time.sleep(0.6)
         val = myArduino.servo_read(servo_y_id)
         val = myArduino.servo_read(servo_y_id)
@@ -305,7 +307,7 @@ if __name__ == "__main__":
             print 'o:'+str(deg)
             print 'o:'+str(deg)
         else:
         else:
             print 'x(set='+str(deg)+',read='+str(val)+')'
             print 'x(set='+str(deg)+',read='+str(val)+')'
-        deg -= 10
+        deg += 10
         degrees = myArduino.getAllServosPos()
         degrees = myArduino.getAllServosPos()
         print degrees
         print degrees
 
 

+ 3 - 2
ros_code/src/face_location_tracker/cfg/face_location_params.yaml

@@ -1,5 +1,5 @@
 ###################################################################
 ###################################################################
-# Copyright: 2016-2018 ROS小课堂 www.corvin.cn
+# Copyright: 2016-2020 ROS小课堂 www.corvin.cn
 # Author: corvin
 # Author: corvin
 # Description:
 # Description:
 #   该配置文件是人脸识别定位所需,可以配置的参数包括如下:
 #   该配置文件是人脸识别定位所需,可以配置的参数包括如下:
@@ -27,6 +27,7 @@
 #   20181205:更新舵机的最大最小移动角度从弧度制改为角度.
 #   20181205:更新舵机的最大最小移动角度从弧度制改为角度.
 #       新增topic_move_servo参数,用来区分使用话题还是service方式
 #       新增topic_move_servo参数,用来区分使用话题还是service方式
 #       来控制舵机移动.新增跟踪人脸速度的参数face_tracker_speed.
 #       来控制舵机移动.新增跟踪人脸速度的参数face_tracker_speed.
+#   20200902:更新上下转动舵机的初始角度为90度,这样舵机线就可以朝后.
 ###################################################################
 ###################################################################
 camera_id: 1
 camera_id: 1
 default_servo_x_min: 0
 default_servo_x_min: 0
@@ -35,7 +36,7 @@ default_servo_y_min: 0
 default_servo_y_max: 90
 default_servo_y_max: 90
 
 
 default_servo_x_deg: 90
 default_servo_x_deg: 90
-default_servo_y_deg: 0
+default_servo_y_deg: 90
 
 
 default_servo_move_step: 1
 default_servo_move_step: 1
 face_traker_move_delay: 60
 face_traker_move_delay: 60

+ 8 - 8
ros_code/src/face_location_tracker/src/face_location.py

@@ -2,7 +2,7 @@
 # _*_ coding:utf-8 _*_
 # _*_ coding:utf-8 _*_
 
 
 """
 """
-  Copyright: 2016-2018 ROS小课堂 www.corvin.cn
+  Copyright: 2016-2020 ROS小课堂 www.corvin.cn
   Author: corvin
   Author: corvin
   Description:
   Description:
     This is a demo of running face recognition on live video from your webcam. It includes some
     This is a demo of running face recognition on live video from your webcam. It includes some
@@ -15,7 +15,7 @@
     20181207: 新增dynamic_reconfigure来动态配置节点参数.
     20181207: 新增dynamic_reconfigure来动态配置节点参数.
 """
 """
 import rospy
 import rospy
-import os,cv2
+import os, cv2
 import face_recognition
 import face_recognition
 from arduino_servo_connect.srv import *
 from arduino_servo_connect.srv import *
 from arduino_servo_connect.msg import *
 from arduino_servo_connect.msg import *
@@ -107,7 +107,7 @@ class FaceLocation():
         self.servo_x_ID = rospy.get_param("~servo_x_id", 3)
         self.servo_x_ID = rospy.get_param("~servo_x_id", 3)
         self.servo_y_ID = rospy.get_param("~servo_y_id", 4)
         self.servo_y_ID = rospy.get_param("~servo_y_id", 4)
         self.servo_x_org_deg = rospy.get_param("~default_servo_x_deg", 90)
         self.servo_x_org_deg = rospy.get_param("~default_servo_x_deg", 90)
-        self.servo_y_org_deg = rospy.get_param("~default_servo_y_deg", 0)
+        self.servo_y_org_deg = rospy.get_param("~default_servo_y_deg", 90)
         self.servo_x_pose = self.servo_x_org_deg
         self.servo_x_pose = self.servo_x_org_deg
         self.servo_y_pose = self.servo_y_org_deg
         self.servo_y_pose = self.servo_y_org_deg
 
 
@@ -167,13 +167,13 @@ class FaceLocation():
 
 
     def check_move_y(self, center_y, move_up, move_down):
     def check_move_y(self, center_y, move_up, move_down):
         if center_y < move_up:
         if center_y < move_up:
-            if self.servo_y_pose < self.servo_y_max_pose:
-                self.servo_y_pose += self.servo_move_step
+            if self.servo_y_pose > self.servo_y_min_pose:
+                self.servo_y_pose -= self.servo_move_step
                 self.move_servo(self.servo_y_ID, self.servo_y_pose, self.servo_move_delay)
                 self.move_servo(self.servo_y_ID, self.servo_y_pose, self.servo_move_delay)
             rospy.loginfo("Move up:%d" %(self.servo_y_pose))
             rospy.loginfo("Move up:%d" %(self.servo_y_pose))
         elif center_y > move_down:
         elif center_y > move_down:
-            if self.servo_y_pose > self.servo_y_min_pose:
-                self.servo_y_pose -= self.servo_move_step
+            if self.servo_y_pose < self.servo_y_max_pose:
+                self.servo_y_pose += self.servo_move_step
                 self.move_servo(self.servo_y_ID, self.servo_y_pose, self.servo_move_delay)
                 self.move_servo(self.servo_y_ID, self.servo_y_pose, self.servo_move_delay)
             rospy.loginfo("Move down:%d" %(self.servo_y_pose))
             rospy.loginfo("Move down:%d" %(self.servo_y_pose))
         #else:
         #else:
@@ -205,7 +205,7 @@ if __name__ == '__main__':
     try:
     try:
         face_location = FaceLocation()
         face_location = FaceLocation()
         rospy.spin()
         rospy.spin()
-    except Exception, e:
+    except Exception as e:
         rospy.logerr("%s", str(e))
         rospy.logerr("%s", str(e))
         os._exit(1)
         os._exit(1)