ROS2: How to generate code without makefile execution using Matlab coder
7 views (last 30 days)
How can I generate code only when deploying ROS2 node from Matlab script? Dispite I configure coder not to build the node I get error "Current compiler MinGW64 Compiler (C++) is not supported for ROS build. To choose a compiler, run 'mex -setup cpp'..". Process is interrupted before the code is generated.
My build config is below. I tried to generate code from Simulink and it works when I check "Generate code only" option in Hardware settigs. I have now no other option than use remote device deployment (Linux pc with ROS2 installed).
Toolchain is correctly configured to "Colcon Tools".
cfg = coder.config('exe');
cfg.Hardware = coder.hardware('Robot Operating System 2 (ROS 2)');
cfg.Hardware.BuildAction = 'None'; % Do not build
cfg.GenCodeOnly = true; % Force to generate code only
cfg.Hardware.DeployTo = 'Localhost';
Josh Chen on 27 Apr 2022
Thanks for bringing this to our attention! This is a bug in both ROS and ROS 2 MATLAB code generation. We are currently working on the fix and it should be availble in a recent update.
Unfortunately, there is no workaround to generate code only in MATLAB for now. Please consider using remote deployment as an alternative before this issue get address.