49 bool setAngle(
double angle,
const uint8_t servo = 0,
bool fast =
false );
81 bool center(
const uint8_t servo = 0 );
101 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.
bool queryFirmwareVersion(std::string &out_firmwareVersion)
Gets the firmware version of the eNeck board.
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).
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)
bool enableServo(const uint8_t servo=0)
Enables the servo so the neck will be tight.
bool disableServo(const uint8_t servo=0)
Disables the servo so the neck will be loose.
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...
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 getCurrentAngle(double &angle, const uint8_t servo=0)
Gets the current angle of the servo (in radians within (-pi,pi))
void setOffsets(float offset0, float offset1, float offset2)
Load the Offset values for each servo.
std::deque< double > m_PrevAngles
A vector containing the last N angles which where passed to the servo (for averaging)
double getTruncateFactor()
Gets the truncate factor of the turn.
bool checkConnectionAndConnect()
Tries to connect to the USB device (if disconnected).
void setNumberOfPreviousAngles(const unsigned int number)
Gets the truncate factor of the turn.
bool center(const uint8_t servo=0)
Centers the servo at zero position.
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 getRegisterValue(uint16_t &value, const uint8_t servo=0)
unsigned int m_NumPrevAngles
Number of previous angles to store for averaging.
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 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...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.