xgo_competition库说明
专为竞赛设计的任务封装模块,包含目标追踪、巡线、自动抓取等高级功能
核心任务函数
任务初始化
功能: 整体竞赛任务初始化执行流程:
XGO机器人系统初始化
机器人复位
机械臂视觉角度归零
机械爪半开状态
机械臂回到初始角度
Sentry3传感器初始化
启用Blob和Line算法
目标追踪函数
功能: 移动直到找到指定目标,优先移动到离目标坐标最近的那个坐标参数说明:
idx: 目标颜色索引(对应Sentry3的颜色标签,3红色,4绿色,5蓝色)
x,y,z: 移动速度分量
x: 前进/后退速度
y: 左右平移速度
z: 转向速度
tar_x,tar_y: 目标坐标(0-100的相对坐标)。Sentry3采用百分比坐标系,将图像沿水平方向和垂直方向进行100等分,其返回的物体坐标是相对满量程的比值。百分比坐标系的图像中点为(50,50), 即水平方向50%的位置和垂直方向50%的位置。x代表水平方向,y代表数值方向工作机制:
使用blob_err函数获取目标偏差
P控制自动调整移动方向
当偏差小于阈值且持续4个周期时停止
功能: 机械臂定位并精确接近目标,优先移动到离目标坐标最近的那个坐标参数说明:
color: 目标颜色(对应Sentry3的颜色标签,3红色,4蓝色,5黄色)
H: 目标高度(单位毫米mm),这里的高度以机械臂转盘的高度作为基准面为0,在基准面下为负值,在基准面以上为正值
tar_x,tar_y: 目标在图像中的坐标(0-100)执行流程:
设置视觉向下观察视角
根据偏差调整机械臂方向
调整臂长接近目标
精细调整直到偏差满足要求
巡线控制函数
功能: 按时间进行巡线导航参数说明:
vel_x: 前进速度(步长)
dur: 持续时间(ms)工作机制:
启用Line算法
使用line_err获取线路偏差
P控制左右平移和转向修正
定时结束后停止
功能: 巡线直到检测到指定颜色目标参数说明:
vel_x: 巡线前进步长
color: 目标颜色(对应Sentry3的颜色标签,3红色,4蓝色,5黄色)
tx: 目标Y在视觉传感器坐标阈值执行逻辑:
同时监控线路和目标
优先保持线路跟踪
当检测到目标且位置合适时停止
自动抓取函数
功能: 完整的自动抓取流程,自动抓取指定颜色目标,优先抓取靠的最近的颜色参数说明:
color: 目标颜色执行步骤:
定位阶段: arm_loc_blob精确定位目标
接近阶段: 调整机械臂位置接近目标
抓取阶段:
张开爪子到适当角度
向下移动抓取
闭合爪子抓取目标
提升阶段: 将目标提升到安全高度
放置准备: 调整到放置姿态
释放动作: 松开爪子完成放置
预设动作组
功能: 执行预设的动作序列,这里的动作组可以根据需要进行自定义修改或添加,便于用户自定义修改参数: idx - 动作组编号(1-7)
动作组详情:
动作1: 机械臂归位姿态
机械臂方向归零
视觉角度调整-30°
关节角度[0, -90, 90]
持续400ms
动作2: 抓取准备姿态
爪子半闭合(18°)
关节角度[0, -55, 70]
视觉角度-60°
持续4ms
动作3: 抓取并放置动作
视觉向下观察
精确位置调整
抓取动作(张合三次)
视觉角度调整
返回准备姿态
动作4: 特殊抓取动作1
向前伸出并下降
完全张开爪子
提升并返回
关节角度调整
动作5: 特殊抓取动作2
更大幅度的伸出下降
完全张开爪子
提升并返回
关节角度调整
动作6: 特殊抓取动作3
中等幅度操作
分步执行动作
包含两个抓取循环
动作7: 特殊角度姿态
关节角度[-105, -50, 90]
视觉角度-30°
持续500ms
竞赛任务序列
任务名称: 给定的顺序进行执行的,这里也是仅定义,实际需要根据需要添加修改程序
使用策略建议
任务执行顺序
建议按照单个功能进行测试执行,这样可以:
逐步熟悉机器人的各项功能
从前简单任务过渡到复杂任务
充分利用各模块的协同配合
参数调优指南
移动参数调优
室内平坦地面: 速度参数可适当提高
光滑地面: 降低速度,增加稳定性
机械臂参数调优
轻质目标: 降低抓取力度,提高精度
重质目标: 增加抓取力度,注意重心平衡
易损目标: 使用缓冲控制,缓慢抓取
故障处理预案
视觉识别失败
检查光照条件
调整传感器高度和角度
重新开关视觉传感器
检查接线是否正常
移动偏离轨迹
检查地面平整度
调整P控制参数
降低移动速度
抓取失败
检查机械爪开合状态
调整接近角度和高度
校准机械臂零点位置
检查舵机供电情况
