载人双轮自平衡机器人研发,有载重量和速度要求。
请从上面所给出的需求中,提供一个详细深入精确的设计方案。 解析与方案库:完整设计方案,包括系统框图、关键器件选型、软件流程图;
载人双轮自平衡机器人的研发方案,需要有一定的参考基准或模块化思路,不能完全脱离具体参数。参考行业里典型的技术方案、核心器件选型和平衡算法,为后续设计提供依据。
参考资料覆盖了电机选型、系统框图和PID/LQR算法对比,特别是关于动态响应优先于定位精度的电机选型理由,以及串级PID的实现细节,用来支撑设计方案。
整个设计方案就围绕这些核心点展开,先讲清楚平衡机理和倒立摆模型,再给出具体的硬件选型、双环控制结构和完整的开发流程。
载人双轮自平衡机器人完整设计方案
1. 需求核心解析与设计目标定位
1.1 问题本质:倒立摆系统的工程实现
核心机理:双轮自平衡机器人是一个典型的欠驱动、非线性、强耦合的倒立摆系统。其本质是一个“上下颠倒的摆锤”——当车体倾斜时,必须通过驱动车轮加速度来使质心重新回到车轮轴正上方,实现动态平衡。通俗地说,这就像用手指顶一根长杆:手指要不断移动才能使杆子保持直立,只不过我们的“杆子”是90kg的人机系统,而“手指”是两只电机驱动的车轮。
控制闭环的时效性要求:由于系统具有内在不稳定性,控制器必须在极短的时间窗口内完成“检测→计算→执行”的全链路响应。经实测,当使用170rpm电机时,在15°倾角下的启动响应延迟可达83ms,导致PID控制器积分项严重饱和;而高响应电机可将该延迟压缩至42ms,使系统相位裕度显著提升。
1.2 关键设计指标的目标值设定
基于行业标杆产品(Segway)的参考数据和工程实践经验,设定以下目标设计参数:
| 最大载重 | 120kg | 适配绝大多数成年男性+随身物品(参考人体模型尺寸设计) |
| 最高速度 | 20km/h | 兼顾安全性与实用性的平衡(典型电动平衡车上限) |
| 最大续航 | 30km | 满足城市通勤需求(参考Ninebot E型电池容量450Wh对应25km以上) |
| 最大爬坡角 | 15° | 满足常规城市路况(地下车库坡道约8-12°) |
| 平衡角度范围 | ±8° | 基于工程经验:超出此范围控制系统难以稳定恢复 |
| 控制周期 | 200Hz(5ms) | 50ms总响应时间分配:检测1ms→计算1ms→执行3ms |
| 目标倾角控制精度 | ±0.1° | 确保骑行体验顺滑,参考尼得科伺服电机在Segway式平衡车中的实现 |
1.3 整车技术规格汇总
| 外形尺寸 | 约650×550×1150mm | 满足GB 17761-2018标准 |
| 整车质量 | ≈45kg | 含电池,不含驾驶员 |
| 轮胎规格 | 10.5英寸(约267mm) | 主流平衡车规格,参考Ninebot标准 |
| 离地间隙 | ≥80mm | 通过性保障 |
| 防水等级 | IP54 | 防止溅水,参考尼得科电机防护等级 |
| 适用路况 | 水泥/柏油路面、轻微颠簸 | 爬坡≤15°,不适合越野 |
2. 系统总体架构
2.1 系统框图(Mermaid)
#mermaid-svg-YUr6ChGH5mxLeGb3{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-YUr6ChGH5mxLeGb3 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-YUr6ChGH5mxLeGb3 .error-icon{fill:#552222;}#mermaid-svg-YUr6ChGH5mxLeGb3 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YUr6ChGH5mxLeGb3 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YUr6ChGH5mxLeGb3 .marker.cross{stroke:#333333;}#mermaid-svg-YUr6ChGH5mxLeGb3 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YUr6ChGH5mxLeGb3 p{margin:0;}#mermaid-svg-YUr6ChGH5mxLeGb3 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-YUr6ChGH5mxLeGb3 .cluster-label text{fill:#333;}#mermaid-svg-YUr6ChGH5mxLeGb3 .cluster-label span{color:#333;}#mermaid-svg-YUr6ChGH5mxLeGb3 .cluster-label span p{background-color:transparent;}#mermaid-svg-YUr6ChGH5mxLeGb3 .label text,#mermaid-svg-YUr6ChGH5mxLeGb3 span{fill:#333;color:#333;}#mermaid-svg-YUr6ChGH5mxLeGb3 .node rect,#mermaid-svg-YUr6ChGH5mxLeGb3 .node circle,#mermaid-svg-YUr6ChGH5mxLeGb3 .node ellipse,#mermaid-svg-YUr6ChGH5mxLeGb3 .node polygon,#mermaid-svg-YUr6ChGH5mxLeGb3 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YUr6ChGH5mxLeGb3 .rough-node .label text,#mermaid-svg-YUr6ChGH5mxLeGb3 .node .label text,#mermaid-svg-YUr6ChGH5mxLeGb3 .image-shape .label,#mermaid-svg-YUr6ChGH5mxLeGb3 .icon-shape .label{text-anchor:middle;}#mermaid-svg-YUr6ChGH5mxLeGb3 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-YUr6ChGH5mxLeGb3 .rough-node .label,#mermaid-svg-YUr6ChGH5mxLeGb3 .node .label,#mermaid-svg-YUr6ChGH5mxLeGb3 .image-shape .label,#mermaid-svg-YUr6ChGH5mxLeGb3 .icon-shape .label{text-align:center;}#mermaid-svg-YUr6ChGH5mxLeGb3 .node.clickable{cursor:pointer;}#mermaid-svg-YUr6ChGH5mxLeGb3 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-YUr6ChGH5mxLeGb3 .arrowheadPath{fill:#333333;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YUr6ChGH5mxLeGb3 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-YUr6ChGH5mxLeGb3 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-YUr6ChGH5mxLeGb3 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-YUr6ChGH5mxLeGb3 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-YUr6ChGH5mxLeGb3 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YUr6ChGH5mxLeGb3 .cluster text{fill:#333;}#mermaid-svg-YUr6ChGH5mxLeGb3 .cluster span{color:#333;}#mermaid-svg-YUr6ChGH5mxLeGb3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YUr6ChGH5mxLeGb3 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-YUr6ChGH5mxLeGb3 rect.text{fill:none;stroke-width:0;}#mermaid-svg-YUr6ChGH5mxLeGb3 .icon-shape,#mermaid-svg-YUr6ChGH5mxLeGb3 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-YUr6ChGH5mxLeGb3 .icon-shape p,#mermaid-svg-YUr6ChGH5mxLeGb3 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-YUr6ChGH5mxLeGb3 .icon-shape .label rect,#mermaid-svg-YUr6ChGH5mxLeGb3 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-YUr6ChGH5mxLeGb3 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-YUr6ChGH5mxLeGb3 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-YUr6ChGH5mxLeGb3 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
电源管理层
安全与保护
人机交互层
控制层
传感器层
动力执行层
I2C
ABZ正交编码
ABZ正交编码
SMBus/CAN
PWM+DIR
PWM+DIR
UART/蓝牙
GPIO中断
左轮毂电机无刷直流电机
右轮毂电机无刷直流电机
左电机驱动器FOC控制器
右电机驱动器FOC控制器
六轴IMU姿态传感器MPU6050/BMX160
左电机编码器霍尔/磁性编码器
右电机编码器霍尔/磁性编码器
电池管理系统BMS电压/电流/温度
霍尔接近开关零速/驻车检测
主控制器STM32F407/H743
硬件看门狗
参数存储器
无线遥控器2.4GHz/蓝牙5.0
OLED显示屏128×64
状态指示灯
蜂鸣器提示
急停按钮
电磁刹车
ESD静电防护
锂电池组36V/48V
BMS保护板过充/过放/短路/均衡
DC-DC转换器48V→5V/3.3V
2.2 控制层级架构
#mermaid-svg-BeKHDlWfC8zlAktF{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BeKHDlWfC8zlAktF .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BeKHDlWfC8zlAktF .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BeKHDlWfC8zlAktF .error-icon{fill:#552222;}#mermaid-svg-BeKHDlWfC8zlAktF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BeKHDlWfC8zlAktF .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BeKHDlWfC8zlAktF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BeKHDlWfC8zlAktF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BeKHDlWfC8zlAktF .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BeKHDlWfC8zlAktF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BeKHDlWfC8zlAktF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BeKHDlWfC8zlAktF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BeKHDlWfC8zlAktF .marker.cross{stroke:#333333;}#mermaid-svg-BeKHDlWfC8zlAktF svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BeKHDlWfC8zlAktF p{margin:0;}#mermaid-svg-BeKHDlWfC8zlAktF .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-BeKHDlWfC8zlAktF .cluster-label text{fill:#333;}#mermaid-svg-BeKHDlWfC8zlAktF .cluster-label span{color:#333;}#mermaid-svg-BeKHDlWfC8zlAktF .cluster-label span p{background-color:transparent;}#mermaid-svg-BeKHDlWfC8zlAktF .label text,#mermaid-svg-BeKHDlWfC8zlAktF span{fill:#333;color:#333;}#mermaid-svg-BeKHDlWfC8zlAktF .node rect,#mermaid-svg-BeKHDlWfC8zlAktF .node circle,#mermaid-svg-BeKHDlWfC8zlAktF .node ellipse,#mermaid-svg-BeKHDlWfC8zlAktF .node polygon,#mermaid-svg-BeKHDlWfC8zlAktF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BeKHDlWfC8zlAktF .rough-node .label text,#mermaid-svg-BeKHDlWfC8zlAktF .node .label text,#mermaid-svg-BeKHDlWfC8zlAktF .image-shape .label,#mermaid-svg-BeKHDlWfC8zlAktF .icon-shape .label{text-anchor:middle;}#mermaid-svg-BeKHDlWfC8zlAktF .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BeKHDlWfC8zlAktF .rough-node .label,#mermaid-svg-BeKHDlWfC8zlAktF .node .label,#mermaid-svg-BeKHDlWfC8zlAktF .image-shape .label,#mermaid-svg-BeKHDlWfC8zlAktF .icon-shape .label{text-align:center;}#mermaid-svg-BeKHDlWfC8zlAktF .node.clickable{cursor:pointer;}#mermaid-svg-BeKHDlWfC8zlAktF .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BeKHDlWfC8zlAktF .arrowheadPath{fill:#333333;}#mermaid-svg-BeKHDlWfC8zlAktF .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BeKHDlWfC8zlAktF .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BeKHDlWfC8zlAktF .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BeKHDlWfC8zlAktF .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BeKHDlWfC8zlAktF .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BeKHDlWfC8zlAktF .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BeKHDlWfC8zlAktF .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BeKHDlWfC8zlAktF .cluster text{fill:#333;}#mermaid-svg-BeKHDlWfC8zlAktF .cluster span{color:#333;}#mermaid-svg-BeKHDlWfC8zlAktF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BeKHDlWfC8zlAktF .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BeKHDlWfC8zlAktF rect.text{fill:none;stroke-width:0;}#mermaid-svg-BeKHDlWfC8zlAktF .icon-shape,#mermaid-svg-BeKHDlWfC8zlAktF .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BeKHDlWfC8zlAktF .icon-shape p,#mermaid-svg-BeKHDlWfC8zlAktF .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BeKHDlWfC8zlAktF .icon-shape .label rect,#mermaid-svg-BeKHDlWfC8zlAktF .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BeKHDlWfC8zlAktF .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BeKHDlWfC8zlAktF .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BeKHDlWfC8zlAktF :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
执行层
核心算法 200Hz
决策层
用户意图层
遥控器指令前进/后退/转向
驾驶意图解析目标速度/目标转向角
姿态解算互补滤波/卡尔曼滤波
直立平衡控制器PD/LQR
速度控制器PI
转向控制器P
目标转速合成左轮+右轮
FOC矢量控制电流环/速度环
轮毂电机
IMU传感器
轮速编码器
2.3 数据流向图
#mermaid-svg-zMf0aEXczIlBSUZb{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-zMf0aEXczIlBSUZb .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-zMf0aEXczIlBSUZb .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-zMf0aEXczIlBSUZb .error-icon{fill:#552222;}#mermaid-svg-zMf0aEXczIlBSUZb .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-zMf0aEXczIlBSUZb .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-zMf0aEXczIlBSUZb .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-zMf0aEXczIlBSUZb .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-zMf0aEXczIlBSUZb .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-zMf0aEXczIlBSUZb .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-zMf0aEXczIlBSUZb .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-zMf0aEXczIlBSUZb .marker{fill:#333333;stroke:#333333;}#mermaid-svg-zMf0aEXczIlBSUZb .marker.cross{stroke:#333333;}#mermaid-svg-zMf0aEXczIlBSUZb svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-zMf0aEXczIlBSUZb p{margin:0;}#mermaid-svg-zMf0aEXczIlBSUZb .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-zMf0aEXczIlBSUZb .cluster-label text{fill:#333;}#mermaid-svg-zMf0aEXczIlBSUZb .cluster-label span{color:#333;}#mermaid-svg-zMf0aEXczIlBSUZb .cluster-label span p{background-color:transparent;}#mermaid-svg-zMf0aEXczIlBSUZb .label text,#mermaid-svg-zMf0aEXczIlBSUZb span{fill:#333;color:#333;}#mermaid-svg-zMf0aEXczIlBSUZb .node rect,#mermaid-svg-zMf0aEXczIlBSUZb .node circle,#mermaid-svg-zMf0aEXczIlBSUZb .node ellipse,#mermaid-svg-zMf0aEXczIlBSUZb .node polygon,#mermaid-svg-zMf0aEXczIlBSUZb .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-zMf0aEXczIlBSUZb .rough-node .label text,#mermaid-svg-zMf0aEXczIlBSUZb .node .label text,#mermaid-svg-zMf0aEXczIlBSUZb .image-shape .label,#mermaid-svg-zMf0aEXczIlBSUZb .icon-shape .label{text-anchor:middle;}#mermaid-svg-zMf0aEXczIlBSUZb .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-zMf0aEXczIlBSUZb .rough-node .label,#mermaid-svg-zMf0aEXczIlBSUZb .node .label,#mermaid-svg-zMf0aEXczIlBSUZb .image-shape .label,#mermaid-svg-zMf0aEXczIlBSUZb .icon-shape .label{text-align:center;}#mermaid-svg-zMf0aEXczIlBSUZb .node.clickable{cursor:pointer;}#mermaid-svg-zMf0aEXczIlBSUZb .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-zMf0aEXczIlBSUZb .arrowheadPath{fill:#333333;}#mermaid-svg-zMf0aEXczIlBSUZb .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-zMf0aEXczIlBSUZb .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-zMf0aEXczIlBSUZb .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-zMf0aEXczIlBSUZb .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-zMf0aEXczIlBSUZb .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-zMf0aEXczIlBSUZb .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-zMf0aEXczIlBSUZb .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-zMf0aEXczIlBSUZb .cluster text{fill:#333;}#mermaid-svg-zMf0aEXczIlBSUZb .cluster span{color:#333;}#mermaid-svg-zMf0aEXczIlBSUZb div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer