ODVA conformant Ethernet/IP interface drivers for Tolomatic stepper and servo controllers, where the ROS node is implemented as an Ethernet/IP adapter. Drivers depend on odva_ethernetp, a ROS-ready library implementing the Ethernet/IP protocol.
Topics named *_inputs are a direct echo of interface produced values, while *_status topics are derived from elements of these inputs. Note that, in the case of servo_status, target_position and position_error require TMI Network Assembly Remapping of Register 1 (Commanded Position) and Register 2 (Actual Position Error). For stepper, default mapping is used.
The odva_ethernetp driver support of implicit messaging has limitations for multiple devices on the same network, so stepper and ACSI servo controller interface is implemented using explicit messaging only.
- See config dirs for TMI configuration examples: stepper and servo
- For latest docs and TMI software: Tolomatic Support
- Archive docs: stepper and servo
- odva_ehternetip driver
Indigo | Jade | Kinetic | Melodic | |
---|---|---|---|---|
Branch | [indigo-devel ] |
[jade-devel ] |
[kinetic-devel ] |
[melodic-devel ] |
Status | not tested | not tested | supported | testing |
Version | [version] | [version] | [version] | [version] |
mkdir -p catkin_ws/src
cd catkin_ws
catkin init
git clone https://github.com/ros-industrial/tolomatic.git
wstool init src
wstool merge -t src src/tolomatic/.rosinstall
wstool update -t src
catkin build
source /opt/ros/kinetic/setup.bash
source devel/setup.bash
roslaunch acsi_eip_driver servo.launch
roslaunch stepper_eip_driver stepper.launch
- stepper.launch
- servo.launch
The stepper_node uses the compact output assembly, and so requires TMI configuration under Mode Setup for each desired move selection. At some point, the compact output assembly could be replaced by the full assembly, allowing for enhanced control features. See the manual for more detailed info.
- host: The IP address of the controller
- local_ip: Local IP used for implicit messaging
- joint_name:
- joint_states_topic:
- stepper_inputs
float32 current_position
uint32 drive_status
uint32 drive_faults
uint32 digital_input
uint32 digital_output
float32 analog_input
float32 analog_output
- stepper_status
bool stopped
bool host_control
bool homed
bool enabled
bool moving
bool brake_off
bool in_position
float32 target_position
float32 current_position
- joint_states (sensor_msgs/JointState)
- enable
bool enable
---
bool success
- profileMove
uint8 profile
---
bool success
- home
bool home
---
bool success
- stop
bool stop
---
bool success
The servo_node uses the full output assembly, where each service (generally) implements a specific motion type. For service call parameters velocity, position, and increment, the parameter sign will control drive direction. See the manual for more detailed info.
- host: The IP address of the controller
- local_ip: Local IP used for implicit messaging
- joint_name:
- joint_states_topic:
- default_velocity:
- default_accel:
- default_decel:
- default_force:
- acsi_inputs
float32 current_position
uint32 drive_status
uint32 drive_faults
uint32 digital_input
uint32 digital_output
float32 analog_input
float32 analog_output
- acsi_status
bool stopped
bool host_control
bool homed
bool enabled
bool moving
bool brake_off
bool in_position
float32 target_position
float32 position_error
float32 current_position
- joint_states (sensor_msgs/JointState)
- enable
bool enable
---
bool success
- estop
bool estop
---
bool success
- setHome
bool sethome
---
bool success
- setProfile
float32 velocity
float32 acceleration
float32 deceleration
float32 force
---
bool success
- moveAbsolute
float32 position
---
bool success
- moveHome
bool home
---
bool success
- moveVelocity
float32 velocity
---
bool success
- moveIncremental
float32 increment
---
bool success
- moveRotary
float32 increment
---
bool success
- moveSelect
uint8 select
---
bool success
- moveStop
bool stop
---
bool success
Bill McCormick - http://swri.org