Bring your simulations to life!
The human_actor_plugin is a lightweight and configurable Gazebo Classic plugin that lets you spawn and animate human-like actors in simulation β either along a predefined path or by streaming live pose commands from ROS.

Give your robots someone to interact with!
- β ROS Integration β control human pose via ROS topics
- π§ Namespace & topic configurable β spawn multiple humans with isolated control
- π― Real-time control β command actor motion from a joystick, planner, or script
- π Trajectory playback β follow predefined paths (CSV, spline, etc.)
- π οΈ Minimal dependencies β works with ROS Noetic and Gazebo Classic
Clone this repo into your Catkin workspace:
cd ~/catkin_ws/src
git clone https://github.com/ARSControl/human_actor_plugin.git
cd ..
catkin_makeroslaunch human_actor_plugin demo.launch
This will:
-
Start Gazebo with a human model
-
Spawn the plugin
-
Subscribe to
/human_0/actor_poseby default
rostopic pub /human_0/actor_pose geometry_msgs/PoseStamped \ '{ pose: { position: { x: 1.0, y: 2.0, z: 0.0 }, orientation: { w: 1.0 } } }'
In your model's SDF or Xacro file:
<plugin name="human_actor_plugin" filename="libhuman_actor_plugin.so">
<ros_namespace>human_0</ros_namespace>
<ros_topic>actor_pose</ros_topic>
</plugin> These parameters allow multiple independent humans in the same simulation.
human_actor_plugin/
βββ launch/ # Demo launch files
βββ models/ # SDF/Xacro model of the human
βββ src/ # Plugin source code
βββ CMakeLists.txt
βββ package.xml
βββ README.md-
Animation support (walk cycle)
-
Trajectory from CSV
-
Rviz marker control
-
Crowd simulation integration
Pull requests and issues are welcome!
If youβve made your human walk, run, or dance β show it off and open a PR πΊπ
Mattia Catellani
GitHub: @MatCat960
Tip: Want to control humans with a joystick or from a path planner? This plugin plays nice with anything that publishes
PoseStamped.