self.pub = rospy.Publisher('/stretch/cmd_vel', Twist, queue_size=1)#/stretch_diff_drive_controller/cmd_vel for gazebo
```
This section of code defines the talker's interface to the rest of ROS. pub = rospy.Publisher("/stretch/cmd_vel", Twist, queue_size=1) declares that your node is publishing to the /stretch/cmd_vel topic using the message type Twist. The queue_size argument limits the amount of queued messages if any subscriber is not receiving them fast enough.
@ -97,7 +97,7 @@ command.angular.x = 0.0
command.angular.y = 0.0
command.angular.z = 0.0
```
A Twist also has three rotational velocities (in radians per second).
A *Twist* also has three rotational velocities (in radians per second).
The Stretch will only respond to rotations around the z (vertical) axis.
@ -126,4 +126,16 @@ This loop is a fairly standard rospy construct: checking the rospy.is_shutdown()
## Move Stretch in Simulation
![image](images/move.gif)
First, bringup [Stretch in the empty world simulation](getting_started).
Using your preferred text editor, modify the topic name of the published *Twist* messages. Please review the edit in the **move.py** script below.
After saving the edited node, bringup [Stretch in the empty world simulation](gazebo_basics.md). To drive the robot with the node, type the follwing in a new terminal
```
cd catkin_ws/src/stretch_ros_turotials/src/
python3 move.py
```
To stop the node from sending twist messages, type **Ctrl** + **c**.