How to avoid obstacles in gazebo
This article will explain in detail how to avoid obstacles in gazebo. The content of the article is of high quality, so the editor will share it with you for reference. I hope you will have a certain understanding of the relevant knowledge after reading this article.
Modified to virtual machine IP address
Ipaddress = '192.168.137.129'
Initialization
Rosinit (ipaddress)
Get gazebo element
Gazebo = ExampleHelperGazeboCommunicator ()
% New and add a wall
Wall = ExampleHelperGazeboModel ('grey_wall','gazeboDB')
SpawnModel (gazebo,wall, [- 240])
%% set its posture after getting the robot
Kobuki = ExampleHelperGazeboSpawnedModel ('mobile_base',gazebo)
SetState (kobuki,'orientation', [0 pi/2])
New global variable
Global robot
Global velmsg
Get speed information for robot
Robot = rospublisher ('/ mobile_base/commands/velocity')
Velmsg = rosmessage (robot)
%% get robot's obstacle avoidance radar or something.
TimerHandles.sub = rossubscriber ('/ scan')
%% set up obstacle avoidance
T = timer ('TimerFcn', {@ exampleHelperGazeboAvoidanceTimer,timerHandles},' Period',0.1,'ExecutionMode','fixedSpacing')
%% start to avoid obstacles
Start (t)
%% add another wall
SpawnModel (gazebo,wall, [- 5.85 0.150], [0,0, pi/2])
% Program waits for 20 seconds.
Pause (20)
%% end obstacle avoidance march
Stop (t)
% get all objects
List = getSpawnedModels (gazebo)
Remove two walls
RemoveModel (gazebo,'grey_wall')
RemoveModel (gazebo,'grey_wall_0')
%% empty variables
Clear
% close connection
Rosshutdown
On how to achieve obstacle avoidance in gazebo to share here, I hope that the above content can be of some help to you, can learn more knowledge. If you think the article is good, you can share it for more people to see.