CommonplaceRobotics / iRC_ROS

ROS2 packages for the igus Robot Control
Apache License 2.0
15 stars 7 forks source link

CRI implementation #72

Open cpr-fer opened 1 year ago

cpr-fer commented 1 year ago

The current status of the CRI implementation, the alternative to CPRCANv2, is in a unsupported and likely broken state. This won't change much until a new CRI protocol version is published which should add an alternative over only having a working velocity/jog command. Until then only the code style should be improved.

JHeuverRiwo commented 1 year ago

Is anything known at this point about when this new CRI version will arrive?

cpr-fer commented 1 year ago

Hello @JHeuverRiwo as far as I am informed a new CRI version is currently in development, but I can't say anything about the priority of that specific feature or give an estimated release date, sorry Until then I would recommend using the CPRCAN hardware interface if you are interested in using ROS

JHeuverRiwo commented 1 year ago

Hello @cpr-fer , that is good to know, we will switch to the CPRCAN interface for the time being then. Thank you for the swift reply.

cpr-fer commented 1 year ago

Great :) If you encounter any problems don't hesitate to create an issue here. If anything regarding CRI comes up it will most likely be mentioned on this issue as well, so you should receive an email notification too

JHeuverRiwo commented 1 year ago

Hello, so right now, we have this situation: we own two rebel-6dof-01 models, and we would like to switch to CAN. We have read through all the instructions we can find, but cannot figure out how to actually connect to the CAN bus physically. The only mention of the CAN bus we can find in the instructions is that it's internally hooked up to the embedded control board.

Do you know how best to connect this, or perhaps know where to get this info? Thanks in advance!

cpr-fer commented 1 year ago

Hi, so a short disclaimer: While the CAN side is a lot nicer to use from a software side, for the hardware it is the opposite way. This is why this package contains both options, each with their own advantages and drawbacks.

The only mention of the CAN bus we can find in the instructions is that it's internally hooked up to the embedded control board.

This would be the easiest option, the EmbeddedControl is basically a Raspberry Pi 4 with additional hardware for the voltage supply etc. If you don't have a reason not to use a Raspberry Pi, e.g. requiring more performance or an x86_64 architecture, I would suggest using it directly and installing ROS on there. The CAN bus is connected to the Pi and should be readily available as can0 out of the box. I don't know how easy it is to switch the SD card in there, but that should be the safest way of being able to go back to the factory settings. Then simply flash ubuntu on a new SD card and carefully start with a single robot axis, always being close to the emergency button, as everything here is still in active development.

Do you know how best to connect this, or perhaps know where to get this info? Thanks in advance!

If you want to connect to it yourself you could remove the base and use your own hardware. This is equivalent to using the igus ReBeL open source version, I need to check if there is some documentation regarding the physical connections required. There are two cables between robot and robot base, one is the CAN bus and the other the power supply. While the CAN cable is straightforward to use, the pinout and specific requirements for the power cable are critical.

Hope that answers your questions and I'll update you if I find more documentation online

cpr-fer commented 1 year ago

So I did not find an install manual for the open source version (the one which does not include a base) of the ReBeL, but the documentation of the motor controllers is here One cable to K3/4 and one to K9/10 are used to control and power the robot. If you prefer to have a solution that is not based on the existing robot control hardware these are the cables that you need to connect to. The manual I linked provides some information, but I advise you to not try that way unless you or someone else from your team has some knowledge about electrical circuits.

JHeuverRiwo commented 1 year ago

Thanks a lot for the information! I will discuss with my team how we proceed from here.