腰部关节

腰部系统 ROS2 Topic API 参考文档

底层 ROS2 Topic 通信 — /fd_robot/waist_motor/*

腰部 Topic 使用自定义消息类型(VelControlMsg / PosControlMsg / MotorInfoMsg)。

1. 腰部速度控制 — waist_front / waist_back / waist_stop

Publisher velocity_cmd
Topic:/fd_robot/waist_motor/velocity_cmd
类型:VelControlMsg(自定义消息)
字段 类型 说明
spd int32 速度值。正=前倾,负=后倾
acc uint32 加速度值
dec uint32 减速度值
ROS2 (Python)
import rclpy
from fd_api_interfaces.msg import VelControlMsg

rclpy.init()
node = rclpy.create_node("waist_velocity_pub")
pub = node.create_publisher(VelControlMsg,
    "/fd_robot/waist_motor/velocity_cmd", 10)

msg = VelControlMsg()

# 腰部前倾
msg.spd = 100
msg.acc = 50
msg.dec = 50
pub.publish(msg)

# 腰部后倾(速度取负值)
msg.spd = -100
pub.publish(msg)
注意:停止可通过发布速度值为 0 的 VelControlMsg 实现。

2. 腰部位置控制 — waist_set_pos

Publisher position_cmd
Topic:/fd_robot/waist_motor/position_cmd
类型:PosControlMsg(自定义消息)
字段 类型 说明
spd uint32 速度值
acc uint32 加速度值
dec uint32 减速度值
pos_deg float32 目标角度,范围 0° ~ 35°
ROS2 (Python)
import rclpy
from fd_api_interfaces.msg import PosControlMsg

rclpy.init()
node = rclpy.create_node("waist_position_pub")
pub = node.create_publisher(PosControlMsg,
    "/fd_robot/waist_motor/position_cmd", 10)

msg = PosControlMsg()

# 腰部转到 20° 位置
msg.spd = 100
msg.acc = 50
msg.dec = 50
msg.pos_deg = 20.0
pub.publish(msg)

3. 腰部位置读取/订阅 — waist_get_current_pos / waist_sub_current_pos

Subscriber motor_info
Topic:/fd_robot/waist_motor/motor_info
类型:MotorInfoMsg(自定义消息)
编码器转换:原始数据为编码器值,需通过 waist_encoder_to_deg 转换为角度。
C++/Python API 内部自动完成转换。
编码器范围 262144 ~ 310000 对应角度 0° ~ 35°。
ROS2 (Python)
import rclpy
from fd_api_interfaces.msg import MotorInfoMsg
from fd_api.waist_angle import waist_encoder_to_deg

rclpy.init()
node = rclpy.create_node("waist_pose_sub")

def info_callback(msg):
    # 编码器值转换为角度
    deg = waist_encoder_to_deg(msg.encoder_value)
    node.get_logger().info(
        f"腰部角度:{deg:.1f}°(编码器:{msg.encoder_value})")

sub = node.create_subscription(
    MotorInfoMsg,
    "/fd_robot/waist_motor/motor_info",
    info_callback,
    10)

rclpy.spin(node)
腰部系统 ROS2 Topic API 文档 Ver1.0.0