亚博microros小车-原生ubuntu支持系列:3-云台校准

当小车上电后,舵机云台是这样的角度的 

亚博microros小车-原生ubuntu支持系列:3-云台校准_第1张图片

校准代码:

src/yahboom_esp32_mediapipe/yahboom_esp32_mediapipe/目录下新建文件control_servo.py

import rclpy
from rclpy.node import Node
import time
from std_msgs.msg import Int32


class Servo_Cotrol(Node):
    def __init__(self, name):
        super().__init__(name)
        #控制舵机话题
        self.pub_Servo1 = self.create_publisher(Int32, "servo_s1", 10)
        self.pub_Servo2 = self.create_publisher(Int32, "servo_s2", 10)

        #校准值
        self.PWMServo_X = 0
        self.PWMServo_Y = 0
        self.s1_init_angle = Int32()
        self.s1_init_angle.data = self.PWMServo_X
        self.s2_init_angle = Int32()
        self.s2_init_angle.data = self.PWMServo_Y

        self.pub_Servo2.publish(self.s2_init_angle)
        self.pub_Servo1.publish(self.s1_init_angle)

    def Send_servo_angle(self):
        self.pub_Servo2.publish(self.s2_init_angle)
        self.pub_Servo1.publish(self.s1_init_angle)
        time.sleep(0.1)


def main():
    rclpy.init()
    Servo1 = Servo_Cotrol("Servo_Cotrol")

    print("When the servo runs to the middle!")
    print("Please Kill the program according to Ctrl+C !")

    try:
        while True:
            Servo1.Send_servo_angle()
            

    except KeyboardInterrupt:
        Servo1.destroy_node()
        rclpy.shutdown()
    finally:
        Servo1.destroy_node()
        rclpy.shutdown()

就是通过舵机的话题:servo_s1、servo_s2 来控制。

我觉得小车的车体挺牢固的,厚厚的金属壳,但是云台是塑料件,晃晃悠悠的。

构建后,运行:

bohu@bohu-TM1701:~/yahboomcar/yahboomcar_ws$ ros2 run yahboom_esp32_mediapipe control_servo 
When the servo runs to the middle!
Please Kill the program according to Ctrl+C !

效果:优点歪斜,就这样吧。

亚博microros小车-原生ubuntu支持系列:3-云台校准_第2张图片

你可能感兴趣的:(python,亚博,云台校准,microros)