Skip to content

ROS2 wrapper to interface with the Maxon EPOS Command Library

License

Notifications You must be signed in to change notification settings

wvu-irl/epos_ros2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

epos_ros

ROS2 interface for the EPOS controllers/Maxon motors

Notes

Currently, the functionality is contained in the EPOSWrapper header and folder. Still need to develop and test interfaces

Install

Expects EposCmdLib 6.7.1.0, this can be modified in CMakeLists EposCmdLib 6.7.1.0 can be installed by running bash install_files/install_epos_cmd_lib.bash

TODO:

Add EPOS Interface to do fault handling this will likely involve integration with the new system manager package (private for now)

Make some more example code

Link with Read the Docs

Verify Functionality of the Following code (to be done the week of Aug 1):

CONFIGURATION

int set_modes(const std::vector<std::string> &_motors,const std::vector<OperationMode> &_modes);

int set_modes(const std::vector<std::string> &_motors, OperationMode _mode);

int set_mode(const std::string &_motor, OperationMode _mode);

int reset_devices(const std::vector<std::string> &_motors);

int reset_device(const std::string &_motor);

int set_states(const std::vector<std::string> &_motors, const std::vector<DeviceState> &_states);

int set_states(const std::vector<std::string> &_motors, DeviceState _state);

int set_state(const std::string &_motor, DeviceState _state);

int get_states(const std::vector<std::string> &_motors, std::vector<DeviceState> &_states);

int get_state(const std::string &_motor, DeviceState &_state);

int clear_faults(const std::vector<std::string> &_motors);

int clear_fault(const std::string &_motor);

OPERATION

int go_to_velocities_profile(const std::vector<std::string> &_motors, const std::vector<double> &_velocities, bool _rpm);

int go_to_velocities_profile(const std::vector<std::string> &_motors, double _velocity, bool _rpm);

int go_to_velocity_profile(const std::string &_motor, double _velocity, bool _rpm);

int get_velocities(const std::vector<std::string> &_motors, std::vector<double> &_velocities, bool _rpm);

int get_velocity(const std::string &_motor, double &_velocity, bool _rpm);

int go_to_positions_profile(const std::vector<std::string> &_motors, const std::vector<double> &_positions, bool _counts, bool _absolute, bool _immediate);

int go_to_positions_profile(const std::vector<std::string> &_motors, double _position, bool _counts, bool _absolute, bool _immediate);

int go_to_position_profile(const std::string &_motor, double _position, bool _counts, bool _absolute, bool _immediate);

int get_positions(const std::vector<std::string> &_motors, std::vector<double> &_positions, bool _counts);

int get_position(const std::string &_motor, double &_position, bool _counts);

int go_to_torques(const std::vector<std::string> &_motors, const std::vector<double> &_torques);

int go_to_torques(const std::vector<std::string> &_motors, double _torque);

int go_to_torque(const std::string &_motor, double _torque);

int get_torques(const std::vector<std::string> &_motors, std::vector<double> &_torques);

int get_torque(const std::string &_motor, double &_torque);

int get_currents(const std::vector<std::string> &_motors, std::vector<double> &_currents);

int get_current(const std::string &_motor, double &_current);

int halt_velocity(const std::string &_motor);

int halt_position(const std::string &_motor);

ERRORS and LOGGING

static std::string get_error(DWORD _error_code);

std::string get_error_vcs(DWORD _error_code);

std::string get_state_string(DeviceState _state);

std::string get_mode_string(OperationMode _mode);

UTILS

double count_2_m(MaxonMotor &_motor, double _distance);

double m_2_count(MaxonMotor &_motor, double _distance);

double mNm_2_ma(MaxonMotor &_motor, double _torque);

double ma_2_mNm(MaxonMotor &_motor, double _current);

About

ROS2 wrapper to interface with the Maxon EPOS Command Library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages