修改turn_degree函数的参数名称,从relative改为absolute,并调整逻辑以支持绝对角度旋转。此更改提高了函数的灵活性和可读性。
This commit is contained in:
		
							parent
							
								
									9ec783b8b1
								
							
						
					
					
						commit
						765be6d547
					
				@ -1,7 +1,7 @@
 | 
			
		||||
import math
 | 
			
		||||
import time
 | 
			
		||||
 | 
			
		||||
def turn_degree(ctrl, msg, degree=90, relative=True):
 | 
			
		||||
def turn_degree(ctrl, msg, degree=90, absolute=False):
 | 
			
		||||
    """
 | 
			
		||||
    结合里程计实现精确稳定的旋转指定角度
 | 
			
		||||
    
 | 
			
		||||
@ -9,7 +9,7 @@ def turn_degree(ctrl, msg, degree=90, relative=True):
 | 
			
		||||
    ctrl: Robot_Ctrl 对象,包含里程计信息
 | 
			
		||||
    msg: robot_control_cmd_lcmt 对象,用于发送命令
 | 
			
		||||
    degree: 要旋转的角度,正值表示逆时针,负值表示顺时针,默认为90度
 | 
			
		||||
    relative: 是否相对于当前角度,默认为True
 | 
			
		||||
    absolute: 是否绝对角度,默认为True
 | 
			
		||||
 | 
			
		||||
    返回:
 | 
			
		||||
    Bool: 是否成功旋转到指定角度
 | 
			
		||||
@ -21,10 +21,10 @@ def turn_degree(ctrl, msg, degree=90, relative=True):
 | 
			
		||||
    current_yaw = ctrl.odo_msg.rpy[2]
 | 
			
		||||
    
 | 
			
		||||
    # 计算目标朝向
 | 
			
		||||
    if relative:
 | 
			
		||||
        target_yaw = current_yaw + target_rad
 | 
			
		||||
    else:
 | 
			
		||||
    if absolute:
 | 
			
		||||
        target_yaw = target_rad
 | 
			
		||||
    else:
 | 
			
		||||
        target_yaw = current_yaw + target_rad
 | 
			
		||||
    
 | 
			
		||||
    # 标准化目标角度到 [-pi, pi] 范围
 | 
			
		||||
    if target_yaw > math.pi:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user