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

canopen master hard- and software advice

asked 2018-07-12 13:57:12 -0500

RikTonnaer gravatar image

At work I am trying to integrate a Rinco Ultrasonic Welding Generator with a KUKA industrial robot. I have some experience with integrating a sensor with this robot, so I'd like to use this project to increase my skills with ROS. For now I want to focus on controlling all functionality of the generator from ROS.

CANOpen

The generator supports communications based on RS485 and CANOpen. I have a detailed manuals of both communications options (easily found online) and the .EDS files for the CANOpen communication. For the project I'd like to get more into working with industrial field busses, so using CANOpen has my preference.

My questions

The questions I am currently trying to answer:

  1. Will I be able to use canopen_master for the communication with the power supply. I am not exactly clear which device profile my device falls under. I expect CiA301 but not sure. How can I find out? Is this part of the .EDS file?
  2. For hardware I'd like to use a Raspberry Pi in the controlbox (located near the toolplate) for the EEF. I already have ethernet and power running through the robot arm. Therefor I was looking at either a CANgineBerry or a PICAN board. For the last one I am not sure if it supports CANOpen or SocketCAN. Are they actually different? Does anyone have experience with either of these boards (or another) in combination with the canopen_master?

Thanks for your help.

edit retag flag offensive close merge delete

Comments

Just a comment: rs485 is also often considered a fieldbus. If you want to work message oriented (instead of dictionary based), I believe rs485 would make sense.

gvdhoorn gravatar image gvdhoorn  ( 2018-07-20 07:50:05 -0500 )edit

As to the canopen profile: does the manual not state compliance with some profile?

gvdhoorn gravatar image gvdhoorn  ( 2018-07-20 07:51:55 -0500 )edit

Message oriented would be my preference. However I expect to need to control the power supply in real-time in the future. The manual states that when using RS485 for this device gives a 5 ms delay.

I can send you the docs directly.

RikTonnaer gravatar image RikTonnaer  ( 2018-07-22 12:57:56 -0500 )edit

On CANopen device profile the docs say: Object 0x1000 Device Type This object indicates the device type. As there is no device profile for ultrasonic generators, this object is set to 0 (no standard device).

RikTonnaer gravatar image RikTonnaer  ( 2018-07-22 12:58:17 -0500 )edit

Pedantic, but:

However I expect to need to control the power supply in real-time in the future

As long as the delay is constant or has an upper-bound, it would still be real-time. But I understand you want minimum latency?

gvdhoorn gravatar image gvdhoorn  ( 2018-07-23 04:39:50 -0500 )edit

For the first iteration of the system (spot welding and multiple spot welding in sequence) I see no strict requirements on latency.

The second iteration would involve contiuously welding in which the welding parameters need to be controlled. However I do not know (yet) what latency is acceptable.

RikTonnaer gravatar image RikTonnaer  ( 2018-07-24 05:56:27 -0500 )edit

Do you have any pointers to RS485 based equipement drivers in ROS that I could use as template/inspiration?

RikTonnaer gravatar image RikTonnaer  ( 2018-07-24 05:57:10 -0500 )edit

re: example: no, not directly. RS485 is basically a serial port, so unless you're doing something special (ie: multidrop) can be used as one. It also depends on a bit on what hw you're using in that case (ie: there are inexpensive USB<->RS485 converters, but also dedicated expansion boards).

gvdhoorn gravatar image gvdhoorn  ( 2018-07-24 06:23:08 -0500 )edit

1 Answer

Sort by » oldest newest most voted
4

answered 2018-07-24 18:29:52 -0500

Mathias Lüdtke gravatar image

I am not exactly clear which device profile my device falls under. I expect CiA301 but not sure.

Every CANopen device must support CiA 301, it is the base for all CANopen communication.

How can I find out? Is this part of the .EDS file?

Object 0x1000 contains the device type. The actual value might or might not be listed in the EDS file.

Will I be able to use canopen_master for the communication with the power supply.

Should work. You can start with http://wiki.ros.org/canopen_chain_node , it will give acces to all objects of the EDS/DCF. Mostly meant for testing.

It should be subclassed to work with spefific devices, like canopen_motor_node for CiA 402 drives. As an alternative you can write your own interface, even without ROS

Therefor I was looking at either a CANgineBerry or a PICAN board. For the last one I am not sure if it supports CANOpen or SocketCAN.

SocketCAN is a kernel driver interface for CAN devices. (like eth0). CANopen is a protocol spefification. (like TCP/IP)

In addition ros_canopen has a plugin-system for using non-SocketCAN devices as well.

The website of the latter states "SocketCAN driver, appears as can0 to application" However, I was not able to find the support status of the CANgineBerry.

Does anyone have experience with either of these boards (or another) in combination with the canopen_master?

I think I have tested it with a PEAK USB dongle on Raspberry PI. If SocketCAN works, ros_canopen should work as well.

edit flag offensive delete link more

Question Tools

4 followers

Stats

Asked: 2018-07-12 13:57:12 -0500

Seen: 605 times

Last updated: Jul 24 '18