Exemplo n.º 1
0
/* function to handle joystick control */
void Beluga::JoyStickControl(std::vector<double> js_axes,
                         unsigned int js_buttons)
{
    double speed = 0;
    double vert = 0;
    double turn = 0;

    double x = -js_axes[0];
    double y = js_axes[1];
    double w = 0;//js_axes[2];
    double z = 0;//-js_axes[3];

    speed = MT_DeadBandAndScale(y, m_dSpeedDeadBand, m_dMaxSpeed);
    turn = MT_DeadBandAndScale(x, m_dTurnDeadBand, m_dMaxTurn);

#ifndef _WIN32
    vert = MT_DeadBandAndScale(z, m_dSpeedDeadBand, m_dMaxVertSpeed);
#else
	if(js_buttons & BELUGA_UP_BUTTON)
	{
		vert = m_dVertSpeed;
	}
	if(js_buttons & BELUGA_DOWN_BUTTON)
	{
		vert = -m_dVertSpeed;
	}
#endif
	SendCommand(speed, vert, turn);
	m_vdControls[BELUGA_CONTROL_FWD_SPEED] = speed;
	m_vdControls[BELUGA_CONTROL_STEERING] = turn;
	m_vdControls[BELUGA_CONTROL_VERT_SPEED] = vert;
}
Exemplo n.º 2
0
void MT_SteeredRobot::JoyStickControl(std::vector<double> js_axes,
                                      unsigned int js_buttons)
{

    double X = js_axes[0];
    double Y = js_axes[1];
    double speed = MT_DeadBandAndScale(Y, m_dSpeedDeadBand, m_dMaxSpeed);
    double omega = MT_DeadBandAndScale(X,
                                       m_dTurningRateDeadBand,
                                       m_dMaxTurningRate);
    SetSpeedOmega(speed, omega);
}