Where is the Joint State information in a Create Turtlebot supposed to come from?
I am hacking at the Create based TurtleBot code to operate my own robot using ROS Hydro.
I have created my own URDF modifications and some code changes. If I run:
roslaunch turtlebot_rviz_launchers view_model.launch
my Robot looks perfect and there are no problems in RVIZ.
However, when I bring up the robot and run:
roslaunch turtlebot_rviz_launchers view_robot.launch
RVIZ says that there is no transform connecting my left_wheel_link and right_wheel_link to the base_footprint. Also, it shows both wheels of my robot originating at 0,0,0 instead of being at the location specified by the joint in the URDF file.
Where is this transform supposed to come from? My suspicion is that it is supposed to be from /joint_states, published by turtlebot_node.py. When I run a gazebo simulation of the TurtleBot create model, /joint_states displays what appears to be appropriate information. However, the turtlebot_node.py code is hard coded to always publish "0, 0, 0":
js = JointState(name = ["left_wheel_joint", "right_wheel_joint", "front_castor_joint", "back_castor_joint"],
position=[0,0,0,0], velocity=[0,0,0,0], effort=[0,0,0,0])
which is exactly what I see from /joint_states
So why does the gazebo simulation show real /joint_states data, but not the real Create Turtlebot? Or is there some other piece of the puzzle that I am missing here? Or am I on the wrong path looking at the /joint_states to try to solve my left/right_wheel_link issues in RVIZ?