Motion controller for Maxon EPOS4 over EtherCAT.
Keywords: EtherCAT, EPOS4, motor controller, maxon
The source code is released under a BSD 3-Clause license.
Author: Jonas Lauener, mail@jolau.ch
The varileg_lowlevel_controller package has been tested under ROS Kinetic and Ubuntu 16.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
- Robot Operating System (ROS) (middleware for robotics),
- openethercat_soem
- soem_interface
- varileg_msgs
To build from source, clone the latest version from this repository into your catkin workspace and compile the package using
cd ~/git
git clone https://github.com/ethz-asl/ros_package_template.git
cd ~/catkin_workspace/src
ln -s ~/git/varileg_lowlevel_controller
cd ../
catkin build varileg_lowlevel_controller
Describe the quickest way to run this software, for example:
Run the main node with
roslaunch varileg_lowlevel_controller varileg_lowlevel_controller_setcap.launch
Config file folder config:
- config.yaml Set the names of the Ethernet ports. Can be found by using command ifconfig. Also defines topic names.
- joint_config.yaml Configure mapping of joints to EPOS's NodeID. Set parameters of each joint.
-
varileg_lowlevel_controller varileg_lowlevel_controller_setcap.launch: Start the main node with root rights by starting varileg_lowlevel_controller_setcap.sh and then finally varileg_lowlevel_controller.launch
Arguments:
password
Root password. Default:varileg
.motor_current
Max. motor current in mA. Default:2000
.frequency
Frequency [Hz] of the update loop. Trajectory point have to come with same frequency. Default:100
.
-
varileg_lowlevel_controller epos_example_setcap.launch: Starts a simple testing node, great for developing. Usage similiar to above.
-
/joint_trajectory
(varileg_msgs/ExtendedJointTrajectories.msg)Trajectory points for all joints.
-
joint_states
(varileg_msgs/ExtendedJointStates.msg)Current position, velocity and torque of all joints.
-
device_states
(varileg_msgs/ExtendedDeviceStates.msg)Current device states of all joints.
-
set_device_state
(varileg_msgs/SetDeviceState.srv)Set the targeted device state of a joint. Will be tried to reach with the next update cycle.
-
set_device_state
(varileg_msgs/SetOperatingMode.srv)Change the operating mode of a joint. Will be tried to be changed with the next update cycle. Joint needs to be in SWITCH ON DISABLED state.
-
homing/[joint_name]
(varileg_msgs/Homing.action)Start homing of a joint. Needs to be in homing mode and enabled.