mirror of
https://github.com/SHC-ASTRA/rover-ros2.git
synced 2026-02-11 09:20:40 +00:00
feat: fully remove socket_feedback class
This commit is contained in:
@@ -25,7 +25,6 @@ from ament_index_python.packages import get_package_share_directory
|
|||||||
# from scipy.spatial.transform import Rotation as R
|
# from scipy.spatial.transform import Rotation as R
|
||||||
|
|
||||||
from . import astra_arm
|
from . import astra_arm
|
||||||
#from . import socket_feedback
|
|
||||||
|
|
||||||
serial_pub = None
|
serial_pub = None
|
||||||
thread = None
|
thread = None
|
||||||
@@ -33,7 +32,6 @@ thread = None
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class SerialRelay(Node):
|
class SerialRelay(Node):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# Initialize node
|
# Initialize node
|
||||||
@@ -169,6 +167,10 @@ class SerialRelay(Node):
|
|||||||
angles[0] = 0.0
|
angles[0] = 0.0
|
||||||
# Update the arm's current angles
|
# Update the arm's current angles
|
||||||
self.arm.update_angles(angles)
|
self.arm.update_angles(angles)
|
||||||
|
self.arm_feedback.axis0_angle = angles[0]
|
||||||
|
self.arm_feedback.axis1_angle = angles[1]
|
||||||
|
self.arm_feedback.axis2_angle = angles[2]
|
||||||
|
self.arm_feedback.axis3_angle = angles[3]
|
||||||
self.get_logger().info(f"Angles: {angles}")
|
self.get_logger().info(f"Angles: {angles}")
|
||||||
else:
|
else:
|
||||||
self.get_logger().info("Invalid angle feedback input format")
|
self.get_logger().info("Invalid angle feedback input format")
|
||||||
@@ -180,12 +182,10 @@ class SerialRelay(Node):
|
|||||||
# Extract the voltage from the string
|
# Extract the voltage from the string
|
||||||
voltages_in = parts[3:7]
|
voltages_in = parts[3:7]
|
||||||
# Convert the voltages to floats
|
# Convert the voltages to floats
|
||||||
v_bat = float(voltages_in[0]) / 100.0
|
self.arm_feedback.bat_voltage = float(voltages_in[0]) / 100.0
|
||||||
v_12 = float(voltages_in[1]) / 100.0
|
self.arm_feedback.voltage_12 = float(voltages_in[1]) / 100.0
|
||||||
v_5 = float(voltages_in[2]) / 100.0
|
self.arm_feedback.voltage_5 = float(voltages_in[2]) / 100.0
|
||||||
v_3 = float(voltages_in[3]) / 100.0
|
self.arm_feedback.voltage_3 = float(voltages_in[3]) / 100.0
|
||||||
# Update the arm's current voltages
|
|
||||||
self.arm_feedback.updateBusVoltages([v_bat, v_12, v_5, v_3])
|
|
||||||
else:
|
else:
|
||||||
self.get_logger().info("Invalid voltage feedback input format")
|
self.get_logger().info("Invalid voltage feedback input format")
|
||||||
|
|
||||||
@@ -197,10 +197,12 @@ class SerialRelay(Node):
|
|||||||
values_in = parts[3:7]
|
values_in = parts[3:7]
|
||||||
# Convert the voltages to floats
|
# Convert the voltages to floats
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.arm_feedback.updateJointVoltages(i, float(values_in[i]) / 10.0)
|
#update arm_feedback's axisX_temp for each axis0_temp, axis1_temp, etc...
|
||||||
self.
|
pass
|
||||||
self.arm_feedback.updateJointCurrents(i, float(values_in[i]) / 10.0)
|
|
||||||
self.arm_feedback.updateJointTemperatures(i, float(values_in[i]) / 10.0)
|
# self.arm_feedback.updateJointVoltages(i, float(values_in[i]) / 10.0)
|
||||||
|
# self.arm_feedback.updateJointCurrents(i, float(values_in[i]) / 10.0)
|
||||||
|
# self.arm_feedback.updateJointTemperatures(i, float(values_in[i]) / 10.0)
|
||||||
else:
|
else:
|
||||||
self.get_logger().info("Invalid motor feedback input format")
|
self.get_logger().info("Invalid motor feedback input format")
|
||||||
|
|
||||||
@@ -357,17 +359,17 @@ class SerialRelay(Node):
|
|||||||
|
|
||||||
def socket_pub_callback(self):
|
def socket_pub_callback(self):
|
||||||
# Create a SocketFeedback message and publish it
|
# Create a SocketFeedback message and publish it
|
||||||
msg = SocketFeedback()
|
# msg = SocketFeedback()
|
||||||
msg.bat_voltage = self.arm_feedback.bat_voltage
|
# msg.bat_voltage = self.arm_feedback.bat_voltage
|
||||||
msg.voltage_12 = self.arm_feedback.voltage_12
|
# msg.voltage_12 = self.arm_feedback.voltage_12
|
||||||
msg.voltage_5 = self.arm_feedback.voltage_5
|
# msg.voltage_5 = self.arm_feedback.voltage_5
|
||||||
msg.voltage_3 = self.arm_feedback.voltage_3
|
# msg.voltage_3 = self.arm_feedback.voltage_3
|
||||||
msg.joint_angles = self.arm_feedback.joint_angles
|
# msg.joint_angles = self.arm_feedback.joint_angles
|
||||||
msg.joint_temps = self.arm_feedback.joint_temps
|
# msg.joint_temps = self.arm_feedback.joint_temps
|
||||||
msg.joint_voltages = self.arm_feedback.joint_voltages
|
# msg.joint_voltages = self.arm_feedback.joint_voltages
|
||||||
msg.joint_currents = self.arm_feedback.joint_currents
|
# msg.joint_currents = self.arm_feedback.joint_currents
|
||||||
|
|
||||||
self.socket_pub.publish(msg) #Publish feedback from arm
|
self.socket_pub.publish(self.arm_feedback) #Publish feedback from arm
|
||||||
|
|
||||||
self.arm.update_position() #Run FK and update the current position of the arm, using FK
|
self.arm.update_position() #Run FK and update the current position of the arm, using FK
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
# struct for socket feedback
|
|
||||||
class Feedback:
|
|
||||||
def __init__(self):
|
|
||||||
self.bat_voltage = 0.0
|
|
||||||
self.voltage_12 = 0.0
|
|
||||||
self.voltage_5 = 0.0
|
|
||||||
self.voltage_3 = 0.0
|
|
||||||
self.joint_angles = [0.0, 0.0, 0.0, 0.0]
|
|
||||||
self.joint_temps = [0.0, 0.0, 0.0, 0.0]
|
|
||||||
self.joint_voltages = [0.0, 0.0, 0.0, 0.0]
|
|
||||||
self.joint_currents = [0.0, 0.0, 0.0, 0.0]
|
|
||||||
|
|
||||||
def updateBusVoltages(self, voltages):
|
|
||||||
self.bat_voltage = voltages[0]
|
|
||||||
self.voltage_12 = voltages[1]
|
|
||||||
self.voltage_5 = voltages[2]
|
|
||||||
self.voltage_3 = voltages[3]
|
|
||||||
|
|
||||||
def updateJointVoltages(self, axis, voltage):
|
|
||||||
self.joint_voltages[axis] = voltage
|
|
||||||
|
|
||||||
def updateJointCurrents(self, axis, current):
|
|
||||||
self.joint_currents[axis] = current
|
|
||||||
|
|
||||||
def updateJointTemperatures(self, axis, temperature):
|
|
||||||
self.joint_temps[axis] = temperature
|
|
||||||
|
|
||||||
def updateJointAngles(self, angles):
|
|
||||||
self.joint_angles = angles
|
|
||||||
Reference in New Issue
Block a user