Having some issues with running velocity controllers from an Odroid. Below is my setup, my config files, and the error I'm getting. Running the exact same setup from my computer (Ubuntu 14.04 - ROS Indigo) and it works fine, so suspect there's an issue coming from the libraries compiled for ARM inside the epos_libraries. Though this is a huge assumption based on the fact that this is the main difference between my computer and odroid setup.
Odroid setup:
Ubuntu 14.04
ROS Indigo
Compiled epos_hardware from source, selecting arm/hf and changed the library to libftd2xx.so.1.2.8 in epos_library CMakeLists. Compiles fine and will run the position controller (profile position mode) perfectly fine.
Note to anyone seeing the hex serial number issue, I found the easiest solution to this is getting rid of the hex conversion inside epos.cpp and use the int version of the numbers. With my setup there was a weird issue where the hex value was being converted wrong everytime.
Files in question ~ removed unnecessary parts.
yaml file:
motorFL:
actuator_name: 'FL_act'
serial_number: '105692551797093' #changed the hextonumber function so this is fine
operation_mode: 'profile_velocity'
clear_faults: true
motor:
type: 1
dc_motor:
nominal_current: 2
max_output_current: 4
thermal_time_constant: 24.1
sensor:
type: 1
incremental_encoder:
resolution: 500
inverted_polarity: false
safety:
max_following_error: 20000
max_profile_velocity: 12000
max_acceleration: 15000
position_profile:
velocity: 10000
acceleration: 8000
deceleration: 9000
velocity_profile:
acceleration: 8000
deceleration: 9000
Traceback of the error. Controllers shut down immediately after this.
Traceback (most recent call last):
File "/home/odroid/catkin_ws/src/ros_control/controller_manager/scripts/spawner", line 212, in <module>
if __name__ == '__main__': main()
File "/home/odroid/catkin_ws/src/ros_control/controller_manager/scripts/spawner", line 190, in main
resp = load_controller(name)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 435, in __call__
return self.call(*args, **kwds)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 525, in call
raise ServiceException("transport error completing service call: %s"%(str(e)))
rospy.service.ServiceException: transport error completing service call: unable to receive data from sender, check sender's logs for details
Closest I've found to this error is this: controller_manager dies, which suggests there is conflicting issues with binaries, but this doesn't seem possible with my setup since I only have the EPOS_hardware on my system, not to mention the position controller works fine.
Anyone have any thoughts on this or ideas on how to debug? Log files aren't giving me any useful information (at least nothing that I understand).
Having some issues with running velocity controllers from an Odroid. Below is my setup, my config files, and the error I'm getting. Running the exact same setup from my computer (Ubuntu 14.04 - ROS Indigo) and it works fine, so suspect there's an issue coming from the libraries compiled for ARM inside the epos_libraries. Though this is a huge assumption based on the fact that this is the main difference between my computer and odroid setup.
Odroid setup: Ubuntu 14.04 ROS Indigo Compiled epos_hardware from source, selecting arm/hf and changed the library to libftd2xx.so.1.2.8 in epos_library CMakeLists. Compiles fine and will run the position controller (profile position mode) perfectly fine.
Note to anyone seeing the hex serial number issue, I found the easiest solution to this is getting rid of the hex conversion inside epos.cpp and use the int version of the numbers. With my setup there was a weird issue where the hex value was being converted wrong everytime.
Files in question ~ removed unnecessary parts. yaml file:
launch file:
urdf file:
Traceback of the error. Controllers shut down immediately after this.
Closest I've found to this error is this: controller_manager dies, which suggests there is conflicting issues with binaries, but this doesn't seem possible with my setup since I only have the EPOS_hardware on my system, not to mention the position controller works fine.
Anyone have any thoughts on this or ideas on how to debug? Log files aren't giving me any useful information (at least nothing that I understand).