|
| 1 | +from geometry_msgs.msg import Twist |
| 2 | +from handler.command_handler import CommandHandler |
| 3 | +from handler.gravity_handler import GravityHandler |
| 4 | +from handler.gyro_handler import GyroHandler |
| 5 | +from handler.joints_handler import JointsHandler |
| 6 | +from sensor_msgs.msg import Imu, JointState |
| 7 | + |
| 8 | +from bitbots_msgs.msg import JointCommand |
| 9 | +from src.rl_node import RLNode |
| 10 | + |
| 11 | + |
| 12 | +class WalkNode(RLNode): |
| 13 | + def __init__(self, walk_policy_path): |
| 14 | + super().__init__(walk_policy_path) |
| 15 | + |
| 16 | + # publishers |
| 17 | + self._joint_command_pub = self.create_publisher(JointCommand, "walking_motor_goals", 10) |
| 18 | + |
| 19 | + # suscribers |
| 20 | + self._imu_sub = self.create_subscription(Imu, "imu/data", self._imu_callback, 10) |
| 21 | + self._joint_state_sub = self.create_subscription(JointState, "joint_states", self._joint_state_callback, 10) |
| 22 | + self._cmd_vel_sub = self.create_subscription(Twist, "cmd_vel", self._cmd_vel_callback, 10) |
| 23 | + |
| 24 | + # handlers |
| 25 | + self._gyro_handler = GyroHandler() |
| 26 | + self._gravity_handler = GravityHandler() |
| 27 | + self._joints_handler = JointsHandler() |
| 28 | + self._command_handler = CommandHandler() |
| 29 | + |
| 30 | + def _imu_callback(self, msg): |
| 31 | + self._gyro_handler.imu_callback(msg) |
| 32 | + self._gravity_handler.imu_callback(msg) |
| 33 | + |
| 34 | + def _joint_state_callback(self, msg): |
| 35 | + self._joints_handler.joint_state_callback(msg) |
| 36 | + |
| 37 | + def _cmd_vel_callback(self, msg): |
| 38 | + self._command_handler.cmd_vel_callback(msg) |
0 commit comments