Gazebo Simulation: Person and Robot model interaction
I have a Gazebo simulation where a Husky robot is looking for a person using its camera. Now that I manage to get this part working, I want the Husky robot to interact with the person it found. Here are some things I have in mind:
- The husky robot emits a sound using its speaker. When the person hears it, it moves.
- When the husky robot touches the person, the animated person in Gazebo stops moving.
In short, I want the Husky robot to interact (i.e. send commands and receive responses) with the simulation elements. Is this possible? It seems to be related to Gazebo plugins and its ROS API, but it’s not clear to me yet (I’m quite new to ROS/Gazebo).
Any pointer/book/video/example would be greatly appreciated :)
Just to help me understand better your question. Are you planning to interact with a virtual person or a real person in Gazebo? Not clear
Playing sounds, can be done using Python libraries for playing and recording sound: https://realpython.com/playing-and-re...
You can use the sensor information to detect objects and navigate accordingly including stopping. If you are planning to do people recognition, then you may be looking at using pytorch or tensorflow to train on detection. The simplest of methods would be to use a HAAR cascade for object detection.
In the spirit of one question, one answer. I suggest to focus your question on a specific issue you need support.
Hi @osilva! Thanks for the answer. My focus on interacting with a "virtual" person on Gazebo: if my robot model emits a sound in a Gazebo simulation, how can I program the person model to react to the sound, if possible?
@cptanalatriste The idea of "the robot touching a person" is going to be a problem.
move_base
goes to great lengths to avoid the robot getting too close to any obstacle. And in the real world, this would be quite a dangerous/unsafe action to program into any large, powerful robot like a Husky.