《ROS應用技術》課件-16.機器人仿真_第1頁
《ROS應用技術》課件-16.機器人仿真_第2頁
《ROS應用技術》課件-16.機器人仿真_第3頁
《ROS應用技術》課件-16.機器人仿真_第4頁
《ROS應用技術》課件-16.機器人仿真_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

ROS應用開發(fā)技術1.機器人仿真-ArbotiX+RViz介紹目錄CONTENTS01Arbotix02Rviz03ArbotiX與Rviz的結(jié)合目錄CONTENTSArbotiXArbotiXArbotiX的定義ArbotiX的定義ArbotiX是一個開源的機器人控制器,專為構(gòu)建和控制多關節(jié)機器人而設計。它由TrossenRobotics開發(fā),并用于他們的機器人平臺,如PhantomXHexapod和InterbotiX系列。ArbotiX功能與應用ArbotiX功能與應用03010204技術特點適用于教育、研究和業(yè)余愛好者等機器人應用領域開發(fā)工具支持設備應用領域基于AtmelAVR系列微控制器,具有豐富的輸入輸出接口支持各種傳感器和執(zhí)行器,如舵機、步進電機、直流電機等提供ROS和Arduino等開發(fā)工具和庫RvizRvizRviz介紹Rviz介紹Rviz是一個強大的三維可視化工具,用于顯示和調(diào)試機器人感知、控制、導航等方面的數(shù)據(jù)。Rviz允許用戶以直觀的方式查看機器人的傳感器信息、運動規(guī)劃路徑、三維模型等,有助于理解機器人系統(tǒng)的工作狀態(tài)。Rviz的主要功能Rviz的主要功能0205040103顯示運動規(guī)劃路徑,包括軌跡、目標點、障礙物等功能一功能二顯示和調(diào)試機器人感知、控制、導航等數(shù)據(jù)功能三功能五可視化機器人模型,加載URDF描述文件顯示傳感器數(shù)據(jù),如點云、二維地圖、圖像等交互式操作,提供選擇、測量、導航工具功能四ArbotiX與Rviz的結(jié)合ArbotiX與Rviz的結(jié)合ArbotiX與Rviz的結(jié)合應用ArbotiX與Rviz的結(jié)合應用結(jié)合應用功能三實現(xiàn)三維可視化和調(diào)試控制機器人運動,實時顯示位置、姿態(tài)和軌跡交互式調(diào)試,實時調(diào)整和優(yōu)化系統(tǒng)設計顯示傳感器數(shù)據(jù),獲取環(huán)境信息功能二運動規(guī)劃和路徑顯示,評估路徑規(guī)劃算法功能一功能四ROS應用開發(fā)技術2.機器人仿真-ArbotiX+rz功能仿真實訓(上)目錄CONTENTS01準備工作02模型編寫啟動文件編寫目錄CONTENTS0304模型展示準備工作準備工作仿真內(nèi)容仿真內(nèi)容構(gòu)建功能仿真所需機器人模型運動仿真使模型進行物理運動模型構(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)建進入src文件夾創(chuàng)建名為urdf_rviz點的功能包,依賴為urdf和xacrocatkin_create_pkgurdf_rvizurdfxacro文件夾創(chuàng)建文件夾創(chuàng)建為便于后續(xù)管理,創(chuà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文件編寫

<!--底盤和基底間的關節(jié)--><jointname="base_link2base_footprint"type="fixed"><parentlink="base_footprint"/><childlink="base_link"/><originxyz="000.055"/></joint><!--添加驅(qū)動輪--><!--左輪--><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文件編寫<!--左輪和底盤間關節(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文件編寫<!--右輪和底盤間關節(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文件編寫<!--前萬向輪和底盤間關節(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文件編寫

<!--后萬向輪和底盤間關節(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啟動文件編寫啟動文件編寫t1_car.launch文件編寫t1_car.launch文件編寫<launch><!--將urdf文件內(nèi)容設置進參數(shù)服務器--><!--<paramname="robot_description"textfile="$(find工作空間)/路徑/文件名.urdf"/>--><paramname="robot_description"textfile="$(findurdf_rviz)/urdf/urdf/t1_car.urdf"/>

<!--啟動rivz--><!--<nodepkg="rviz"type="rviz"name="rviz_test"args="-d$(finddemo01_urdf_helloworld)/config/helloworld.rviz"/>--><nodepkg="rviz"type="rviz"name="rviz"/>

<!--啟動機器人狀態(tài)和關節(jié)狀態(tài)發(fā)布節(jié)點--><nodepkg="robot_state_publisher"type="robot_state_publisher"name="robot_state_publisher"/><nodepkg="joint_state_publisher"type="joint_state_publisher"name="joint_state_publisher"/>

<!--啟動圖形化的控制關節(jié)運動節(jié)點--><nodepkg="joint_state_publisher_gui"type="joint_state_publisher_gui"name="joint_state_publisher_gui"/>

</launch>進入launch目錄,編寫t1_car.launch文件模型展示模型展示文件運行文件運行使用roslaunch命令啟動launch文件roslaunchurdf_rvizt1_car.launch設置修改設置修改添加組件更改標簽添加確認需要添加RobotModel、TF、Axis三個組件模型展示模型展示取消Axes參數(shù)配置保存配置保存020301點擊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應用開發(fā)技術2.機器人仿真-ArbotiX+rz功能仿真實訓(下)01宏文件編寫02啟動文件編寫03功能仿真實現(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"/><!--離地間距-->

<!--底盤只有一個,直接編寫--><linkname="base_footprint"><visual><geometry><sphereradius="${base_footprint_radius}"/></geometry></visual></link>進入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>進入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件創(chuàng)建車體<!--驅(qū)動輪--><!--驅(qū)動輪屬性封裝--><xacro:propertyname="wheel_radius"value="0.0325"/><!--半徑--><xacro:propertyname="wheel_length"value="0.015"/><!--寬度--><!--驅(qū)動輪宏實現(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>進入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"/>進入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>進入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件創(chuàng)建車體<!--支撐輪和底盤的關節(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>進入urfd目錄下的xacro文件夾中,編寫t1_car.xacro文件攝像頭添加<!--攝像頭相關的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坐標--><xacro:propertyname="camera_y"value="0.0"/><!--攝像頭安裝的y坐標--><xacro:propertyname="camera_z"value="${base_link_length/2+camera_height/2}"/><!--攝像頭安裝的z坐標:底盤高度/2+攝像頭高度/2-->進入urfd目錄下的xacro文件夾中,編寫t2_camera.xacro文件攝像頭添加

<!--攝像頭關節(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>進入urfd目錄下的xacro文件夾中,編寫t2_camera.xacro文件雷達添加<robotname="my_laser"xmlns:xacro="/xacro">

<!--雷達支架--><xacro:propertyname="support_length"value="0.15"/><!--支架長度--><xacro:propertyname="support_radius"value="0.01"/><!--支架半徑--><xacro:propertyname="support_x"value="0.0"/><!--支架安裝的x坐標--><xacro:propertyname="support_y"value="0.0"/><!--支架安裝的y坐標--><xacro:propertyname="support_z"value="${base_link_length/2+support_length/2}"/><!--支架安裝的z坐標:底盤高度/2+支架高度/2-->進入urfd目錄下的xacro文件夾中,編寫t3_laser.xacro文件雷達添加<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>進入urfd目錄下的xacro文件夾中,編寫t3_laser.xacro文件雷達添加<!--雷達屬性--><xacro:propertyname="laser_length"value="0.05"/><!--雷達長度--><xacro:propertyname="laser_radius"value="0.03"/><!--雷達半徑--><xacro:propertyname="laser_x"value="0.0"/><!--雷達安裝的x坐標--><xacro:propertyname="laser_y"value="0.0"/><!--雷達安裝的y坐標--><xacro:propertyname="laser_z"value="${support_length/2+laser_length/2}"/><!--雷達安裝的z坐標:支架高度/2+雷達高度/2-->進入urfd目錄下的xacro文件夾中,編寫t3_laser.xacro文件雷達添加<!--雷達關節(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>進入urfd目錄下的xacro文件夾中,編寫t3_laser.xacro文件組件整合<!--組合小車、攝像頭、雷達--><robotname="my_car_camera"xmlns:xacro="/xacro"><xacro:includefilename="t1_car.xacro"/><xacro:includefilename="t2_camera.xacro"/><xacro:includefilename="t3_laser.xacro"/></robot>進入urfd目錄下的xacro文件夾中,編寫t4_123combine.xacro文件啟動文件編寫t4_xacro.launch文件編寫<launch><!--將xacro文件內(nèi)容設置進參數(shù)服務器--><!--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"/><!--啟動rivz--><nodepkg="rviz"type="rviz"name="rviz"args="-d$(findurdf_rviz)/config/t1_car.rviz"/><!--<nodepkg="rviz"type="rviz"name="rviz"/>--><!--啟動機器人狀態(tài)和關節(jié)狀態(tài)發(fā)布節(jié)點--><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"/><!--啟動圖形化的控制關節(jié)運動節(jié)點--><nodepkg="joint_state_publisher_gui"type="joint_state_publisher_gui"name="joint_state_publisher_gui"output="screen"/></launch>在launch文件夾下新建t4_xacro.launch模型展示重新編譯功能包后運行啟動文件

roslaunchurdf_rvizt4_xacro.launch功能仿真實現(xiàn)Arbotix的安裝源碼下載配置文件編寫cdurdf_rviz/configvicontrol.yamlgitclone/vanadiumlabs/arbotix_ros.git文件內(nèi)容controllers:{#單控制器設置base_controller:{#類型:差速控制器type:diff_controller,#參考坐標base_frame_id:base_footprint,#兩個輪子之間的間距base_width:0.2,#控制頻率ticks_meter:2000,#PID控制參數(shù),使機器人車輪快速達到預期速度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"/><!--啟動rivz--><nodepkg="rviz"type="rviz"name="rviz"args="-d$(findurdf_rviz)/config/t1_car.rviz"/><!--<nodepkg="rviz"type="rviz"name="rviz"/>--><!--啟動機器人狀態(tài)和關節(jié)狀態(tài)發(fā)布節(jié)點--><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運動控制節(jié)點,加載參數(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

話題,讓機器人以0.2米/秒的速度向前移動,并同時以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應用開發(fā)技術3.機器人仿真-Gazebo介紹01Gazebo簡介目錄CONTENTSGazebo簡介Gazebo介紹Gazebo是一款開源的3D動態(tài)模擬器,主要用于測試和驗證機器人系統(tǒng)的行為和性能。它提供了一個功能強大的仿真平臺,能夠模擬真實世界中的物理行為,如碰撞、重力等。Gazebo支持加載各種三維模型,包括機器人、傳感器、環(huán)境等,并能夠進行高質(zhì)量的圖形渲染,提供高保真度的物理模擬。Gazebo的功能與優(yōu)勢圖形用戶界面、命令行工具和APIGazebo與ROSGazebo定義支持的機器人類型提供真實的物理仿真環(huán)境,測試機器人性能和控制算法激光雷達、相機、慣性測量單元等Gazebo優(yōu)勢開源的多機器人物理仿真器支持的傳感器模型固定翼飛機、直升機、汽車、水下機器人等支持ROS,通過ROS工具和庫控制和監(jiān)測機器人狀態(tài)交互式工具ros_control功能包與Gazebo物理仿真密切相關的功能包作用機器人導航、定位、機械臂運動規(guī)劃等功能范圍快速實現(xiàn)高級功能到機器人硬件,提高開發(fā)效率關鍵功能重要性控制器接口、傳統(tǒng)設備接口、硬件接口、控制器工具箱中間件角色連接軟件層與底層硬件推動機器人技術的快速發(fā)展和應用ros_control定義ros_control的總體框架中間接口,連接上層應用與底層機器人控制邏輯分離分離硬件和軟件,提供常用接口控制器插件對不同硬件的良好兼容性硬件抽象層管理硬件資源,處理硬件沖突兼容性ros_control框架模塊化設計不依賴特定硬件,通用于多種硬件控制機器人底盤運動和機械臂運動ros_control控制器數(shù)據(jù)流程圖負責不同部分,如底盤、機械臂write和read接口與硬件通訊上層應用如PID控制,完成控制任務硬件抽象層Controller插件通訊接口發(fā)布控制器輸出數(shù)據(jù)到硬件數(shù)據(jù)發(fā)送至下層硬件控制邏輯ros_control在Gazebo中的應用控制指令關節(jié)控制控制真實機器人或仿真機器人提供多樣化的控制器,如差速控制器控制關節(jié)的速度、位置控制器種類理解難度發(fā)布到機器人關節(jié)上,驅(qū)動運動控制器應用中間控制器在Gazebo中實現(xiàn)控制框架抽象,建議查看wiki介紹和實踐ROS應用開發(fā)技術4.Gazebo界面與模型加載(上)01物理仿真環(huán)境搭建02界面介紹03加載URDF模型目錄CONTENTS物理仿真環(huán)境搭建ros_controlros_control是一套功能強大的控制框架,它能夠通過不同類型的控制器實現(xiàn)多種功能,主要包括力控制、位置控制和速度控制這三種基本形式。此外,為了實時反饋機器人的狀態(tài)信息,關節(jié)狀態(tài)控制器也扮演著至關重要的角色。四種控制器joint_effort_controllerjoint_state_controllerjoint_position_controllerjoint_velocity_controller仿真環(huán)境搭建步驟配置機器人模型創(chuàng)建適用于仿真的環(huán)境安裝gazebosudoaptinstallgazebo11*-y安裝Gazebo相關包sudoaptinstallros-noetic-gazebo-*-ysudoaptinstalllibgazebo11-dev-y安裝以gazebo11為前綴的軟件包安裝Gazebo11的開發(fā)庫界面介紹場景場景是模擬器的主要部分,是仿真模型顯示的地方。左面板020301world顯示當前在場景中的模型,查看和修改模型參數(shù)組織和顯示模擬中可用的不同可視化組,layer一般的是包含了一個或者多個模型,多個模型可通過打開或者關閉顯示該圖層的模型。InsertLayer向模擬添加新對象(模型)右面板默認情況下,右側(cè)面板處于隱藏狀態(tài)。單擊并拖動該欄以將其打開。右面板可用于與選定模型的移動部件(joint)交互,包括位姿,速度等等。如果場景中沒有選擇模型,面板將不顯示任何信息。工具欄從左箭頭開始到右邊正方體分別是選擇模型、轉(zhuǎn)換模式、旋轉(zhuǎn)模式、縮放模式撤消/重做創(chuàng)建簡單形狀(立方體‘球體、圓柱體)工具欄燈光對齊、捕獲模型復制/粘貼更改視圖加載URDF模型功能包下載020301鍵盤控制節(jié)點功能包sudoaptinstallros-noetic-teleop-twist-keyboard-yroslaunchyahboomcar_gazeboyahboom.launchturtlebot3-gazebo功能包效果查看sudoaptinstallros-noetic-turtlebot3-gazebo-y選項設置點擊【Camera】選擇【Orthographic】選項啟動鍵盤控制節(jié)點rosrunteleop_twist_keyboardteleop_twist_keyboard.pyROS應用開發(fā)技術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>激光雷達配置<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>激光雷達配置<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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論