48 bool setAngle(
double angle,
const uint8_t servo = 0,
bool fast =
false);
59 double angle,
const uint8_t servo,
const uint8_t speed);
71 double angle,
const uint8_t servo = 0,
bool fast =
false);
89 bool center(
const uint8_t servo = 0);
98 ASSERT_(factor > 0 && factor < 1);
114 void setOffsets(
float offset0,
float offset1,
float offset2);
133 const uint16_t value,
const uint8_t servo = 0,
bool fast =
false);
135 const uint16_t value,
const uint8_t servo,
const uint16_t speed);
unsigned int angle2RegValue(const double angle)
Converts from a decimal angle (in radians) to the corresponding register value for the ATMEGA16 contr...
bool setRegisterValueAndSpeed(const uint16_t value, const uint8_t servo, const uint16_t speed)
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 checkConnectionAndConnect()
Tries to connect to the USB device (if disconnected).
bool queryFirmwareVersion(std::string &out_firmwareVersion)
Gets the firmware version of the eNeck board.
Contains classes for various device interfaces.
unsigned int m_NumPrevAngles
Number of previous angles to store for averaging.
void setNumberOfPreviousAngles(const unsigned int number)
Gets the truncate factor of the turn.
A USB-interface for a custom "robotic neck" designed at MAPIR lab.
bool center(const uint8_t servo=0)
Centers the servo at zero position.
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...
std::vector< float > m_offsets
The offset used for each servo.
#define ASSERT_(f)
Defines an assertion mechanism.
bool getCurrentAngle(double &angle, const uint8_t servo=0)
Gets the current angle of the servo (in radians within (-pi,pi))
bool disableServo(const uint8_t servo=0)
Disables the servo so the neck will be loose.
bool enableServo(const uint8_t servo=0)
Enables the servo so the neck will be tight.
unsigned int getNumberOfPreviousAngles()
Gets the truncate factor of the turn.
void setOffsets(float offset0, float offset1, float offset2)
Load the Offset values for each servo.
double getTruncateFactor()
Gets the truncate factor of the turn.
void setTruncateFactor(const double factor)
Gets the truncate factor of the turn.
A definition of a CStream actually representing a USB connection to a FTDI chip.
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_TruncateFactor
The range of turn of the servo will be truncated to "+-m_truncate_factor*(pi/2)". ...
double m_MaxValue
The value set in the ICR register within the ATMEGA16 controller.
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...
std::deque< double > m_PrevAngles
A vector containing the last N angles which where passed to the servo (for averaging) ...
double regValue2angle(const uint16_t value)
Converts from a certain value of the ATMEGA16 PWM register to the corresponding decimal angle (for in...
bool setRegisterValue(const uint16_t value, const uint8_t servo=0, bool fast=false)