Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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.

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.