使用摇杆界面控制机器车的行驶
nipplejs 是一开源的虚拟摇杆触摸功能库,可以集成到web的页面中,方便控制机器车行驶。
可以支持的参数有摇杆偏移中心的 力度,距离,角度,上,下,左,右,X,Y的坐标等信息。
由于我们的机器车支持 (v,w)线速度和角速度的输入模型,所以摇杆的输出要转换成v和w,通过
x和y的坐标来实现。
在中心的时候,x,y (0,0),然后使使中心位置减去当前的位置。
startx - posionx 通过距离差和角速度w成比例关系。
stary - posiony 通过距离差和速度v成比例关系。
Joystick.prototype._on = function() {
var me = this;
this.manager
.on('start', function (evt, data) {
me.start_x = data.position.x;
me.start_y = data.position.y;
me.time = setInterval(() => {
me.onStart && me.onStart(me.distance,me.angle,me.velocity,me.angcity);
}, 100);
})
.on('move', function (evt, data) {
//console.log("position:"+data.position.x,data.position.y);
//console.log(data.direction.y);
if (data.direction) {
me.angle = data.direction.angle;
me.distance = data.distance;
me.velocity = (me.start_y - data.position.y )/135 ;
me.angcity = (me.start_x - data.position.x )/135 ;
//me.angle = data.direction.angle;
// me.distance = data.distance;
}
})
.on('end', function (evt, data) {
send_x_y(0.0,0.0);
clearInterval(me.time);
me.onEnd && me.onEnd();
});
}