本篇內容介紹了“怎么在gazebo中添加物體”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
%% 修改成虛擬機IP地址
ipaddress = '192.168.137.129';
%% 初始化
rosinit(ipaddress)
%% 獲取gazebo元素
gazebo = ExampleHelperGazeboCommunicator();
%% 新建一個球
ball = ExampleHelperGazeboModel('Ball');
%% 設置球的詳細
spherelink = addLink(ball,'sphere',0.6,'color',[0 0 1 1]);
%% 放置球
spawnModel(gazebo,ball,[8.5,0,1]);
%% 定義幾個物體位置
x = [1.5 1.5 1.5 1.5 2.5 2.5 2.5 3.5 3.5 4.5];
y = [-1.5 -0.5 0.5 1.5 -1 0 1 -0.5 0.5 0];
%% 新建一個立柱
pin = ExampleHelperGazeboModel('BowlPin');
%% 設置立柱的詳細
link1 = addLink(pin,'cylinder',[1 0.2],'position',[0,0,0.5]);
link2 = addLink(pin,'sphere',0.2,'position',[0,0, 1.2],'color',[0.7 0 0.2 1]);
joint = addJoint(pin,link1,link2,'revolute',[0 0],[0 0 1]);
%% 放置這些立柱
for i = 1:10
spawnModel(gazebo,pin,[x(i),y(i),0.7]);
pause(1);
end
%% 如果上次那個機器人在里面就把它移除
if ismember('mobile_base',getSpawnedModels(gazebo))
removeModel(gazebo,'mobile_base');
end
%% 新建一個屏障
barrier = ExampleHelperGazeboModel('jersey_barrier','gazeboDB');
%% 放置屏障
spawnModel(gazebo,barrier,[1.5,-3,0]); % Right barrier
pause(1);
spawnModel(gazebo,barrier,[1.5,3,0]); % Left barrier
%% 通過名字取得剛剛放置的藍色球
spawnedBall = ExampleHelperGazeboSpawnedModel(ball.Name,gazebo);
%% 設置外力的大小方向時間
duration = 1; % Seconds
forcevec = [-75 0 0]; % Newtons
%% 施加外力
applyForce(spawnedBall, spherelink, duration, forcevec);
pause(5);
%% 清除球和立柱
exampleHelperGazeboCleanupBowling;
%% 清空
clear
%% 關閉連接
rosshutdown
運行該程序需要matlab2016b環境
“怎么在gazebo中添加物體”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。