FALHABER MCBL 3006 with canopen_motor_node. Homing failed
Hello,
I'm trying to use the motion controller FAULHABER MCBL 3006 S AES with ros_canopen . It seems there is no tutorial on how to use ros_canopen, the closest i've found is : https://answers.ros.org/question/2501...
I use a raspberry pi 3 with a PICAN hat. The hat works fine : with candump
and cansend
I can communicate, send PDO request or commands.
This is the continuation of a previous question.
I launched the canopen_motor_node
with the same configuration as in this post.
When I call the service /driver/init
. I get this result :
rosservice call /driver/init
success: False
message: "could not prepare homing; Homing failed"
The output of canopen_motor_node
:
SUMMARY
========
PARAMETERS
* /motor/bus/device: can0
* /motor/bus/master_allocator: canopen::SimpleMa...
* /motor/defaults/eff_from_device: 0
* /motor/defaults/eff_to_device: rint(eff)
* /motor/defaults/motor_allocator: canopen::Motor402...
* /motor/defaults/motor_layer/switching_state: 5
* /motor/defaults/pos_from_device: deg2rad(obj6064)/...
* /motor/defaults/pos_to_device: rint(rad2deg(pos)...
* /motor/defaults/vel_from_device: deg2rad(obj606C)/...
* /motor/defaults/vel_to_device: rint(rad2deg(vel)...
* /motor/nodes/node1/eds_file: config/605.3150.7...
* /motor/nodes/node1/eds_pkg: can_test
* /motor/nodes/node1/id: 3
* /motor/sync/interval_ms: 10
* /motor/sync/overflow: 0
* /robot_description: <robot name="test...
* /rosdistro: kinetic
* /rosversion: 1.12.12
NODES
/
motor (canopen_motor_node/canopen_motor_node)
auto-starting new master
process[master]: started with pid [2262]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 44e412be-1e62-11e8-bf02-b827eb24e870
process[rosout-1]: started with pid [2275]
started core service [/rosout]
process[motor-2]: started with pid [2291]
[ INFO] [1520026806.993282054]: Using fixed control period: 0.010000000
[ INFO] [1520026811.247544240]: Initializing XXX
[ INFO] [1520026811.248136323]: Current state: 1 device error: system:0 internal_error: 0 (OK)
[ INFO] [1520026811.250120750]: Current state: 2 device error: system:0 internal_error: 0 (OK)
abort6060#0, reason: Invalid value for parameter (download only).
Could not process message
[ INFO] [1520026814.326695801]: Current state: 0 device error: system:0 internal_error: 0 (OK)
[ INFO] [1520026814.327013249]: Current state: 0 device error: system:0 internal_error: 0 (OK)
Did not receive a response message
[ERROR] [1520026815.327043770]: /tmp/binarydeb/ros-kinetic-canopen-master-0.7.6/src/sdo.cpp(429): Throw in function void canopen::SDOClient::transmitAndWait(const canopen::ObjectDict::Entry&, const canopen::String&, canopen::String*)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<canopen::TimeoutException> >
std::exception::what: SDO
[canopen::tag_objectdict_key*] = 6061sub0
I investigated the CAN communications and it seems that canopen_motor_node
change automatically the drive mode to homing.
can0 603 [8] 40 61 60 00 00 00 00 00 # Mode request
can0 583 [8] 4F 61 60 00 01 00 00 00 # Controller in position mode
can0 603 [8] 2F 60 60 00 06 00 00 00
can0 583 [8] 60 60 60 00 00 00 00 00
can0 183 [2] 37 00
can0 283 [6] 37 00 4C 00 00 00
can0 383 [6] 37 00 00 00 00 00
can0 080 [0]
can0 603 [8] 40 61 60 00 00 00 00 00 # Mode request
can0 583 [8] 4F 61 60 00 06 00 00 00 # Controller in homing mode
As you can see above the mode is changed from ...
Hello. Did you manage to solve the issues and drive the faulhaber motor correctly? Can you share your github repo with us? Would be nice to have your solution as a reference for other custom setups. Thank you in advance. Best regards.
Hi, I haven't been able to use canopen_motor_node for this driver. However I managed to drive the motor accurately but I had to adapt an internal proprietary software from my company. Unfortunately I am not allowed to share it.
Hi! Thats OK, no problem. Thanks for the answer though.