這篇文章給大家介紹怎么在gazebo中施加作用力,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括太白網(wǎng)站建設(shè)、太白網(wǎng)站制作、太白網(wǎng)頁(yè)制作以及太白網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,太白網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到太白省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
修改成虛擬機(jī)IP地址
ipaddress = '192.168.137.129';
初始化
rosinit(ipaddress)
獲取gazebo元素
gazebo = ExampleHelperGazeboCommunicator();
新建并放置三個(gè)可以打開(kāi)的門(mén)
doormodel = ExampleHelperGazeboModel('hinged_door','gazeboDB');
door1 = spawnModel(gazebo,doormodel,[-1.5 2.0 0]);
door2 = spawnModel(gazebo,doormodel,[-1.5 0.5 0],[0 0 pi]);
door3 = spawnModel(gazebo,doormodel,[-1.5 -2.5 0]);
獲取第一個(gè)門(mén)的運(yùn)動(dòng)副
[links, joints] = getComponents(door1);
在第一個(gè)門(mén)的運(yùn)動(dòng)副上施加作用效果
stopTime = 5; % Seconds
effort = 3.0; % Newton-meters
jointTorque(door1, joints{2}, stopTime, effort);
在第二個(gè)門(mén)的運(yùn)動(dòng)副上施加力矩
forceVector = [0 0 0]; % Newtons
torqueVector = [0 0 3]; % Newton-meters
applyForce(door2, links{2}, stopTime, forceVector, torqueVector);
在第二個(gè)門(mén)的運(yùn)動(dòng)副上施加力
forceVector = [0 -2 0]; % Newtons
applyForce(door2, links{2}, stopTime, forceVector);
直接設(shè)置第三個(gè)門(mén)的運(yùn)動(dòng)副狀態(tài)
angdelta = 0.1; % Radians
dt = 0; % Seconds
angle = 0; % Radians
tic
while (toc < stopTime)
if angle > 1.5 || angle < 0 % In radians
angdelta = -angdelta;
end
angle = angle+angdelta;
setConfig(door3,joints{2},angle);
pause(dt);
end
新建并放置一個(gè)新的移動(dòng)robot
botmodel = ExampleHelperGazeboModel('turtlebot','gazeboDB');
bot = spawnModel(gazebo,botmodel,[1,0,0]);
設(shè)置robot的姿態(tài)
setState(bot,'orientation',[0 0 pi/2]);
獲取robot的運(yùn)動(dòng)副
[botlinks, botjoints] = getComponents(bot);
在robot的運(yùn)動(dòng)副上施加作用效果
turnStopTime = 1; % Seconds
turnEffort = 0.2; % Newton-meters
jointTorque(bot, botjoints{2}, turnStopTime, turnEffort)
新建并放置一個(gè)新的移動(dòng)robot2
bot2 = spawnModel(gazebo,botmodel,[2,0,0]);
[botlinks2, botjoints2] = getComponents(bot2);
在robot2的運(yùn)動(dòng)副上施加作用力
applyForce(bot2,botlinks2{1},2,[0 1 0]);
在robot2的運(yùn)動(dòng)副上施加作用力
applyForce(bot2,botlinks2{1},2,[1 0 0]);
在robot2的運(yùn)動(dòng)副上施加作用力矩
applyForce(bot2,botlinks2{1},2,[0 0 0],[0 0 1]);
新建具有彈性的小球
bounce = 1; % Unitless coefficient
maxCorrectionVelocity = 10; % Meters per second
ballmodel = ExampleHelperGazeboModel('ball');
addLink(ballmodel,'sphere',0.2,'color',[0.3 0.7 0.7 0.5],'bounce',[bounce maxCorrectionVelocity]);
放置具有彈性的一高一低小球兩個(gè)
spawnModel(gazebo,ballmodel,[0 1 2]);
spawnModel(gazebo,ballmodel,[0 1 3]);
pause(5);
清除gazebo中的物體
exampleHelperGazeboCleanupApplyForces;
情況變量
clear
關(guān)閉連接
rosshutdown
關(guān)于怎么在gazebo中施加作用力就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
本文名稱(chēng):怎么在gazebo中施加作用力
標(biāo)題網(wǎng)址:http://aaarwkj.com/article38/igshsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站排名、企業(yè)建站、網(wǎng)站內(nèi)鏈、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)