![《ROS應(yīng)用技術(shù)》課件-16.機(jī)器人仿真_第1頁](http://file4.renrendoc.com/view8/M02/2C/10/wKhkGWbtap2AIG35AAHi-hRtIzY531.jpg)
![《ROS應(yīng)用技術(shù)》課件-16.機(jī)器人仿真_第2頁](http://file4.renrendoc.com/view8/M02/2C/10/wKhkGWbtap2AIG35AAHi-hRtIzY5312.jpg)
![《ROS應(yīng)用技術(shù)》課件-16.機(jī)器人仿真_第3頁](http://file4.renrendoc.com/view8/M02/2C/10/wKhkGWbtap2AIG35AAHi-hRtIzY5313.jpg)
![《ROS應(yīng)用技術(shù)》課件-16.機(jī)器人仿真_第4頁](http://file4.renrendoc.com/view8/M02/2C/10/wKhkGWbtap2AIG35AAHi-hRtIzY5314.jpg)
![《ROS應(yīng)用技術(shù)》課件-16.機(jī)器人仿真_第5頁](http://file4.renrendoc.com/view8/M02/2C/10/wKhkGWbtap2AIG35AAHi-hRtIzY5315.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ROS應(yīng)用開發(fā)技術(shù)1.機(jī)器人仿真-ArbotiX+RViz介紹目錄CONTENTS01Arbotix02Rviz03ArbotiX與Rviz的結(jié)合目錄CONTENTSArbotiXArbotiXArbotiX的定義ArbotiX的定義ArbotiX是一個(gè)開源的機(jī)器人控制器,專為構(gòu)建和控制多關(guān)節(jié)機(jī)器人而設(shè)計(jì)。它由TrossenRobotics開發(fā),并用于他們的機(jī)器人平臺(tái),如PhantomXHexapod和InterbotiX系列。ArbotiX功能與應(yīng)用ArbotiX功能與應(yīng)用03010204技術(shù)特點(diǎn)適用于教育、研究和業(yè)余愛好者等機(jī)器人應(yīng)用領(lǐng)域開發(fā)工具支持設(shè)備應(yīng)用領(lǐng)域基于AtmelAVR系列微控制器,具有豐富的輸入輸出接口支持各種傳感器和執(zhí)行器,如舵機(jī)、步進(jìn)電機(jī)、直流電機(jī)等提供ROS和Arduino等開發(fā)工具和庫RvizRvizRviz介紹Rviz介紹Rviz是一個(gè)強(qiáng)大的三維可視化工具,用于顯示和調(diào)試機(jī)器人感知、控制、導(dǎo)航等方面的數(shù)據(jù)。Rviz允許用戶以直觀的方式查看機(jī)器人的傳感器信息、運(yùn)動(dòng)規(guī)劃路徑、三維模型等,有助于理解機(jī)器人系統(tǒng)的工作狀態(tài)。Rviz的主要功能Rviz的主要功能0205040103顯示運(yùn)動(dòng)規(guī)劃路徑,包括軌跡、目標(biāo)點(diǎn)、障礙物等功能一功能二顯示和調(diào)試機(jī)器人感知、控制、導(dǎo)航等數(shù)據(jù)功能三功能五可視化機(jī)器人模型,加載URDF描述文件顯示傳感器數(shù)據(jù),如點(diǎn)云、二維地圖、圖像等交互式操作,提供選擇、測量、導(dǎo)航工具功能四ArbotiX與Rviz的結(jié)合ArbotiX與Rviz的結(jié)合ArbotiX與Rviz的結(jié)合應(yīng)用ArbotiX與Rviz的結(jié)合應(yīng)用結(jié)合應(yīng)用功能三實(shí)現(xiàn)三維可視化和調(diào)試控制機(jī)器人運(yùn)動(dòng),實(shí)時(shí)顯示位置、姿態(tài)和軌跡交互式調(diào)試,實(shí)時(shí)調(diào)整和優(yōu)化系統(tǒng)設(shè)計(jì)顯示傳感器數(shù)據(jù),獲取環(huán)境信息功能二運(yùn)動(dòng)規(guī)劃和路徑顯示,評估路徑規(guī)劃算法功能一功能四ROS應(yīng)用開發(fā)技術(shù)2.機(jī)器人仿真-ArbotiX+rz功能仿真實(shí)訓(xùn)(上)目錄CONTENTS01準(zhǔn)備工作02模型編寫啟動(dòng)文件編寫目錄CONTENTS0304模型展示準(zhǔn)備工作準(zhǔn)備工作仿真內(nèi)容仿真內(nèi)容構(gòu)建功能仿真所需機(jī)器人模型運(yùn)動(dòng)仿真使模型進(jìn)行物理運(yùn)動(dòng)模型構(gòu)建工作空間創(chuàng)建工作空間創(chuàng)建創(chuàng)建工作空間cd~/ros_ws/srccatkin_init_workspacecd~/ros_wscatkin_make初始化工作空間cd~/ros_wsmkdirsrc創(chuàng)建src文件cd~mkdirros_ws功能包編譯功能包創(chuàng)建功能包創(chuàng)建進(jìn)入src文件夾創(chuàng)建名為urdf_rviz點(diǎn)的功能包,依賴為urdf和xacrocatkin_create_pkgurdf_rvizurdfxacro文件夾創(chuàng)建文件夾創(chuàng)建為便于后續(xù)管理,創(chuàng)建如下文件夾用于存放所有的啟動(dòng)文件launch該文件夾將用于存放后續(xù)的模型文件urdf用于存放配置文件configecho"source~/ros_ws/devel/setup.bash">>~/.bashrcsource~/.bashrc添加環(huán)境變量更新環(huán)境模型編寫模型編寫t1_car.urdf文件編寫t1_car.urdf文件編寫<robotname="mycar"><linkname="base_footprint"><visual><geometry><sphereradius="0.001"/></geometry></visual></link><linkname="base_link"><visual><geometry><cylinderradius="0.1"length="0.08"/></geometry><originxyz="000"rpy="000"/><materialname="yellow"><colorrgba="0.80.30.10.8"/></material></visual></link>在urdf目錄下新建urdf和xacro文件夾,并在urdf下編寫t1_car.urdft1_car.urdf文件編寫t1_car.urdf文件編寫
<!--底盤和基底間的關(guān)節(jié)--><jointname="base_link2base_footprint"type="fixed"><parentlink="base_footprint"/><childlink="base_link"/><originxyz="000.055"/></joint><!--添加驅(qū)動(dòng)輪--><!--左輪--><linkname="left_wheel"><visual><geometry><cylinderradius="0.0325"length="0.015"/></geometry><originxyz="000"rpy="1.570500"/><materialname="black"><colorrgba="0.00.00.01.0"/></material></visual></link>在urdf目錄下新建urdf和xacro文件夾,并在urdf下編寫t1_car.urdft1_car.urdf文件編寫t1_car.urdf文件編寫<!--左輪和底盤間關(guān)節(jié)--><jointname="left_wheel2base_link"type="continuous"><parentlink="base_link"/><childlink="left_wheel"/><originxyz="00.1-0.0225"/><axisxyz="010"/></joint><!--右輪--><linkname="right_wheel"><visual><geometry><cylinderradius="0.0325"length="0.015"/></geometry><originxyz="000"rpy="1.570500"/><materialname="black"><colorrgba="0.00.00.01.0"/></material></visual></link>在urdf目錄下新建urdf和xacro文件夾,并在urdf下編寫t1_car.urdft1_car.urdf文件編寫t1_car.urdf文件編寫<!--右輪和底盤間關(guān)節(jié)--><jointname="right_wheel2base_link"type="continuous"><parentlink="base_link"/><childlink="right_wheel"/><originxyz="0-0.1-0.0225"/><axisxyz="010"/></joint><!--添加萬向輪(支撐輪)--><linkname="front_wheel"><visual><geometry><sphereradius="0.0075"/></geometry><originxyz="000"rpy="000"/><materialname="black"><colorrgba="0.00.00.01.0"/></material></visual></link>在urdf目錄下新建urdf和xacro文件夾,并在urdf下編寫t1_car.urdft1_car.urdf文件編寫t1_car.urdf文件編寫<!--前萬向輪和底盤間關(guān)節(jié)--><jointname="front_wheel2base_link"type="continuous"><parentlink="base_link"/><childlink="front_wheel"/><originxyz="0.09250-0.0475"/><axisxyz="111"/></joint><!--前侯萬向輪--><linkname="back_wheel"><visual><geometry><sphereradius="0.0075"/></geometry><originxyz="000"rpy="000"/><materialname="black"><colorrgba="0.00.00.01.0"/></material></visual></link>在urdf目錄下新建urdf和xacro文件夾,并在urdf下編寫t1_car.urdft1_car.urdf文件編寫t1_car.urdf文件編寫
<!--后萬向輪和底盤間關(guān)節(jié)--><jointname="back_wheel2base_link"type="continuous"><parentlink="base_link"/><childlink="back_wheel"/><originxyz="-0.09250-0.0475"/><axisxyz="111"/></joint></robot>在urdf目錄下新建urdf和xacro文件夾,并在urdf下編寫t1_car.urdf啟動(dòng)文件編寫啟動(dòng)文件編寫t1_car.launch文件編寫t1_car.launch文件編寫<launch><!--將urdf文件內(nèi)容設(shè)置進(jìn)參數(shù)服務(wù)器--><!--<paramname="robot_description"textfile="$(find工作空間)/路徑/文件名.urdf"/>--><paramname="robot_description"textfile="$(findurdf_rviz)/urdf/urdf/t1_car.urdf"/>
<!--啟動(dòng)rivz--><!--<nodepkg="rviz"type="rviz"name="rviz_test"args="-d$(finddemo01_urdf_helloworld)/config/helloworld.rviz"/>--><nodepkg="rviz"type="rviz"name="rviz"/>
<!--啟動(dòng)機(jī)器人狀態(tài)和關(guān)節(jié)狀態(tài)發(fā)布節(jié)點(diǎn)--><nodepkg="robot_state_publisher"type="robot_state_publisher"name="robot_state_publisher"/><nodepkg="joint_state_publisher"type="joint_state_publisher"name="joint_state_publisher"/>
<!--啟動(dòng)圖形化的控制關(guān)節(jié)運(yùn)動(dòng)節(jié)點(diǎn)--><nodepkg="joint_state_publisher_gui"type="joint_state_publisher_gui"name="joint_state_publisher_gui"/>
</launch>進(jìn)入launch目錄,編寫t1_car.launch文件模型展示模型展示文件運(yùn)行文件運(yùn)行使用roslaunch命令啟動(dòng)launch文件roslaunchurdf_rvizt1_car.launch設(shè)置修改設(shè)置修改添加組件更改標(biāo)簽添加確認(rèn)需要添加RobotModel、TF、Axis三個(gè)組件模型展示模型展示取消Axes參數(shù)配置保存配置保存020301點(diǎn)擊Rviz中的‘File’按鈕,在下拉框中選擇‘SaveConfigAs’<nodepkg="rviz"type="rviz"name="rviz_test"args="-d$(findurdf_rviz)/config/t1_car.rviz"/>在name旁輸入文件保存名,并將目錄跳轉(zhuǎn)到文件保存目錄后打開t1_car.launch文件,修改nodepkgROS應(yīng)用開發(fā)技術(shù)2.機(jī)器人仿真-ArbotiX+rz功能仿真實(shí)訓(xùn)(下)01宏文件編寫02啟動(dòng)文件編寫03功能仿真實(shí)現(xiàn)目錄CONTENTS宏文件編寫創(chuàng)建車體<robotname="my_base"xmlns:xacro="/wiki/xacro"><xacro:propertyname="PI"value="3.141"/><materialname="black"><colorrgba="0.00.00.01.0"/></material><xacro:propertyname="base_footprint_radius"value="0.001"/><xacro:propertyname="base_link_radius"value="0.1"/><!--base_link半徑--><xacro:propertyname="base_link_length"value="0.08"/><!--base_link長--><xacro:propertyname="earth_space"value="0.015"/><!--離地間距-->
<!--底盤只有一個(gè),直接編寫--><linkname="base_footprint"><visual><geometry><sphereradius="${base_footprint_radius}"/></geometry></visual></link>進(jìn)入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件創(chuàng)建車體<linkname="base_link"><visual><geometry><cylinderradius="${base_link_radius}"length="${base_link_length}"/></geometry><originxyz="000"rpy="000"/><materialname="yellow"><colorrgba="0.50.30.00.5"/></material></visual></link>
<jointname="base_link2base_footprint"type="fixed"><parentlink="base_footprint"/><childlink="base_link"/><originxyz="00${earth_space+base_link_length/2}"/></joint>進(jìn)入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件創(chuàng)建車體<!--驅(qū)動(dòng)輪--><!--驅(qū)動(dòng)輪屬性封裝--><xacro:propertyname="wheel_radius"value="0.0325"/><!--半徑--><xacro:propertyname="wheel_length"value="0.015"/><!--寬度--><!--驅(qū)動(dòng)輪宏實(shí)現(xiàn)--><xacro:macroname="add_wheels"params="nameflag"><linkname="${name}_wheel"><visual><geometry><cylinderradius="${wheel_radius}"length="${wheel_length}"/></geometry><originxyz="0.00.00.0"rpy="${PI/2}0.00.0"/><materialname="black"/></visual></link>進(jìn)入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件創(chuàng)建車體<jointname="${name}_wheel2base_link"type="continuous"><parentlink="base_link"/><childlink="${name}_wheel"/><originxyz="0${flag*base_link_radius}${-(earth_space+base_link_length/2-wheel_radius)}"/><axisxyz="010"/></joint></xacro:macro><!--宏調(diào)用,添加左右輪--><xacro:add_wheelsname="left"flag="1"/><xacro:add_wheelsname="right"flag="-1"/>進(jìn)入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件創(chuàng)建車體<!--支撐輪--><!--支撐輪屬性--><xacro:propertyname="support_wheel_radius"value="0.0075"/><!--支撐輪半徑--><!--支撐輪宏--><xacro:macroname="add_support_wheel"params="nameflag"><linkname="${name}_wheel"><visual><geometry><sphereradius="${support_wheel_radius}"/></geometry><originxyz="000"rpy="000"/><materialname="black"/></visual></link>進(jìn)入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件創(chuàng)建車體<!--支撐輪和底盤的關(guān)節(jié)宏--><jointname="${name}_wheel2base_link"type="continuous"><parentlink="base_link"/><childlink="${name}_wheel"/><originxyz="${flag*(base_link_radius-support_wheel_radius)}0${-(base_link_length/2+earth_space/2)}"/><axisxyz="111"/></joint></xacro:macro><!--宏調(diào)用,添加前后支撐輪--><xacro:add_support_wheelname="front"flag="1"/><xacro:add_support_wheelname="back"flag="-1"/></robot>進(jìn)入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件攝像頭添加<!--攝像頭相關(guān)的xacro文件--><robotname="my_camera"xmlns:xacro="/xacro"><!--攝像頭屬性--><xacro:propertyname="camera_length"value="0.01"/><!--攝像頭長度(x)--><xacro:propertyname="camera_width"value="0.025"/><!--攝像頭寬度(y)--><xacro:propertyname="camera_height"value="0.025"/><!--攝像頭高度(z)--><xacro:propertyname="camera_x"value="0.08"/><!--攝像頭安裝的x坐標(biāo)--><xacro:propertyname="camera_y"value="0.0"/><!--攝像頭安裝的y坐標(biāo)--><xacro:propertyname="camera_z"value="${base_link_length/2+camera_height/2}"/><!--攝像頭安裝的z坐標(biāo):底盤高度/2+攝像頭高度/2-->進(jìn)入urfd目錄下的xacro文件夾中,編寫t2_camera.xacro文件攝像頭添加
<!--攝像頭關(guān)節(jié)以及l(fā)ink--><linkname="camera"><visual><geometry><boxsize="${camera_length}${camera_width}${camera_height}"/></geometry><originxyz="0.00.00.0"rpy="0.00.00.0"/><materialname="black"/></visual></link>
<jointname="camera2base_link"type="fixed"><parentlink="base_link"/><childlink="camera"/><originxyz="${camera_x}${camera_y}${camera_z}"/></joint></robot>進(jìn)入urfd目錄下的xacro文件夾中,編寫t2_camera.xacro文件雷達(dá)添加<robotname="my_laser"xmlns:xacro="/xacro">
<!--雷達(dá)支架--><xacro:propertyname="support_length"value="0.15"/><!--支架長度--><xacro:propertyname="support_radius"value="0.01"/><!--支架半徑--><xacro:propertyname="support_x"value="0.0"/><!--支架安裝的x坐標(biāo)--><xacro:propertyname="support_y"value="0.0"/><!--支架安裝的y坐標(biāo)--><xacro:propertyname="support_z"value="${base_link_length/2+support_length/2}"/><!--支架安裝的z坐標(biāo):底盤高度/2+支架高度/2-->進(jìn)入urfd目錄下的xacro文件夾中,編寫t3_laser.xacro文件雷達(dá)添加<linkname="support"><visual><geometry><cylinderradius="${support_radius}"length="${support_length}"/></geometry><originxyz="0.00.00.0"rpy="0.00.00.0"/><materialname="red"><colorrgba="0.80.20.00.8"/></material></visual></link>
<jointname="support2base_link"type="fixed"><parentlink="base_link"/><childlink="support"/><originxyz="${support_x}${support_y}${support_z}"/></joint>進(jìn)入urfd目錄下的xacro文件夾中,編寫t3_laser.xacro文件雷達(dá)添加<!--雷達(dá)屬性--><xacro:propertyname="laser_length"value="0.05"/><!--雷達(dá)長度--><xacro:propertyname="laser_radius"value="0.03"/><!--雷達(dá)半徑--><xacro:propertyname="laser_x"value="0.0"/><!--雷達(dá)安裝的x坐標(biāo)--><xacro:propertyname="laser_y"value="0.0"/><!--雷達(dá)安裝的y坐標(biāo)--><xacro:propertyname="laser_z"value="${support_length/2+laser_length/2}"/><!--雷達(dá)安裝的z坐標(biāo):支架高度/2+雷達(dá)高度/2-->進(jìn)入urfd目錄下的xacro文件夾中,編寫t3_laser.xacro文件雷達(dá)添加<!--雷達(dá)關(guān)節(jié)以及l(fā)ink--><linkname="laser"><visual><geometry><cylinderradius="${laser_radius}"length="${laser_length}"/></geometry><originxyz="0.00.00.0"rpy="0.00.00.0"/><materialname="black"/></visual></link>
<jointname="laser2support"type="fixed"><parentlink="support"/><childlink="laser"/><originxyz="${laser_x}${laser_y}${laser_z}"/></joint></robot>進(jìn)入urfd目錄下的xacro文件夾中,編寫t3_laser.xacro文件組件整合<!--組合小車、攝像頭、雷達(dá)--><robotname="my_car_camera"xmlns:xacro="/xacro"><xacro:includefilename="t1_car.xacro"/><xacro:includefilename="t2_camera.xacro"/><xacro:includefilename="t3_laser.xacro"/></robot>進(jìn)入urfd目錄下的xacro文件夾中,編寫t4_123combine.xacro文件啟動(dòng)文件編寫t4_xacro.launch文件編寫<launch><!--將xacro文件內(nèi)容設(shè)置進(jìn)參數(shù)服務(wù)器--><!--urdf調(diào)用方式--><!--<paramname="robot_description"textfile="$(findurdf_rviz)/urdf/urdf/t1_car.urdf"/>--><!--xacro調(diào)用方式--><paramname="robot_description"command="$(findxacro)/xacro$(findurdf_rviz)/urdf/xacro/t4_123combine.xacro"/><!--啟動(dòng)rivz--><nodepkg="rviz"type="rviz"name="rviz"args="-d$(findurdf_rviz)/config/t1_car.rviz"/><!--<nodepkg="rviz"type="rviz"name="rviz"/>--><!--啟動(dòng)機(jī)器人狀態(tài)和關(guān)節(jié)狀態(tài)發(fā)布節(jié)點(diǎn)--><nodepkg="joint_state_publisher"type="joint_state_publisher"name="joint_state_publisher"output="screen"/><nodepkg="robot_state_publisher"type="robot_state_publisher"name="robot_state_publisher"output="screen"/><!--啟動(dòng)圖形化的控制關(guān)節(jié)運(yùn)動(dòng)節(jié)點(diǎn)--><nodepkg="joint_state_publisher_gui"type="joint_state_publisher_gui"name="joint_state_publisher_gui"output="screen"/></launch>在launch文件夾下新建t4_xacro.launch模型展示重新編譯功能包后運(yùn)行啟動(dòng)文件
roslaunchurdf_rvizt4_xacro.launch功能仿真實(shí)現(xiàn)Arbotix的安裝源碼下載配置文件編寫cdurdf_rviz/configvicontrol.yamlgitclone/vanadiumlabs/arbotix_ros.git文件內(nèi)容controllers:{#單控制器設(shè)置base_controller:{#類型:差速控制器type:diff_controller,#參考坐標(biāo)base_frame_id:base_footprint,#兩個(gè)輪子之間的間距base_width:0.2,#控制頻率ticks_meter:2000,#PID控制參數(shù),使機(jī)器人車輪快速達(dá)到預(yù)期速度Kp:12,Kd:12,Ki:0,Ko:50,#加速限制accel_limit:1.0}}t5_arbotix.launch文件編寫<launch><!--urdf調(diào)用方式--><!--<paramname="robot_description"textfile="$(findurdf_rviz)/urdf/urdf/t1_car.urdf"/>--><!--xacro調(diào)用方式--><paramname="robot_description"command="$(findxacro)/xacro$(findurdf_rviz)/urdf/xacro/t4_123combine.xacro"/><!--啟動(dòng)rivz--><nodepkg="rviz"type="rviz"name="rviz"args="-d$(findurdf_rviz)/config/t1_car.rviz"/><!--<nodepkg="rviz"type="rviz"name="rviz"/>--><!--啟動(dòng)機(jī)器人狀態(tài)和關(guān)節(jié)狀態(tài)發(fā)布節(jié)點(diǎn)--><nodepkg="joint_state_publisher"type="joint_state_publisher"name="joint_state_publisher"output="screen"/><nodepkg="robot_state_publisher"type="robot_state_publisher"name="robot_state_publisher"output="screen"/><!--集成arbotix運(yùn)動(dòng)控制節(jié)點(diǎn),加載參數(shù)--><nodename="arbotix"pkg="arbotix_python"type="arbotix_driver"output="screen"><!--<rosparamfile="$(find工作空間)/config/文件名.yaml"command="load"/>--><rosparamfile="$(findurdf_rviz)/config/control.yaml"command="load"/><paramname="sim"value="true"/></node></launch>在launch文件夾下新建t5_arbotix.launch效果展示roslaunchurdf_rvizt5_arbotix.launch話題查看效果展示以10Hz的頻率發(fā)布速度命令到
/cmd_vel
話題,讓機(jī)器人以0.2米/秒的速度向前移動(dòng),并同時(shí)以0.5弧度/秒的速度原地旋轉(zhuǎn)。rostopicpub-r10/cmd_velgeometry_msgs/Twist'{linear:{x:0.2,y:0,z:0},angular:{x:0,y:0,z:0.5}}'ROS應(yīng)用開發(fā)技術(shù)3.機(jī)器人仿真-Gazebo介紹01Gazebo簡介目錄CONTENTSGazebo簡介Gazebo介紹Gazebo是一款開源的3D動(dòng)態(tài)模擬器,主要用于測試和驗(yàn)證機(jī)器人系統(tǒng)的行為和性能。它提供了一個(gè)功能強(qiáng)大的仿真平臺(tái),能夠模擬真實(shí)世界中的物理行為,如碰撞、重力等。Gazebo支持加載各種三維模型,包括機(jī)器人、傳感器、環(huán)境等,并能夠進(jìn)行高質(zhì)量的圖形渲染,提供高保真度的物理模擬。Gazebo的功能與優(yōu)勢圖形用戶界面、命令行工具和APIGazebo與ROSGazebo定義支持的機(jī)器人類型提供真實(shí)的物理仿真環(huán)境,測試機(jī)器人性能和控制算法激光雷達(dá)、相機(jī)、慣性測量單元等Gazebo優(yōu)勢開源的多機(jī)器人物理仿真器支持的傳感器模型固定翼飛機(jī)、直升機(jī)、汽車、水下機(jī)器人等支持ROS,通過ROS工具和庫控制和監(jiān)測機(jī)器人狀態(tài)交互式工具ros_control功能包與Gazebo物理仿真密切相關(guān)的功能包作用機(jī)器人導(dǎo)航、定位、機(jī)械臂運(yùn)動(dòng)規(guī)劃等功能范圍快速實(shí)現(xiàn)高級功能到機(jī)器人硬件,提高開發(fā)效率關(guān)鍵功能重要性控制器接口、傳統(tǒng)設(shè)備接口、硬件接口、控制器工具箱中間件角色連接軟件層與底層硬件推動(dòng)機(jī)器人技術(shù)的快速發(fā)展和應(yīng)用ros_control定義ros_control的總體框架中間接口,連接上層應(yīng)用與底層機(jī)器人控制邏輯分離分離硬件和軟件,提供常用接口控制器插件對不同硬件的良好兼容性硬件抽象層管理硬件資源,處理硬件沖突兼容性ros_control框架模塊化設(shè)計(jì)不依賴特定硬件,通用于多種硬件控制機(jī)器人底盤運(yùn)動(dòng)和機(jī)械臂運(yùn)動(dòng)ros_control控制器數(shù)據(jù)流程圖負(fù)責(zé)不同部分,如底盤、機(jī)械臂write和read接口與硬件通訊上層應(yīng)用如PID控制,完成控制任務(wù)硬件抽象層Controller插件通訊接口發(fā)布控制器輸出數(shù)據(jù)到硬件數(shù)據(jù)發(fā)送至下層硬件控制邏輯ros_control在Gazebo中的應(yīng)用控制指令關(guān)節(jié)控制控制真實(shí)機(jī)器人或仿真機(jī)器人提供多樣化的控制器,如差速控制器控制關(guān)節(jié)的速度、位置控制器種類理解難度發(fā)布到機(jī)器人關(guān)節(jié)上,驅(qū)動(dòng)運(yùn)動(dòng)控制器應(yīng)用中間控制器在Gazebo中實(shí)現(xiàn)控制框架抽象,建議查看wiki介紹和實(shí)踐ROS應(yīng)用開發(fā)技術(shù)4.Gazebo界面與模型加載(上)01物理仿真環(huán)境搭建02界面介紹03加載URDF模型目錄CONTENTS物理仿真環(huán)境搭建ros_controlros_control是一套功能強(qiáng)大的控制框架,它能夠通過不同類型的控制器實(shí)現(xiàn)多種功能,主要包括力控制、位置控制和速度控制這三種基本形式。此外,為了實(shí)時(shí)反饋機(jī)器人的狀態(tài)信息,關(guān)節(jié)狀態(tài)控制器也扮演著至關(guān)重要的角色。四種控制器joint_effort_controllerjoint_state_controllerjoint_position_controllerjoint_velocity_controller仿真環(huán)境搭建步驟配置機(jī)器人模型創(chuàng)建適用于仿真的環(huán)境安裝gazebosudoaptinstallgazebo11*-y安裝Gazebo相關(guān)包sudoaptinstallros-noetic-gazebo-*-ysudoaptinstalllibgazebo11-dev-y安裝以gazebo11為前綴的軟件包安裝Gazebo11的開發(fā)庫界面介紹場景場景是模擬器的主要部分,是仿真模型顯示的地方。左面板020301world顯示當(dāng)前在場景中的模型,查看和修改模型參數(shù)組織和顯示模擬中可用的不同可視化組,layer一般的是包含了一個(gè)或者多個(gè)模型,多個(gè)模型可通過打開或者關(guān)閉顯示該圖層的模型。InsertLayer向模擬添加新對象(模型)右面板默認(rèn)情況下,右側(cè)面板處于隱藏狀態(tài)。單擊并拖動(dòng)該欄以將其打開。右面板可用于與選定模型的移動(dòng)部件(joint)交互,包括位姿,速度等等。如果場景中沒有選擇模型,面板將不顯示任何信息。工具欄從左箭頭開始到右邊正方體分別是選擇模型、轉(zhuǎn)換模式、旋轉(zhuǎn)模式、縮放模式撤消/重做創(chuàng)建簡單形狀(立方體‘球體、圓柱體)工具欄燈光對齊、捕獲模型復(fù)制/粘貼更改視圖加載URDF模型功能包下載020301鍵盤控制節(jié)點(diǎn)功能包sudoaptinstallros-noetic-teleop-twist-keyboard-yroslaunchyahboomcar_gazeboyahboom.launchturtlebot3-gazebo功能包效果查看sudoaptinstallros-noetic-turtlebot3-gazebo-y選項(xiàng)設(shè)置點(diǎn)擊【Camera】選擇【Orthographic】選項(xiàng)啟動(dòng)鍵盤控制節(jié)點(diǎn)rosrunteleop_twist_keyboardteleop_twist_keyboard.pyROS應(yīng)用開發(fā)技術(shù)4.Gazebo界面與模型加載(下)01launch文件代碼02模型文件代碼目錄CONTENTSlaunch文件代碼yahboom.launch<launch><argname="ns"default="robot1"/><argname="format"default="xarco"doc="xacro;urdf"/><argname="robot_type"value="X3"/><argname="gui"default="true"/><argname="run_camera"default="false"/><argname="x_pos"default="-2.0"/><argname="y_pos"default="-0.5"/><argname="z_pos"default="0.0"/>
<nodename="tf_footprint_base"pkg="tf"type="static_transform_publisher"args="000000base_linkbase_footprint40"/>yahboom.launch<includefile="$(findgazebo_ros)/launch/empty_world.launch"><argname="world_name"value="$(findturtlebot3_gazebo)/worlds/turtlebot3_world.world"/><argname="paused"value="false"/><argname="use_sim_time"value="true"/><argname="gui"value="true"/><argname="headless"value="false"/><argname="debug"value="false"/></include><paramname="robot_description"command="$(findxacro)/xacro--inorder$(findyahboomcar_description)/urdf/yahboomcar_X3.gazebo.urdf.xacrons:=$(argns)"/>yahboom.launch<nodepkg="gazebo_ros"type="spawn_model"name="spawn_urdf"args="-urdf-modelyahboomcar_$(argrobot_type)-x$(argx_pos)-y$(argy_pos)-z$(argz_pos)-paramrobot_description"/><!--loadthecontrollers--><!--includefile="$(findyahboomcar_gazebo)/launch/control.launch"></include--><nodename="joint_state_publisher"pkg="joint_state_publisher"type="joint_state_publisher"/><nodename="robot_state_publisher"pkg="robot_state_publisher"type="robot_state_publisher"/><nodename="rviz"pkg="rviz"type="rviz"args="-d$(findyahboomcar_gazebo)/config/rviz/yahboomcar_X3.rviz"/>
</launch>模型文件代碼輪子的link<gazeboreference="back_left_wheel"><mu1value="2.0"/><mu2value="2.0"/><kpvalue="10000000.0"/><kdvalue="1.0"/><fdir1value="100"/><material>Gazebo/Black</material></gazebo>插件<gazebo><pluginname="mecanum_controller"filename="libgazebo_ros_planar_move.so"><robotNamespace>/</robotNamespace><commandTopic>cmd_vel</commandTopic><odometryTopic>odom</odometryTopic><odometryFrame>odom</odometryFrame><leftFrontJoint>front_left_joint</leftFrontJoint><rightFrontJoint>front_right_joint</rightFrontJoint><leftRearJoint>back_left_joint</leftRearJoint><rightRearJoint>back_right_joint</rightRearJoint><odometryRate>60.0</odometryRate><robotBaseFrame>base_link</robotBaseFrame></plugin></gazebo>激光雷達(dá)配置<gazeboreference="laser_link"><sensortype="ray"name="head_hokuyo_sensor"><pose>000000</pose><visualize>false</visualize><update_rate>40</update_rate><ray><scan><horizontal><samples>720</samples><resolution>1</resolution><min_angle>-1.570796</min_angle><max_angle>1.570796</max_angle></horizontal></scan><range><min>0.10</min><max>30.0</max><resolution>0.01</resolution></range>激光雷達(dá)配置<noise><type>gaussian</type><!--NoiseparametersbasedonpublishedspecforHokuyolaserachieving"+-30mm"accuracyatrange<10m.Ameanof0.0mandstddevof0.01mwillput99.7%ofsampleswithin0.03mofthetruereading.--><mean>0.0</mean><stddev>0.01</stddev></noise></ray><pluginname="gazebo_ros_head_hokuyo_controller"filename="libgazebo_ros_laser.so"><topicName>/scan</topicName>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代簡約風(fēng)格與科技公司辦公環(huán)境的融合
- 現(xiàn)代物流技術(shù)與醫(yī)療物資保障體系
- 溝通技巧在教育工作中的創(chuàng)新應(yīng)用
- 環(huán)保技術(shù)在現(xiàn)代城市建設(shè)中的應(yīng)用
- 物流信息技術(shù)在商業(yè)領(lǐng)域的應(yīng)用
- Unit 3 Where did you go?PartB (說課稿)-2023-2024學(xué)年人教PEP版英語六年級下冊
- 2《燭之武退秦師》說課稿-2024-2025學(xué)年高一語文下學(xué)期同步說課稿(統(tǒng)編版必修下冊)
- 2024新教材高中地理 第四章 區(qū)域發(fā)展戰(zhàn)略 第二節(jié) 我國區(qū)域發(fā)展戰(zhàn)略說課稿 湘教版必修第二冊
- Unit3 Amazing animals(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊001
- 2024年高中化學(xué) 第三章 晶體結(jié)構(gòu)與性質(zhì) 章末整合說課稿 新人教版選修3
- 2025-2030年中國清真食品行業(yè)運(yùn)行狀況及投資發(fā)展前景預(yù)測報(bào)告
- 廣東省茂名市電白區(qū)2024-2025學(xué)年七年級上學(xué)期期末質(zhì)量監(jiān)測生物學(xué)試卷(含答案)
- 《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》全文
- 山東省濱州市2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 2025年河南洛陽市孟津區(qū)引進(jìn)研究生學(xué)歷人才50人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度軍人軍事秘密保護(hù)保密協(xié)議與信息安全風(fēng)險(xiǎn)評估合同3篇
- 蛋雞生產(chǎn)飼養(yǎng)養(yǎng)殖培訓(xùn)課件
- 數(shù)字化轉(zhuǎn)型中的職業(yè)能力重構(gòu)
- 運(yùn)用PDCA降低住院患者跌倒-墜床發(fā)生率
- 臨床提高膿毒性休克患者1h集束化措施落實(shí)率PDCA品管圈
- 小學(xué)生品德發(fā)展水平指標(biāo)評價(jià)體系(小學(xué))
評論
0/150
提交評論