Question
I am trying to store a callback data from ROS's topic called /scan in a properties (laser) of class that I created. I got an error like this: "No public field laser exists for class robotics.ros.Subscriber.Error in MobileRobot/Callback_Laser (line 14) obj.laser = [message.Ranges];Error in @(varargin)robot.Callback_Laser(varargin{:})Error in robotics.ros.internal.onNewMessageCallback (line 44) feval(callbackFcn, source, message, userData{:}); Warning: Error occurred while evaluating listener callback." Where is my mistake e how can I store a the callback data in a properties class? Next the code class. classdef MobileRobot < handle properties(Access = public) odom=[]; laser = []; end methods(Access = public) function obj = MobileRobot() % Constructor end function Callback_Laser(~, obj, message) % global laser % laser = [message.Ranges]; obj.laser = [message.Ranges]; end end end and the main code clear all;close all;clc; rosinit global rosMasterIp; rosMasterIp = 'http://192.168.0.113:11311'; global localhostIp; localhostIp = '192.168.0.113'; global robot; robot = MobileRobot(); set_pose = robotics.ros.Node('getLaser',rosMasterIp,'NodeHost' , localhostIp); subs = rossubscriber('/scan',@robot.Callback_Laser);
Expert Answer
John Michell
PhD Expert
Answered Aug 14, 2026
The issue here seems to be that the callback tied to rossubscriber is required to have 2 inputs "src" and "msg", where "src" is the subscriber itself and "msg" is the message received.
Notice that the way you have defined your Callback_laser method, "obj" isn't the instance of the class, but rather a reference to the subscriber... which, as the error message suggests, does not have a "laser" property.
Does it work if you change your method to be the following?
function Callback_Laser(obj, src, message) obj.laser = [message.Ranges]; end
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related ros Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →