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

ros_canopen interpolated position mode, time period?

asked 2019-08-31 04:17:16 -0500

akosodry gravatar image

Hello,

I'm driving three servos in interpolated position mode via the ros_canopen package. Everything works quite smoothly, only sometimes i get couple of [ WARN] RPDO timeout messages which not always (but sometimes) results in EMCY in the motor drivers.

I suspect, that something is wrongly set up in the interpolation mode (since before, when i drove the motors in profile position mode, i did not have the above issue).

There are two parameters, namely 60C2sub1 and 60C2sub2 which defines the period of interpolation. In my case 60C2sub2=-3, which means that the interpolation time will be 1 ms.

Then there is the 60C2sub1object, which defines

the rate in which target commands are sent by the host to the drive.

In my case, 60C2sub1=10, since the my yaml file i have sync: interval_ms: 10.

I want to ask, if the aforementioned parameters are set correctly? I am communicating on 500kbps with the drives.

Should i increase the sync? What do you recommend?

Thanks in advance.

edit retag flag offensive close merge delete

Comments

Which sync master plugin are you using? How often do you get the warning?

Mathias Lüdtke gravatar image Mathias Lüdtke  ( 2019-09-02 09:39:09 -0500 )edit

1 Answer

Sort by » oldest newest most voted
3

answered 2019-09-02 09:38:54 -0500

Mathias Lüdtke gravatar image

First of all, [ WARN] RPDO timeout and 60C2 are not related.

The warnings gets printed if the driver does not receive a particular PDO from one or more nodes. The latter is the interpolation period, which is the time to keep moving after the last command.

If the interpolation time is exceeded, the motor will raise an EMCY. I would set it to 15ms or 20ms (a little bit higher than the sync interval) to not stop the drive if the sync arrives a little bit too late.

Based on your description, I would guess that there is something wrong with the wiring or one or more connections. (In my experience this is the most common cause for such problems.)

Another cause might be a wrong transmission type setting. I recommend transmission type 1 for all cyclic data. Of course, there might be a bug in ros_canopen..

I suspect, that something is wrongly set up in the interpolation mode (since before, when i drove the motors in profile position mode, i did not have the above issue).

Profiled position mode is less susceptible to connection / SYNC problems, because it just executes the last command and stops.

I want to ask, if the aforementioned parameters are set correctly?

The settings are fine, but I would increase the intepolation period a little bit.

Should i increase the sync?

Changing the sync inteval will just cover the root cause or will make it worse.

What do you recommend?

  1. Check your wiring.
  2. Check the transmission type
  3. Match the warning against the CAN log
edit flag offensive delete link more

Comments

As always, @Mathias Lüdtke thank you for the detailed reply and help! I'm testing the things you recommended above.

akosodry gravatar image akosodry  ( 2019-09-02 12:06:19 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2019-08-31 04:17:16 -0500

Seen: 321 times

Last updated: Sep 02 '19