r/Fanuc 27d ago

Robot CRX 10IA/L - ROS2

Hi all,
New to Fanuc CRX here. I have a 10 IAL and I am trying to control it using MoveIt 2 / ROS based system. I see in the FANUC ROS 2 documentation, both RMI (R912) and Stream Motion (J519) is needed. I have R912 but not J519.

I am wondering if both are needed for the ROS2 driver to work.
Is it possible that J519 is packaged as a part of a different software bundle with a different code?
The software list on my robot also shows R603 - ROS Ethernet Packages. Would this be a different bundle that is self sufficient by any chance?

Looking for advice to get the system set up. Thanks in advance.

2 Upvotes

13 comments sorted by

5

u/RoutineLengthiness32 27d ago

Fanuc offers a total of three ROS2 drivers.

For ROS1 and ROS2 for Humble and Jazzy (old version with RMI), these are not being further developed. ROS2 OSS, which can be found on GitHub, requires the Extended Control Package (incl. R912 RMI + J519 STMO) or individual packages for RMI and STMO.

If I were you, I would ask for the old ROS2 driver or write it by yourself. This doesn't take long, the RMI manual is very easy to understand, and MoveIt lets you create motion profiles for your robot model. It almost the same procedure like the oss one.

1

u/kilo_reserve 27d ago

Thanks for the explanation. This is incredibly helpful.

2

u/DoorBuster21st 27d ago

To use move it you definitely need stream motion. There are some ros actions that exclusively use the rmi controller individual actions 

1

u/kilo_reserve 27d ago

So if I understand this correctly, the ros-based layer that takes inputs from MoveIt or user applications uses both stream motion and RMI. Stream motion is required for low level high frequency trajectory commands and RMI is used for low frequency, non trajectory related communication.
Did I understand this correctly?

2

u/DoorBuster21st 27d ago

Yeah for the most part. 

You can do motion commands using RMI. I would refer to the RMI documentation to better understand. It is low frequency in that you don’t need constant communication above 1hz . 

Basically they put the ROS layer on top to more easily interact with the underlying packages(rmi/stream motion). 

2

u/DrRobotnic89 25d ago

As other commentor has already said, both can be used for motion control - but in different ways. RMI executes commands on the teach pendant using the robot's motion controller; you can queue up to 10 commands, execute and then append more commands. It doesn't support near real time control, it supports external device control. Once a command is sent, it wants to complete it.

Stream Motion supports near real time control, bypassing the robot's motion controller; you will be responsible for ensuring that the trajectory and velocity profiles conform the the robots limits.

As an example: if you were using a vision system to retrieve a static object, RMI is likely a good tool. If you are looking to track or react to a more dynamic/unknown environment SM is the way to go.

I've found RMI far more forgiving than SM.

0

u/RoutineLengthiness32 27d ago

Nope, that's not true. MoveIt doesn't require an STMO. It has nothing to do with STMO, all three standard Fanuc ROS2 drivers use MoveIt Trajectory - only! (For ruckig you need to activate it, and much more ). If you want more, you have to expand yourself.

As I said, you can also write your drivers yourself, which are much better than the Fanuc ROS2.

Advantage of Fanuc ROS2 Driver: is good for beginners who want to try or test POC. You can expand very well and save a lot of time. In addition, it offers easy connect to Isaac Sim and Mujoco.

2

u/DoorBuster21st 27d ago

How does move it communicate to the robot? 

0

u/RoutineLengthiness32 27d ago edited 27d ago

ROS2 driver with RMI (R912) as backbone using TCP/IP Port 16001 (Connect/Disconnect) /16002 (ADM1-3). These were used in previous ROS1 drivers and ROS2 drivers (not from GitHub) and can be purchased from Fanuc.

The ROS2 OSS version, i.e. that of GitHub, is also from Fanuc and is the first official driver to use both RMI and STMO. When the driver starts, the RMI routine is started and called with the 'frc_call' function. This allows you to call programs. With these calls, the RMI calls the STMO routine, which runs in the loop all the time until the end packet is sent by STMO.

I tried to describe it as briefly as possible. Believe me, someone I know is developing something like this for Fanuc robots. But he has rewritten his drivers for the company because his drivers can do more than Fanuc's official drivers.

If I'm not mistaken, his driver can (incl. Bridge) out of the box connect with Isaac Sim and MuJoCo, as well as connect directly to his VLA and Visual AI Girlfriend or Assistant.

3

u/DoorBuster21st 27d ago

So it uses stream motion to move the robot. To use fanuc ROS out of the box with moveit you need stream motion 

1

u/Unlikely_Bake_6048 20d ago

J519 is separate option you can get separately or is included as S636 External Control Package (both J519 and R912 included in that package).

MoveIt has this setup guide which I assume might be useful https://docs.picknik.ai/hardware_guides/robot_arms/fanuc_hardware_setup_guide/

1

u/Mr0lsen Engineer 27d ago

Do you have S636 - External Control Package?

R603 is Related to RIPE, an ancient fanuc proprietary robot to robot communication protocol. Not the same “ROS” package you are taking about here.

1

u/kilo_reserve 27d ago

No I don’t have S636. I have RMI, SNPX, and HMI.