Gazebo机器人仿真学习探索笔记七连接ROS.docx
- 文档编号:6461364
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:76
- 大小:1.27MB
Gazebo机器人仿真学习探索笔记七连接ROS.docx
《Gazebo机器人仿真学习探索笔记七连接ROS.docx》由会员分享,可在线阅读,更多相关《Gazebo机器人仿真学习探索笔记七连接ROS.docx(76页珍藏版)》请在冰豆网上搜索。
Gazebo机器人仿真学习探索笔记七连接ROS
Gazebo機器人仿真學習探索筆記(七)连接ROS
Tutorial:
ROSintegrationoverview
AsofGazebo1.9andROSHydro,GazebonolongerhasanydirectROSdependenciesandisnowinstalledasanUbuntustand-alonepackage.HistoricallyusingGazebowithROSrequiredaspecificversionofGazebotobebuiltwiththelegacy'simulator_gazebo'stack.
ToachieveROSintegrationwithstand-aloneGazebo,anewsetofROSpackagesnamedgazebo_ros_pkgshasbeencreatedtoprovidewrappersaroundthestand-aloneGazebo.TheyprovidethenecessaryinterfacestosimulatearobotinGazebousingROSmessages,servicesanddynamicreconfigureSomedifferencesbetweensimulator_gazeboandgazebo_ros_pkgsarethefollowing:
SupportsthelateststandalonesystemdependencyofGazebo,thathasnoROSbindingsonitsown
Buildswithcatkin
TreatsURDFandSDFasequallyaspossible
ReducescodeduplicationwithGazebo
Improvesoutoftheboxsupportforcontrollersusingros_control
IntegratesrealtimecontrollerefficiencyimprovementsfromtheDARPARoboticsChallenge
CleansupoldcodefrompreviousversionsofROSandGazebo
Anoverviewofthegazebo_ros_pkgsinterfaceisinthefollowingdiagram:
Upgradingfromsimulator_gazebo(ROSgroovyandearlier)
ThefollowingguidelineswillhelpyouupgradeyourGazebo-dependentpackagesfromsimulator_gazeboforuseinyourROSpackages:
Catkin
YourpreviouspackagesforinterfacingwithGazebowiththeoldsimulator_gazebostackarelikelystillusingtherosbuildbuildsystem.Withgazebo_ros_pkgsinROSHydro,youwillfirstneedto"catkinize"yourpackagestobeginmigration.SeetheCatkinTutorials.
LaunchFiles
SomechangesarerequiredinpreviouslycreatedroslaunchfilesforstartingGazebo.ThebestwaytoupdatethesepackagesistoreviewtheUsingroslaunchfilestospawnmodelsinGazebotutorial.Inanutshell:
Withinroslaunchfiles,pkg="gazebo"needstobenowrenamedtopkg="gazebo_ros"
gazebo_worldspackagehasbeenremoved.MostoftheworldfileswererarelyusedandwerenotmaintainedwithchangesinSDFXMLformats.Thus,allworldshavebeencentralizedwithintheGazeboprojectitself,includingempty.world.
ThebestwaytouseGazebolaunchfilesistosimplyinherit/includethemasterempty_worldlaunchfilelocatedinthegazebo_rospackage.
CMakeLists.txt
BecauseGazeboisnolongeraROSpackagebutinsteadasystemdependency,yourCMakefilemightneedtobereconfigured.ThefollowingisanexampleCMakeLists.txt:
cmake_minimum_required(VERSION2.8.3)
project(YOURROBOT_gazebo_plugins)
find_package(catkinREQUIREDCOMPONENTS
gazebo_ros
)
#DependonsysteminstallofGazebo
find_package(gazeboREQUIRED)
include_directories(include${catkin_INCLUDE_DIRS}${GAZEBO_INCLUDE_DIRS}${SDFormat_INCLUDE_DIRS})
#Buildwhateveryouneedhere
add_library(...)#TODO
catkin_package(
DEPENDS
gazebo_ros
CATKIN_DEPENDS
INCLUDE_DIRS
LIBRARIES
)
package.xml
Thisisthereplacementfortherosbuild"manifest.xml":
Adddependencyonthenewgazebo_rospackage:
RunningGazebo
ThenamesoftheROSnodestolaunchGazebohavechangedslightlytocoincidewiththeGazeboexecutablenames:
rosrungazebo_rosgazebonowlaunchboththeGazeboserverandGUI.
rosrungazebo_rosguihasbeenrenamedtorosrungazebo_rosgzclient
rosrungazebo_rosgzserverhasbeenadded
Availablenodestorun:
rosrungazebo_rosgazebo
rosrungazebo_rosgzserver
rosrungazebo_rosgzclient
rosrungazebo_rosspawn_model
rosrungazebo_rosperf
rosrungazebo_rosdebug
ThesenodesarebetterdocumentedinthetutorialUsingroslaunchfilestospawnmodelsinGazebo.
More
Addyourupgradeissueshere,please
Tutorials
Tutorialsfromros.orghavebeenalmostentirelyremovedandre-writtenfromscratchonthiswebsitetoreflectthemanychangesthathaveoccurredoverthecourseofGazebo'shistory.We'vedoneourbesttothoroughlydocumenthowtogetyourURDF-basedrobotrunningsmoothlyinGazebo.Ifyouhaveanyquestionpleaseseeanswers.ros.org.
ContinuetoInstallinggazebo_rosPackages.
WhichcombinationofROS/Gazeboversionstouse
Introduction
ThisdocumentprovidesanoverviewabouttheoptionstousedifferentversionsofROSincombinationwithdifferentversionsofGazebo.ItisrecommendedtoreaditbeforeinstallingtheGazeboROSwrappers.
Important!
simpleanalysisforaquickandcorrectdecision
IfyouareplanningonusingaspecificversionofROSanddon'thaveareasontouseaspecificversionofGazebo,youshouldproceedwiththeInstallinggazebo_ros_pkgstutorialwhichexplainshowtoinstallthefullysupportedversionofgazebobyROS.
Warning:
notethatusingadifferentgazeboversionthantheofficialversiondeliveredfromtheROSrepositoriescouldendupinconflictsorotherintegrationproblemswithROSpackages.
GazeboversionsandROSintegration
Gazeboisanindependentprojectlikeboost,ogreoranyotherprojectusedbyROS.Usually,thelatestmajorversionofgazeboavailableatthebeginningofeveryROSreleasecycle(forexamplegazebo5forROSJade)isselectedastheofficialonetobefullyintegratedandsupportedandwillbekeptduringthewholelifeoftheROSdistribution.
GazebodevelopmentisnotsyncedwithROS,soeachnewmajorversionofGazebomustbereleasedbeforebeingusedinaROSdistribution.ThefollowingsectionscoverhowtouseROSwithdifferentversionsofGazebo.
NotethatGazeboABIstabilitypolicyfollowsthesemanticversioningphilosophy,inwhichallversionsthathavethesamemajornumber(gazebo_6.0.0,gazebo_6.1.0,gazebo_6.0.1,...)arebinarycompatibleandthusinterchangeablewhenusingthesameROSdistro.
InstallingGazebo
GazeboUbuntupackages
TheeasiestwayofinstallingGazeboistousepackages.TherearetwomainrepositorieswhichhostGazebopackages:
oneispackages.ros.organdtheotherispackages.osrfoundation.org.Atthetimeofwriting:
packages.ros.org
Indigo:
hostgazeboversion2.xpackage.
Jade:
hostgazeboversion5.xpackage.
packages.osrfoundation.org
gazebo5.xseries(packagenamegazebo5)
gazebo6.xseries(packagenamegazebo6)
gazebo7.xseries(packagenamegazebo7)
ThismeansthatincludingtheosrfoundationrepositoryisnotstrictlyneededtogettheGazeboUbuntupackage.Itcanbeinstalledfromtherosrepository.
Gazebobuiltfromsource
Ifyouhavecompiledagazeboversionfromsource,notethatdependingontherepositorybranchused(gazebo6,gazebo7,...)yourgazebowillbebinarycompatiblewiththegazebo_ros_pkgs(andallotherROSpackagescompiledontopofgazebo)onlyifthemajorversionmatchesyourlocalbranchrepositoryandthegazeboversionusedinyourROSdistro.Forexample,ifyouarecompilingfromgazebobranchgazebo_2.0,youcanusethegazebo_ros_pkgspresentinIndigo(whichusesgazebo2series).
Notethatifyouareusingdefaultbranch,youareprobablynotbinarycompatiblewithanyofthepackagesreleased,soyouwillneedacatkinworkspaceforgettingavalidgazebo_ros_pkgs.
UsingthedefaultGazeboversionforaROSdistribution
FortheusersthatneedtorunaspecificversionofROSandwanttouseallthegazeboROSrelatedpackagesout-of-the-box,thisistherecommendedsection:
Jade
ROSJadehoststhe5.xversionofGazebo.Forafully-integratedROSsystem,werecommendusingthe5.xversionofGazebo.ThewaytoproceedisjusttousetheROSrepository(itwillautomaticallyinstallgazebo5)anddonotusetheosrfoundationrepository.
Indigo
ROSIndigohoststhe2.xversionofGazebo.Forafully-integratedROSsystem,werecommendusingthe2.xversionofGazebo.ThewaytoproceedisjusttousetheROSrepository(itwillautomaticallyinstallgazebo2)anddonotusetheosrfoundationrepository.
UsingaspecificGazeboversionwithROS
Warning!
:
Usingthisoption,youwon'tbeabletouseanyROSUbuntupackagerelatedtoGazebofromROSdebrepository.Theequivalentofgazebo_ros_pkgscanbeinstalledfromdebianpackages,butallothersoftware(suchasturtlebot_gazebo)mustbebuiltfromsource.Thankstocatkinworkspacesthisisquiteeasytodo.
ThereisawayofusinganyspecificversionofgazeboandROSifreallyneeded:
Gazebo7.xseries
TheOSRFrepositoryprovides-gazebo7-versionsofROS/IndigoandROS/Jadegazebowrappers(gazebo7_ros_pkgs)whicharebuiltontopofthegazebo7package.Thestepstousethemare:
Addtheosrfoundationrepositorytoyoursourceslist.
Installros-$ROS_DISTRO-gazebo7-ros-pkgsfromtheosrfoundationrepository,whichwillinstallthegazebo7package.
Usecatkinworkspacestocompiletherestofthesoftwareusedfromsource.
Gazebo6.xseries
TheOSRFrepositoryprovides-gazebo6-versionsofROS/IndigoandROS/Jadegazebowrappers(gazebo6_ros_pkgs)whicharebuiltontopofthegazebo6package.Thestepstousethemare:
Addtheosrfoundationrepositorytoyoursourceslist.
Installros-$ROS_DISTRO-gazebo6-ros-pkgsfromtheosrfoundationrepository,whichwillinstallthegazebo6package.
Usecatkinworkspacestocompiletherestofthesoftwareusedfromsource.
Gazebo5.xseries
TheOSRFrepositoryprovides-gazebo5-versionsofROS/Indigogazebowrappers(gazebo5_ros_pkgs)whicharebuiltontopofthegazebo5package.Thestepstousethemare:
Addtheosrfoundationrepositorytoyoursourceslist.
Installros-indigo-gazebo5-ros-pkgsfromtheosrfoundationrepository,whichwillinstallthegazebo5package.
Usecatkinworkspacestocompiletherestofthesoftwareusedfromsource.
FAQ
IamnotusingROSatall,whichversionshouldIuse?
Ifyoudon'tneedROSsupport,therecommendedversionisthelatestreleasedversionthatcanbeinstalledusingtheosrfoundation
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Gazebo 机器人 仿真 学习 探索 笔记 连接 ROS