Я пытаюсь сохранить данные обратного вызова из темы ROS под названием /scan в свойствах (лазере) класса, который я создал.

Я получил такую ​​​​ошибку:

"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{:});

Предупреждение: при оценке обратного вызова прослушивателя произошла ошибка».

В чем моя ошибка? Как сохранить данные обратного вызова в классе свойств?

Далее класс кода.

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

и основной код

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);

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю справку по домашним заданиям MatLab, справку по назначению MatLab, помощь по финансам для студентов, инженеров и исследователей в нескольких отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для B.E, B .Tech, ME, M.Tech, Ph.D. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Проблема здесь, похоже, в том, что обратный вызов, привязанный к rossubscriber, должен иметь 2 входа «src» и «msg», где «src» — это сам подписчик, а «msg» — полученное сообщение.

Обратите внимание на то, как вы определили свой метод Callback_laser, «obj» — это не экземпляр класса, а скорее ссылка на подписчика… который, как следует из сообщения об ошибке, не имеет свойства «laser».

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ