# Revision history [back]

As a quick comment: RViz is not a simulator. It only visualises incoming data streams. From your question text it appears you are expecting your car to "move" relative to its starting position, based on time * velocity. That will not work, as again, RViz is not a simulator. It merely visualises (kinematic) state.

You should probably take a look at Gazebo, V-REP or Webots if you're looking to simulate car-like behaviour based on physics.

As a quick comment:

It supposed to send the joint state of my two wheels to RVIZ, and in RVIZ, I supposed to see my car moving with the set speed coming from python side.

RViz is not a simulator. It only visualises incoming data streams. From your question text it appears you are expecting your car to "move" relative to its starting position, based on time * velocity. That will not work, as again, RViz is not a simulator. It merely visualises (kinematic) state.

Objects are rendered by RViz with their origins at the origins of the associated TF frames (ie: Cartesian position). It would be possible to make your model "move", by writing a node that integrates velocity and updates the transform based on that, but it would still only be a visualisation (ie: not based on any real dynamics simulation).

You should probably take a look at Gazebo, V-REP or Webots if you're looking to simulate car-like behaviour based on physics.

Additionally: you appear to be using JointState messages for control purposes. As the name implies, JointState encodes state. It is not meant to be used for controlling something.