Skip to content
Snippets Groups Projects
Commit 13518468 authored by Paul-Winpenny's avatar Paul-Winpenny
Browse files

Fixed PWM

parent 661681c0
No related branches found
No related tags found
1 merge request!2Manual control user interface
...@@ -6,12 +6,23 @@ class MotorController(Node): ...@@ -6,12 +6,23 @@ class MotorController(Node):
def __init__(self): def __init__(self):
super().__init__('motor_controller') super().__init__('motor_controller')
self.get_logger().info("Motor Controller has been started.") self.get_logger().info("Motor Controller has been started.")
self.subscription = self.create_subscription(Twist,'cmd_vel',self.cmd_vel_callback,10)
self.wheel_radius = 0.05 # meters
self.subscription = self.create_subscription(
Twist,
'cmd_vel',
self.cmd_vel_callback,
10
)
self.wheel_radius = 0.05
self.wheel_base = 0.30 self.wheel_base = 0.30
self.get_logger().info("hello")
self.left_pwm = 0
self.right_pwm = 0
self.get_logger().info("hello")
def cmd_vel_callback(self, msg): def cmd_vel_callback(self, msg):
v = msg.linear.x v = msg.linear.x
...@@ -33,26 +44,26 @@ class MotorController(Node): ...@@ -33,26 +44,26 @@ class MotorController(Node):
# right_pwm = int((right_speed + 1.0) / 2.0 * 100) # right_pwm = int((right_speed + 1.0) / 2.0 * 100)
if omega == 1: if omega == 1:
left_pwm = -50 self.left_pwm = -50
right_pwm = 50 self.right_pwm = 50
elif omega == -1: elif omega == -1:
left_pwm = 50 self.left_pwm = 50
right_pwm = -50 self.right_pwm = -50
# Handle linear velocity commands
if v == 0.5: if v == 0.5:
left_pwm = 75 self.left_pwm = 75
right_pwm = 75 self.right_pwm = 75
elif v == -0.5: elif v == -0.5:
left_pwm = -75 self.left_pwm = -75
right_pwm = -75 self.right_pwm = -75
# STOP command
if v == 0 and omega == 0: if v == 0 and omega == 0:
left_pwm = 0 self.left_pwm = 0
right_pwm = 0 self.right_pwm = 0
self.get_logger().info("STOP command received. Motors stopped.") self.get_logger().info("STOP command received. Motors stopped.")
self.get_logger().info(f"Left PWM: {left_pwm}, Right PWM: {right_pwm}") self.get_logger().info(f"Left PWM: {self.left_pwm}, Right PWM: {self.right_pwm}")
# Set motor directions based on sign of speeds # Set motor directions based on sign of speeds
# left_direction = 1 if left_speed >= 0 else 0 # left_direction = 1 if left_speed >= 0 else 0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment