Hi @thrnn, writing code for the Gazebo simulator boils down to writing Rospy action clients and topic subscribers. The API between the robot and the simulation is slightly different. The best way to get started would be to use the source code of the keyboard teleop node as example core for how to interact with the simulation.