Gazebo仿真平台
??本篇關于內容主要參照冰達機器人教程學習做的筆記:https://b23.tv/qiFLhjj
理論部分
??gazebo是3D仿真平臺,是ROS官方指定的。gazebo適合仿真室內場景,對環節渲染或細節要求不是很高,主要是為了完成功能的仿真演示。
??環節模型可導入(官方提供一些場景model)也可自己進行設計(自己設置圍墻建筑,最后保存為world后綴文件)
??與機器人相關可以人工修改的文件包括:urtf、xacro
??urtf文件描述robot,可在rviz中有顯示,urdf中的標簽在Gazebo中無法顯示
??xacro文件描述gazobo中的標簽,在urdf的基礎上做改動,使機器人可以在gazebo中做顯示
??通過gazebo插件為robot增加功能(相機、IMU、激光雷達可以直接去官網找)
??urdf的生成可以用soldworks,生成特殊3D機器人模型。圖像化設置,會直接生成urdf文件夾
??urdf文件夾目錄下執行命令:check_urdf 文件名(用于檢查urdf的編寫是否正確)
實驗部分
基本環節搭建
注意:環境模型網址改變:https://gitee.com/bingda-robot/gazebo_models
gazebo基本操作步驟:
??1.導入預定場景模型(下載路徑.gazebo/gazebo_models)
??2.自制場景模型(編輯后保存為world文件,可放置于bingda_tutorial的world文件夾又launch文件調用)
??roslaunch bingda_tutorials gazabe_world.launch
??3.自制robot用rviz顯示
??roslaunch bingda_tutorials display_robot.launch
??4.自制robot+自制場景用gazebo顯示
??roslaunch bingda_tuorials gazebo_robot.launch
gazebo中鍵盤控制機器人在預定場景運動:
??終端一:roslaunch bingda_tutorials simulation_robot.launch
??終端二:rqt_image_view
??訂閱image_raw/compressed可以試試看到小車的監控畫面
??終端三:rosrun teleop_twist_keyboard teleop_twist_keyboard.py
??使用u,i,o,j,k,l,m,<,>鍵盤控制完成
??rviz顯示:
??1. Fixed Frame換成odom
??2. 增加TF, RobotModel,LaserScan
注意:LaserScan的Topic要變成/scan
???鍵盤控制可看到雷達變換
gazebo中鍵盤控制機器人在預定場景SLAM建圖(2D,激光)
??終端一:roslaunch bingda_tutorials simulation_robot.launch
??終端二:roslaunch robot_navigation gmapping.launch simulation:=true
??終端三:roslaunch robot_navigation slam_rviz.launch
??終端四:rosrun teleop_twist_keyboard teleop_twist_keyboard.py
??使用鍵盤控制形成地圖,保存地圖命令為:
??roscd robot_navigation/maps/
??roscd map_server map_server -f map
gabebo鍵盤控制導航實驗
??終端一:roslaunch bingda_tutorials simulation_robot.launch
??終端二:roslaunch robot_navigation navigation_stack.launch simulation:=true
??終端三:roslaunch robot_navigation navigation_rviz.launch
??可以在rviz中調整初始位姿和導航目標
??注意首先在~/.bashrc中設置 export BASE_TYPE=NanoCar,可更改,更改目錄為gezabo_test/src/robot_navigation/param
總結
以上是生活随笔為你收集整理的Gazebo仿真平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++虚继承的实现原理、内存分布、作用
- 下一篇: C/C++:Windows编程—Hook