49 bool setAngle(
double angle,
const uint8_t servo = 0,
bool fast =
false);
72 double angle,
const uint8_t servo = 0,
bool fast =
false);
99 ASSERT_(factor > 0 && factor < 1);
115 void setOffsets(
float offset0,
float offset1,
float offset2);
A definition of a CStream actually representing a USB connection to a FTDI chip.
A USB-interface for a custom "robotic neck" designed at MAPIR lab.
std::vector< float > m_offsets
The offset used for each servo.
std::string m_usbSerialNumber
A copy of the device serial number (to open the USB FTDI chip).
bool getRegisterValue(uint16_t &value, const uint8_t servo=0)
double m_MaxValue
The value set in the ICR register within the ATMEGA16 controller.
unsigned int getNumberOfPreviousAngles()
Gets the truncate factor of the turn.
bool center(const uint8_t servo=0)
Centers the servo at zero position.
std::deque< double > m_PrevAngles
A vector containing the last N angles which where passed to the servo (for averaging)
bool setRegisterValueAndSpeed(const uint16_t value, const uint8_t servo, const uint16_t speed)
double getTruncateFactor()
Gets the truncate factor of the turn.
bool queryFirmwareVersion(std::string &out_firmwareVersion)
Gets the firmware version of the eNeck board.
void setNumberOfPreviousAngles(const unsigned int number)
Gets the truncate factor of the turn.
void setOffsets(float offset0, float offset1, float offset2)
Load the Offset values for each servo.
bool setAngle(double angle, const uint8_t servo=0, bool fast=false)
Turns the servo up to the specified angle (in radians in the range -pi,pi, other values will be satur...
bool setAngleWithFilter(double angle, const uint8_t servo=0, bool fast=false)
Turns the servo up to the specified angle (in radians in the range -pi,pi) filtered by average with t...
bool enableServo(const uint8_t servo=0)
Enables the servo so the neck will be tight.
double regValue2angle(const uint16_t value)
Converts from a certain value of the ATMEGA16 PWM register to the corresponding decimal angle (for in...
bool checkConnectionAndConnect()
Tries to connect to the USB device (if disconnected).
bool getCurrentAngle(double &angle, const uint8_t servo=0)
Gets the current angle of the servo (in radians within (-pi,pi))
unsigned int m_NumPrevAngles
Number of previous angles to store for averaging.
unsigned int angle2RegValue(const double angle)
Converts from a decimal angle (in radians) to the corresponding register value for the ATMEGA16 contr...
void setTruncateFactor(const double factor)
Gets the truncate factor of the turn.
double m_TruncateFactor
The range of turn of the servo will be truncated to "+-m_truncate_factor*(pi/2)".
bool setAngleAndSpeed(double angle, const uint8_t servo, const uint8_t speed)
Turns the servo up to the specified angle (in radians in the range -pi,pi, other values will be satur...
bool setRegisterValue(const uint16_t value, const uint8_t servo=0, bool fast=false)
bool disableServo(const uint8_t servo=0)
Disables the servo so the neck will be loose.
#define ASSERT_(f)
Defines an assertion mechanism.
GLsizei const GLfloat * value
GLsizei const GLchar ** string
Contains classes for various device interfaces.
unsigned __int16 uint16_t