Fawkes API
Fawkes Development Version
|
Class to access a chain of Robotis RX28 servos. More...
#include "rx28.h"
Public Types | |
typedef std::list< unsigned char > | DeviceList |
List of servo IDs. More... | |
Public Member Functions | |
RobotisRX28 (const char *device_file, unsigned int default_timeout_ms=30) | |
Constructor. More... | |
~RobotisRX28 () | |
Destructor. More... | |
void | open () |
Open serial port. More... | |
void | close () |
Close port. More... | |
bool | ping (unsigned char id, unsigned int timeout_ms=100) |
Ping servo. More... | |
DeviceList | discover (unsigned int total_timeout_ms=50) |
Discover devices on the bus. More... | |
void | write_table_value (unsigned char id, unsigned char addr, unsigned int value, bool double_byte=false) |
Write a table value. More... | |
void | write_table_values (unsigned char id, unsigned char start_addr, unsigned char *values, unsigned int num_values) |
Write multiple table values. More... | |
void | read_table_values (unsigned char id) |
Read all table values for given servo. More... | |
void | read_table_value (unsigned char id, unsigned char addr, unsigned char read_length) |
Read a table value. More... | |
void | start_read_table_values (unsigned char id) |
Start to receive table values. More... | |
void | finish_read_table_values () |
Finish control table receive operations. More... | |
void | goto_position (unsigned char id, unsigned int value) |
Move servo to specified position. More... | |
void | goto_positions (unsigned int num_positions,...) |
Move several servos to specified positions. More... | |
unsigned int | get_model (unsigned char id, bool refresh=false) |
Get model. More... | |
unsigned int | get_position (unsigned char id, bool refresh=false) |
Get current position. More... | |
unsigned char | get_firmware_version (unsigned char id, bool refresh=false) |
Get firmware version. More... | |
unsigned char | get_baudrate (unsigned char id, bool refresh=false) |
Get baud rate. More... | |
unsigned char | get_delay_time (unsigned char id, bool refresh=false) |
Get time of the delay before replies are sent. More... | |
void | get_angle_limits (unsigned char id, unsigned int &cw_limit, unsigned int &ccw_limit, bool refresh=false) |
Get angle limits. More... | |
unsigned char | get_temperature_limit (unsigned char id, bool refresh=false) |
Get temperature limit. More... | |
void | get_voltage_limits (unsigned char id, unsigned char &low, unsigned char &high, bool refresh=false) |
Get voltage limits. More... | |
unsigned int | get_max_torque (unsigned char id, bool refresh=false) |
Get maximum torque. More... | |
unsigned char | get_status_return_level (unsigned char id, bool refresh=false) |
Get status return level. More... | |
unsigned char | get_alarm_led (unsigned char id, bool refresh=false) |
Get alarm LED status. More... | |
unsigned char | get_alarm_shutdown (unsigned char id, bool refresh=false) |
Get shutdown on alarm state. More... | |
void | get_calibration (unsigned char id, unsigned int &down_calib, unsigned int &up_calib, bool refresh=false) |
Get calibration data. More... | |
bool | is_torque_enabled (unsigned char id, bool refresh=false) |
Check if torque is enabled. More... | |
bool | is_led_enabled (unsigned char id, bool refresh=false) |
Check if LED is enabled. More... | |
void | get_compliance_values (unsigned char id, unsigned char &cw_margin, unsigned char &cw_slope, unsigned char &ccw_margin, unsigned char &ccw_slope, bool refresh=false) |
Get compliance values. More... | |
unsigned int | get_goal_position (unsigned char id, bool refresh=false) |
Get goal position. More... | |
unsigned int | get_goal_speed (unsigned char id, bool refresh=false) |
Get goal speed. More... | |
float | get_max_supported_speed (unsigned char id, bool refresh=false) |
Get maximum supported speed. More... | |
unsigned int | get_torque_limit (unsigned char id, bool refresh=false) |
Get torque limit. More... | |
unsigned int | get_speed (unsigned char id, bool refresh=false) |
Get current speed. More... | |
unsigned int | get_load (unsigned char id, bool refresh=false) |
Get current load. More... | |
unsigned char | get_voltage (unsigned char id, bool refresh=false) |
Get current voltage. More... | |
unsigned char | get_temperature (unsigned char id, bool refresh=false) |
Get temperature. More... | |
bool | is_moving (unsigned char id, bool refresh=false) |
Check if servo is moving. More... | |
bool | is_locked (unsigned char id, bool refresh=false) |
Check is servo is locked. More... | |
unsigned int | get_punch (unsigned char id, bool refresh=false) |
Get punch. More... | |
void | set_id (unsigned char id, unsigned char new_id) |
Set ID. More... | |
void | set_baudrate (unsigned char id, unsigned char baudrate) |
Set baud rate. More... | |
void | set_return_delay_time (unsigned char id, unsigned char return_delay_time) |
Set return delay time. More... | |
void | set_angle_limits (unsigned char id, unsigned int cw_limit, unsigned int ccw_limit) |
Set angle limits. More... | |
void | set_temperature_limit (unsigned char id, unsigned char temp_limit) |
Set temperature limit. More... | |
void | set_voltage_limits (unsigned char id, unsigned char low, unsigned char high) |
Set voltage limits. More... | |
void | set_max_torque (unsigned char id, unsigned int max_torque) |
Set maximum torque. More... | |
void | set_status_return_level (unsigned char id, unsigned char status_return_level) |
Set status return level. More... | |
void | set_alarm_led (unsigned char id, unsigned char alarm_led) |
Set alarm LED settings. More... | |
void | set_alarm_shutdown (unsigned char id, unsigned char alarm_shutdown) |
Set shutdown on alarm. More... | |
void | set_torque_enabled (unsigned char id, bool enabled) |
Enable or disable torque. More... | |
void | set_torques_enabled (bool enabled, unsigned char num_servos,...) |
Enable or disable torque for multiple (selected) servos at once. More... | |
void | set_led_enabled (unsigned char id, bool enabled) |
Turn LED on or off. More... | |
void | set_compliance_values (unsigned char id, unsigned char cw_margin, unsigned char cw_slope, unsigned char ccw_margin, unsigned char ccw_slope) |
Set compliance values. More... | |
void | set_goal_speed (unsigned char id, unsigned int goal_speed) |
Set goal speed. More... | |
void | set_goal_speeds (unsigned int num_servos,...) |
Set goal speeds for multiple servos. More... | |
void | set_torque_limit (unsigned char id, unsigned int torque_limit) |
Set torque limit. More... | |
void | lock_config (unsigned char id) |
Lock config. More... | |
void | set_punch (unsigned char id, unsigned int punch) |
Set punch. More... | |
bool | data_available () |
Check data availability. More... | |
Static Public Attributes | |
static const unsigned char | SRL_RESPOND_NONE = 0 |
SRL_RESPOND_NONE. More... | |
static const unsigned char | SRL_RESPOND_READ = 1 |
SRL_RESPOND_READ. More... | |
static const unsigned char | SRL_RESPOND_ALL = 2 |
SRL_RESPOND_ALL. More... | |
static const unsigned char | BROADCAST_ID = 0xfe |
BROADCAST_ID. More... | |
static const unsigned int | MAX_POSITION = 0x3ff |
MAX_POSITION. More... | |
static const unsigned int | CENTER_POSITION = 0x1ff |
CENTER_POSITION. More... | |
static const float | MAX_ANGLE_DEG = 300 |
MAX_ANGLE_DEG. More... | |
static const float | MAX_ANGLE_RAD = fawkes::deg2rad(RobotisRX28::MAX_ANGLE_DEG) |
MAX_ANGLE_RAD. More... | |
static const float | RAD_PER_POS_TICK = RobotisRX28::MAX_ANGLE_RAD / (float)(RobotisRX28::MAX_POSITION) |
RAD_PER_POS_TICK. More... | |
static const float | POS_TICKS_PER_RAD = (float)(RobotisRX28::MAX_POSITION) / RobotisRX28::MAX_ANGLE_RAD |
POS_TICKS_PER_RAD. More... | |
static const float | SEC_PER_60DEG_12V = 0.167 |
SEC_PER_60DEG_12V. More... | |
static const float | SEC_PER_60DEG_16V = 0.126 |
SEC_PER_60DEG_16V. More... | |
static const unsigned int | MAX_SPEED = 0x3ff |
MAX_SPEED. More... | |
static const unsigned char | P_MODEL_NUMBER_L = 0 |
P_MODEL_NUMBER_L. More... | |
static const unsigned char | P_MODEL_NUMBER_H = 1 |
P_MODEL_NUMBER_H. More... | |
static const unsigned char | P_VERSION = 2 |
P_VERSION. More... | |
static const unsigned char | P_ID = 3 |
P_ID. More... | |
static const unsigned char | P_BAUD_RATE = 4 |
P_BAUD_RATE. More... | |
static const unsigned char | P_RETURN_DELAY_TIME = 5 |
P_RETURN_DELAY_TIME. More... | |
static const unsigned char | P_CW_ANGLE_LIMIT_L = 6 |
P_CW_ANGLE_LIMIT_L. More... | |
static const unsigned char | P_CW_ANGLE_LIMIT_H = 7 |
P_CW_ANGLE_LIMIT_H. More... | |
static const unsigned char | P_CCW_ANGLE_LIMIT_L = 8 |
P_CCW_ANGLE_LIMIT_L. More... | |
static const unsigned char | P_CCW_ANGLE_LIMIT_H = 9 |
P_CCW_ANGLE_LIMIT_H. More... | |
static const unsigned char | P_SYSTEM_DATA2 = 10 |
P_SYSTEM_DATA2. More... | |
static const unsigned char | P_LIMIT_TEMPERATURE = 11 |
P_LIMIT_TEMPERATURE. More... | |
static const unsigned char | P_DOWN_LIMIT_VOLTAGE = 12 |
P_DOWN_LIMIT_VOLTAGE. More... | |
static const unsigned char | P_UP_LIMIT_VOLTAGE = 13 |
P_UP_LIMIT_VOLTAGE. More... | |
static const unsigned char | P_MAX_TORQUE_L = 14 |
P_MAX_TORQUE_L. More... | |
static const unsigned char | P_MAX_TORQUE_H = 15 |
P_MAX_TORQUE_H. More... | |
static const unsigned char | P_RETURN_LEVEL = 16 |
P_RETURN_LEVEL. More... | |
static const unsigned char | P_ALARM_LED = 17 |
P_ALARM_LED. More... | |
static const unsigned char | P_ALARM_SHUTDOWN = 18 |
P_ALARM_SHUTDOWN. More... | |
static const unsigned char | P_OPERATING_MODE = 19 |
P_OPERATING_MODE. More... | |
static const unsigned char | P_DOWN_CALIBRATION_L = 20 |
P_DOWN_CALIBRATION_L. More... | |
static const unsigned char | P_DOWN_CALIBRATION_H = 21 |
P_DOWN_CALIBRATION_H. More... | |
static const unsigned char | P_UP_CALIBRATION_L = 22 |
P_UP_CALIBRATION_L. More... | |
static const unsigned char | P_UP_CALIBRATION_H = 23 |
P_UP_CALIBRATION_H. More... | |
static const unsigned char | P_TORQUE_ENABLE = 24 |
P_TORQUE_ENABLE. More... | |
static const unsigned char | P_LED = 25 |
P_LED. More... | |
static const unsigned char | P_CW_COMPLIANCE_MARGIN = 26 |
P_CW_COMPLIANCE_MARGIN. More... | |
static const unsigned char | P_CCW_COMPLIANCE_MARGIN = 27 |
P_CCW_COMPLIANCE_MARGIN. More... | |
static const unsigned char | P_CW_COMPLIANCE_SLOPE = 28 |
P_CW_COMPLIANCE_SLOPE. More... | |
static const unsigned char | P_CCW_COMPLIANCE_SLOPE = 29 |
P_CCW_COMPLIANCE_SLOPE. More... | |
static const unsigned char | P_GOAL_POSITION_L = 30 |
P_GOAL_POSITION_L. More... | |
static const unsigned char | P_GOAL_POSITION_H = 31 |
P_GOAL_POSITION_H. More... | |
static const unsigned char | P_GOAL_SPEED_L = 32 |
P_GOAL_SPEED_L. More... | |
static const unsigned char | P_GOAL_SPEED_H = 33 |
P_GOAL_SPEED_H. More... | |
static const unsigned char | P_TORQUE_LIMIT_L = 34 |
P_TORQUE_LIMIT_L. More... | |
static const unsigned char | P_TORQUE_LIMIT_H = 35 |
P_TORQUE_LIMIT_H. More... | |
static const unsigned char | P_PRESENT_POSITION_L = 36 |
P_PRESENT_POSITION_L. More... | |
static const unsigned char | P_PRESENT_POSITION_H = 37 |
P_PRESENT_POSITION_H. More... | |
static const unsigned char | P_PRESENT_SPEED_L = 38 |
P_PRESENT_SPEED_L. More... | |
static const unsigned char | P_PRESENT_SPEED_H = 39 |
P_PRESENT_SPEED_H. More... | |
static const unsigned char | P_PRESENT_LOAD_L = 40 |
P_PRESENT_LOAD_L. More... | |
static const unsigned char | P_PRESENT_LOAD_H = 41 |
P_PRESENT_LOAD_H. More... | |
static const unsigned char | P_PRESENT_VOLTAGE = 42 |
P_PRESENT_VOLTAGE. More... | |
static const unsigned char | P_PRESENT_TEMPERATURE = 43 |
P_PRESENT_TEMPERATURE. More... | |
static const unsigned char | P_REGISTERED_INSTRUCTION = 44 |
P_REGISTERED_INSTRUCTION. More... | |
static const unsigned char | P_PAUSE_TIME = 45 |
P_PAUSE_TIME. More... | |
static const unsigned char | P_MOVING = 46 |
P_MOVING. More... | |
static const unsigned char | P_LOCK = 47 |
P_LOCK. More... | |
static const unsigned char | P_PUNCH_L = 48 |
P_PUNCH_L. More... | |
static const unsigned char | P_PUNCH_H = 49 |
P_PUNCH_H. More... | |
Class to access a chain of Robotis RX28 servos.
One instance of this class communicates with a chain of up to 254 Robotis RX28 servos, which are uniquely identified with an ID. Before making use of the chain, connect each servo individually and set its ID. See the discover() method for more information about numbering of the servos. To achieve a higher speed, it is recommended to set the status return level to reply only on READ instructions. You can do this for the whole chain with
typedef std::list<unsigned char> RobotisRX28::DeviceList |
RobotisRX28::RobotisRX28 | ( | const char * | device_file, |
unsigned int | default_timeout_ms = 30 |
||
) |
bool RobotisRX28::data_available | ( | ) |
RobotisRX28::DeviceList RobotisRX28::discover | ( | unsigned int | timeout_ms = 50 | ) |
Discover devices on the bus.
This method will send a PING instruction to the broadcast ID and collect responses. This assumes that the return delay time is set appropriately that all responses can be received without collisions, and that the difference between the time of two consecutive servos is smaller than the given timeout (note that this might be void if you have one servo with ID 1 and one with ID 253). After sending the packet this method will do up to RX28_MAX_NUM_SERVOS receive operations, each with the given timeout. After the first timeout the discovery is aborted assuming that all replies have been received. You can set the timeout really high (several seconds) to be sure that all connected servos are recognized. For this to work best it is recommended to set consecutive servo IDs starting from 1 on the servos. After the servos are found, the control tables of all recognized servos are received to ensure that all other methods return valid data.
timeout_ms | maximum timeout to wait for replies. |
Definition at line 458 of file rx28.cpp.
References fawkes::Exception::append().
Referenced by PanTiltRX28Thread::init().
void RobotisRX28::finish_read_table_values | ( | ) |
Finish control table receive operations.
This executes the receive operation initiated by start_read_table_values(). This will read the values and write the output to the control table (in memory, not in the servo), such that the appropriate get methods will return the new data.
unsigned char RobotisRX28::get_alarm_led | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned char RobotisRX28::get_alarm_shutdown | ( | unsigned char | id, |
bool | refresh = false |
||
) |
void RobotisRX28::get_angle_limits | ( | unsigned char | id, |
unsigned int & | cw_limit, | ||
unsigned int & | ccw_limit, | ||
bool | refresh = false |
||
) |
Get angle limits.
id | servo ID, not the broadcast ID |
refresh | if true, will issue a read command for the value |
cw_limit | upon return contains the clockwise angle limit |
ccw_limit | upon return contains the counter-clockwise angle limit |
Definition at line 790 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
unsigned char RobotisRX28::get_baudrate | ( | unsigned char | id, |
bool | refresh = false |
||
) |
void RobotisRX28::get_calibration | ( | unsigned char | id, |
unsigned int & | down_calib, | ||
unsigned int & | up_calib, | ||
bool | refresh = false |
||
) |
void RobotisRX28::get_compliance_values | ( | unsigned char | id, |
unsigned char & | cw_margin, | ||
unsigned char & | cw_slope, | ||
unsigned char & | ccw_margin, | ||
unsigned char & | ccw_slope, | ||
bool | refresh = false |
||
) |
Get compliance values.
id | servo ID, not the broadcast ID |
refresh | if true, will issue a read command for the value |
cw_margin | upon return contains clockwise margin |
cw_slope | upon return contains clockwise slope |
ccw_margin | upon return contains counter-clockwise margin |
ccw_slope | upon return contains counter-clockwise slope |
unsigned char RobotisRX28::get_delay_time | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned char RobotisRX28::get_firmware_version | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned int RobotisRX28::get_goal_position | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned int RobotisRX28::get_goal_speed | ( | unsigned char | id, |
bool | refresh = false |
||
) |
Get goal speed.
id | servo ID, not the broadcast ID |
refresh | if true, will issue a read command for the value |
Definition at line 954 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
unsigned int RobotisRX28::get_load | ( | unsigned char | id, |
bool | refresh = false |
||
) |
float RobotisRX28::get_max_supported_speed | ( | unsigned char | id, |
bool | refresh = false |
||
) |
Get maximum supported speed.
id | servo ID, not the broadcast ID |
refresh | if true, will issue a read command for the value |
Definition at line 966 of file rx28.cpp.
References fawkes::deg2rad().
Referenced by PanTiltRX28Thread::bb_interface_message_received(), and PanTiltRX28Thread::init().
unsigned int RobotisRX28::get_max_torque | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned int RobotisRX28::get_model | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned int RobotisRX28::get_position | ( | unsigned char | id, |
bool | refresh = false |
||
) |
Get current position.
id | servo ID, not the broadcast ID |
refresh | if true, will issue a read command for the value |
Definition at line 741 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
unsigned int RobotisRX28::get_punch | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned int RobotisRX28::get_speed | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned char RobotisRX28::get_status_return_level | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned char RobotisRX28::get_temperature | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned char RobotisRX28::get_temperature_limit | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned int RobotisRX28::get_torque_limit | ( | unsigned char | id, |
bool | refresh = false |
||
) |
unsigned char RobotisRX28::get_voltage | ( | unsigned char | id, |
bool | refresh = false |
||
) |
void RobotisRX28::get_voltage_limits | ( | unsigned char | id, |
unsigned char & | low, | ||
unsigned char & | high, | ||
bool | refresh = false |
||
) |
void RobotisRX28::goto_position | ( | unsigned char | id, |
unsigned int | value | ||
) |
void RobotisRX28::goto_positions | ( | unsigned int | num_servos, |
... | |||
) |
Move several servos to specified positions.
Given the number of servos the variadic arguments must contain two values for each servo, first is the ID, second the position (see goto_position() for information on the valid values).
num_servos | number of servos, maximum is 83 |
Definition at line 1377 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
bool RobotisRX28::is_led_enabled | ( | unsigned char | id, |
bool | refresh = false |
||
) |
bool RobotisRX28::is_locked | ( | unsigned char | id, |
bool | refresh = false |
||
) |
bool RobotisRX28::is_moving | ( | unsigned char | id, |
bool | refresh = false |
||
) |
Check if servo is moving.
id | servo ID, not the broadcast ID |
refresh | if true, will issue a read command for the value |
Definition at line 1053 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
bool RobotisRX28::is_torque_enabled | ( | unsigned char | id, |
bool | refresh = false |
||
) |
Check if torque is enabled.
id | servo ID, not the broadcast ID |
refresh | if true, will issue a read command for the value |
Definition at line 897 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
void RobotisRX28::lock_config | ( | unsigned char | id | ) |
bool RobotisRX28::ping | ( | unsigned char | id, |
unsigned int | timeout_ms = 100 |
||
) |
Ping servo.
This pings the given servo by sending a PING instruction and reading the reply.
id | servo ID, not the broadcast ID |
timeout_ms | maximum wait time in miliseconds |
Definition at line 497 of file rx28.cpp.
References fawkes::Exception::print_trace().
void RobotisRX28::read_table_value | ( | unsigned char | id, |
unsigned char | addr, | ||
unsigned char | read_length | ||
) |
Read a table value.
This will read the given value(s) and write the output to the control table (in memory, not in the servo), such that the appropriate get method will return the new value.
id | servo ID, not the broadcast ID |
addr | start addr, one of the P_* constants. |
read_length | number of bytes to read |
void RobotisRX28::read_table_values | ( | unsigned char | id | ) |
Read all table values for given servo.
This issues a READ comment for the whole control table and waits for the response.
id | servo ID |
Definition at line 517 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
void RobotisRX28::set_alarm_led | ( | unsigned char | id, |
unsigned char | alarm_led | ||
) |
void RobotisRX28::set_alarm_shutdown | ( | unsigned char | id, |
unsigned char | alarm_shutdown | ||
) |
void RobotisRX28::set_angle_limits | ( | unsigned char | id, |
unsigned int | cw_limit, | ||
unsigned int | ccw_limit | ||
) |
void RobotisRX28::set_baudrate | ( | unsigned char | id, |
unsigned char | baudrate | ||
) |
void RobotisRX28::set_compliance_values | ( | unsigned char | id, |
unsigned char | cw_margin, | ||
unsigned char | cw_slope, | ||
unsigned char | ccw_margin, | ||
unsigned char | ccw_slope | ||
) |
Set compliance values.
id | servo ID |
cw_margin | clockwise margin |
cw_slope | clockwise slope |
ccw_margin | counter-clockwise margin |
ccw_slope | counter-clockwise slope |
Definition at line 1265 of file rx28.cpp.
Referenced by PanTiltRX28Thread::init().
void RobotisRX28::set_goal_speed | ( | unsigned char | id, |
unsigned int | goal_speed | ||
) |
void RobotisRX28::set_goal_speeds | ( | unsigned int | num_servos, |
... | |||
) |
Set goal speeds for multiple servos.
Given the number of servos the variadic arguments must contain two values for each servo, first is the ID, second the value.
num_servos | number of servos, maximum is 83 |
Definition at line 1296 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
void RobotisRX28::set_id | ( | unsigned char | id, |
unsigned char | new_id | ||
) |
void RobotisRX28::set_led_enabled | ( | unsigned char | id, |
bool | led_enabled | ||
) |
Turn LED on or off.
id | servo ID |
led_enabled | true to turn LED on, false to turn off |
Definition at line 1251 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received(), PanTiltRX28Thread::finalize(), and PanTiltRX28Thread::init().
void RobotisRX28::set_max_torque | ( | unsigned char | id, |
unsigned int | max_torque | ||
) |
void RobotisRX28::set_punch | ( | unsigned char | id, |
unsigned int | punch | ||
) |
void RobotisRX28::set_return_delay_time | ( | unsigned char | id, |
unsigned char | return_delay_time | ||
) |
void RobotisRX28::set_status_return_level | ( | unsigned char | id, |
unsigned char | status_return_level | ||
) |
Set status return level.
id | servo ID |
status_return_level | status return level, one of SRL_RESPOND_NONE, SRL_RESPOND_READ or SRL_RESPOND_ALL. |
Definition at line 1173 of file rx28.cpp.
Referenced by PanTiltRX28Thread::init().
void RobotisRX28::set_temperature_limit | ( | unsigned char | id, |
unsigned char | temp_limit | ||
) |
void RobotisRX28::set_torque_enabled | ( | unsigned char | id, |
bool | enabled | ||
) |
void RobotisRX28::set_torque_limit | ( | unsigned char | id, |
unsigned int | torque_limit | ||
) |
void RobotisRX28::set_torques_enabled | ( | bool | enabled, |
unsigned char | num_servos, | ||
... | |||
) |
Enable or disable torque for multiple (selected) servos at once.
Given the number of servos the same number of variadic arguments must be passed, one for each servo ID that should be enabled/disabled.
enabled | true to enable (servo is powered) false to disable (servo power disabled, servo can be freely moved manually) |
num_servos | number of servos to set, maximum is 120 |
Definition at line 1221 of file rx28.cpp.
Referenced by PanTiltRX28Thread::bb_interface_message_received(), and PanTiltRX28Thread::finalize().
void RobotisRX28::set_voltage_limits | ( | unsigned char | id, |
unsigned char | low, | ||
unsigned char | high | ||
) |
void RobotisRX28::start_read_table_values | ( | unsigned char | id | ) |
Start to receive table values.
This method sends a READ instruction packet for the whole table, but it does not wait for the reply. This can be used to overlap the receiving with other operations. You have to ensure to call finish_read_table_values() before sending any other data.
id | servo ID, not the broadcast ID |
void RobotisRX28::write_table_value | ( | unsigned char | id, |
unsigned char | addr, | ||
unsigned int | value, | ||
bool | double_byte = false |
||
) |
Write a table value.
id | servo ID, may be the broadcast ID |
addr | start addr, one of the P_* constants. |
value | value to write |
double_byte | if true, will assume value to be a two-byte value, otherwise it is considered as a one-byte value. |
Definition at line 601 of file rx28.cpp.
References fawkes::Exception::print_trace().
void RobotisRX28::write_table_values | ( | unsigned char | id, |
unsigned char | start_addr, | ||
unsigned char * | values, | ||
unsigned int | num_values | ||
) |
Write multiple table values.
id | servo ID, may be the broadcast ID |
start_addr | start addr, one of the P_* constants. |
values | values to write |
num_values | length in bytes of the values array |
Definition at line 637 of file rx28.cpp.
References fawkes::Exception::print_trace().
|
static |
BROADCAST_ID.
Definition at line 138 of file rx28.h.
Referenced by PanTiltRX28Thread::init(), and PTUJoystickControl::run().
|
static |
CENTER_POSITION.
Definition at line 140 of file rx28.h.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
|
static |
|
static |
|
static |
|
static |
MAX_SPEED.
Definition at line 147 of file rx28.h.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
POS_TICKS_PER_RAD.
Definition at line 144 of file rx28.h.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
|
static |
RAD_PER_POS_TICK.
Definition at line 143 of file rx28.h.
Referenced by PanTiltRX28Thread::bb_interface_message_received().
|
static |
|
static |
|
static |
|
static |
|
static |