Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

SSC Class Reference

#include <Devices/ssc.H>

Inheritance diagram for SSC:

Inheritance graph
[legend]
Collaboration diagram for SSC:

Collaboration graph
[legend]
List of all members.

Detailed Description

Interface to a serial-servo-controller.

The ssc.C and ssc.H files has the mini_SSC controller code that help control the servos via the controller. The class is SSC class. Its functions include moving a servo to a specified position, using a serial port. There are two ways to move the servos and thet their current positions: either using calibrated values in [-1.0..1.0], or using raw positions in [0..255]. Calibrated positions are converted to raw using two linear ramps (one for each side of the neutral position) that can be set using the calibrate() function. EXAMPLE: if you do a calibrate(servo, 100, 20, 150), then, subsequently, move(servo, 0.0F) will be equivalent to moveRaw(servo, 100), move(servo, -1.0F) will be equivalent to moveRaw(servo, 20) and move(servo, 1.0F) will be equivalent to moveRaw(servo, 150).

Definition at line 62 of file ssc.H.

Public Member Functions

 SSC (OptionManager &mgr, const std::string &descrName="Mini-SSC Servo Driver", const std::string &tagName="MiniSSCdriver", const char *defdev="/dev/ttyS0")
 Default constructor; see ModelComponent.H.
 ~SSC ()
 Destructor.
bool move (const int servo, const float position)
 Moves servo # to given position in [-1.0 .. 1.0].
float getPosition (const int servo) const
 Gets the current position of given servo.
void calibrate (const int servo, const byte neutralval, const byte minval, const byte maxval)
 Calibrate a servo.
bool moveRaw (const int servo, const byte rawpos)
 Moves servo # to given RAW (uncalibrated) position in [0..255].
bool moveRawHack (const int servo, const byte rawpos, const int port=1)
 hack work around for moveRaw. Remove when serial stuff is fixed
byte getPositionRaw (const int servo) const
 Gets the current RAW (uncalibrated) position [0..255] of given servo.

Protected Member Functions

float rawToCalib (const int servo, const byte rawpos) const
 Convert from raw (0..255) to calibrated (-1.0..1.0) position.
byte calibToRaw (const int servo, const float position) const
 Convert from calibrated (-1.0..1.0) to raw (0..255) position.

Protected Attributes

nub::soft_ref< SerialitsPort
 Serial port to use.
rutz::shared_ptr< NModelParam<
float > > * 
zero
 zero calibration values
rutz::shared_ptr< NModelParam<
float > > * 
posmult
 positive multiplier calib
rutz::shared_ptr< NModelParam<
float > > * 
negmult
 negative multiplier calib
bytepos
 raw servo positions [0..255]


Constructor & Destructor Documentation

SSC::SSC OptionManager mgr,
const std::string descrName = "Mini-SSC Servo Driver",
const std::string tagName = "MiniSSCdriver",
const char *  defdev = "/dev/ttyS0"
 

Default constructor; see ModelComponent.H.

Definition at line 44 of file ssc.C.

References ModelComponent::addSubComponent(), buf, i, itsPort, NModelParam< T >::make(), negmult, pos, posmult, SSCNUMSERVOS, and zero.

SSC::~SSC  ) 
 

Destructor.

Definition at line 76 of file ssc.C.


Member Function Documentation

void SSC::calibrate const int  servo,
const byte  neutralval,
const byte  minval,
const byte  maxval
 

Calibrate a servo.

Calibration will be made so that move(servo, 0.0F) will send the value 'neutralval' to the servo, move(servo, -1.0F) will send minval and move(servo, 1.0F) will send maxval.

Definition at line 92 of file ssc.C.

References LFATAL, negmult, posmult, SSCNUMSERVOS, and zero.

byte SSC::calibToRaw const int  servo,
const float  position
const [protected]
 

Convert from calibrated (-1.0..1.0) to raw (0..255) position.

Definition at line 181 of file ssc.C.

References LFATAL, negmult, posmult, SSCNUMSERVOS, and zero.

Referenced by move().

float SSC::getPosition const int  servo  )  const
 

Gets the current position of given servo.

Definition at line 84 of file ssc.C.

References LFATAL, pos, rawToCalib(), and SSCNUMSERVOS.

byte SSC::getPositionRaw const int  servo  )  const
 

Gets the current RAW (uncalibrated) position [0..255] of given servo.

Definition at line 152 of file ssc.C.

References LFATAL, pos, and SSCNUMSERVOS.

bool SSC::move const int  servo,
const float  position
 

Moves servo # to given position in [-1.0 .. 1.0].

Returns true on success, false if some serial error occurred.

Definition at line 80 of file ssc.C.

References calibToRaw(), and moveRaw().

bool SSC::moveRaw const int  servo,
const byte  rawpos
 

Moves servo # to given RAW (uncalibrated) position in [0..255].

Returns true on success, false if some serial error occurred.

Definition at line 104 of file ssc.C.

References itsPort, and pos.

Referenced by move().

bool SSC::moveRawHack const int  servo,
const byte  rawpos,
const int  port = 1
 

hack work around for moveRaw. Remove when serial stuff is fixed

Definition at line 127 of file ssc.C.

References LFATAL.

float SSC::rawToCalib const int  servo,
const byte  rawpos
const [protected]
 

Convert from raw (0..255) to calibrated (-1.0..1.0) position.

Definition at line 161 of file ssc.C.

References LFATAL, negmult, posmult, SSCNUMSERVOS, and zero.

Referenced by getPosition().


Member Data Documentation

nub::soft_ref<Serial> SSC::itsPort [protected]
 

Serial port to use.

Definition at line 99 of file ssc.H.

Referenced by moveRaw(), and SSC().

rutz::shared_ptr<NModelParam<float> >* SSC::negmult [protected]
 

negative multiplier calib

Definition at line 102 of file ssc.H.

Referenced by calibrate(), calibToRaw(), rawToCalib(), and SSC().

byte* SSC::pos [protected]
 

raw servo positions [0..255]

Definition at line 103 of file ssc.H.

Referenced by getPosition(), getPositionRaw(), moveRaw(), and SSC().

rutz::shared_ptr<NModelParam<float> >* SSC::posmult [protected]
 

positive multiplier calib

Definition at line 101 of file ssc.H.

Referenced by calibrate(), calibToRaw(), rawToCalib(), and SSC().

rutz::shared_ptr<NModelParam<float> >* SSC::zero [protected]
 

zero calibration values

Definition at line 100 of file ssc.H.

Referenced by calibrate(), calibToRaw(), rawToCalib(), and SSC().


The documentation for this class was generated from the following files:
Generated on Sat Nov 7 13:36:11 2009 for iLab Neuromorphic Vision Toolkit by  doxygen 1.4.4