ros_canopen vel_from_device: (obj606C) issue
Hello,
i am using the ros_canopen
package to communicate with a BGE 6010
controller manufactured by Dunkermotoren
.
My problem is that the manufacturer did not implement 606C
object in their controller. (i contacted them and they confirmed)
So in the configuration yaml
file the following line gives error:
vel_from_device: "(obj606C)*2*pi/60"
Error string:
abort606c#0, reason: Object does not exist in the object dictionary.
Instead of the 606C object, the controller provides the object: 3A04.01h
, which is also the velocity measurement in rpm. Unfortunately, if i put
vel_from_device: "(obj3A04)*2*pi/60"
then i get the error:
[ERROR] [1565873540.254325002]: Could not find variable 'obj3A04', reason: /opt/ros/kinetic/include/canopen_master/objdict.h(224): Throw in function const EntryConstSharedPtr& canopen::ObjectDict::at(const canopen::ObjectDict::Key&) const
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::out_of_range> >
std::exception::what: Unable to find key in unordered_map.
[canopen::tag_objectdict_key*] = 3a04
Is there any workaround to solve this issue?
Remark: I map the aforementioned actual velocity to PDO as:
"1A01sub0": "2" #
"1A01sub1": "0x60640020" #
"1A01sub2": "0x3A040120" #
Thanks in advance.