使用摇杆界面控制机器车的行驶

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();
    });
}
微信图片_20210506173049.jpg

sitemap