ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

canopen_chain_node to read dictionary entries only

asked 2018-01-04 08:38:56 -0500

Edgar Carrasco gravatar image

updated 2018-01-04 08:58:09 -0500

I am working with two motors over the can bus. I have a can bus master and I would like to use the canopen_chain_node to only read values from the dictionary using the service getObject. For now I can do this without an additional master by calling the service init first and the calling getObject. The problem I have is that I have already a master on the bus, which is in charge of the NMT commands and to put the node in operational mode. I thought that with the command for configuring the bus

master_allocator: canopen::ExternalMaster::Allocator

this would be possible.

The canopen_chain_node still changes the nodes to operational. So it is in conflict with the other master.

Question: Can I use the canopen_chain_node to hook into the can bus to just get dictionary entries using SDO respectively over the service getObject? I would like to get the motor temperature for instance and publish it using a topic, which can be reused later (graph).

Some of this was answered already in here, but it says also that it can accept another master in the bus respectively that another master can send the SYNC.

Second question: I cannot disable the SYNC in the canopen_chain_node by setting it to 0

sync: interval_ms: 10 # set to 0 to disable sync

I get this error

[ERROR] [1515076699.637053748]: Update interval 0 is invalid*

Thanks in advance.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2018-01-08 04:52:57 -0500

Mathias Lüdtke gravatar image

Second question: I cannot disable the SYNC in the canopen_chain_node by setting it to 0

The SYNC is disabled, but you have to specify the update rate instead: update_ms: .... This rate determines how fast PDOs get read etc.

canopen::ExternalMaster::Allocator

These plugins just set-up the SYNC, but not NMT. This should support shared SYNCs, but not completely external masters.

Can I use the canopen_chain_node to hook into the can bus to just get dictionary entries using SDO respectively over the service getObject? I would like to get the motor temperature for instance and publish it using a topic, which can be reused later (graph).

Currently there is no way to disable the NMT commands. This would need some code modifications and a way to configure the layer (e.g. https://github.com/ros-industrial/ros... ).

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2018-01-04 08:38:56 -0500

Seen: 262 times

Last updated: Jan 08 '18