robomaster ep sdk ,订阅底盘位置信息,返回结果没有Z轴旋转角度
xcpuma opened this issue · 3 comments
xcpuma commented
采用python sdk api 方式与ep通讯,底盘执行sub_position时,并没有按照说明文档返回Z轴旋转角度,始终为0.
mxy161610207 commented
#39 这里有一个解决方案。
另一个方案是如果你的云台相对底盘不动的话,你可以使用云台的角度。
初始化时,设置底盘主导(CHASSIS_LEAD)的运动模式:
ep_robot = robot.Robot()
ep_robot.initialize(conn_type="sta")
ep_robot.set_robot_mode(mode=robot.CHASSIS_LEAD)
开启云台的角度订阅
ep_gimbal = ep_robot.gimbal
ep_gimbal.sub_angle(freq,your_callback_func,*args,**kw)
sub_angle的官方文档
callback 回调函数 会获得4个参数 (pitch_angle, yaw_angle, pitch_ground_angle, yaw_ground_angle)
最后一个参数为上电时刻z轴角度,你可以在第一次回调时记录为init_angle,并在之后计算差值作为当前angle
def your_callback_func(angle_info):
pitch_angle, yaw_angle, pitch_ground_angle, yaw_ground_angle = angle_info
print("上电时刻z轴角度",yaw_ground_angle)
xcpuma commented
谢谢。
mxy161610207 commented
关于sub_position的返回值z,在不久前的提交ff6646e中进行了描述修改。
从
:z: z轴方向旋转角度,单位 °
改为
:z: z轴方向距离,单位 m
即返回结果并非是角度,而是高度差。
着实是被坑了!