Closed Icon45 closed 1 year ago
This is normal, the motion of the robot in Gazebo is controlled by the ros2_control
controller joint_trajectory_controller
. You need to send appropriate action goal messages (FollowJointTrajectoryGoal
) to that controller.
joint_state_publisher_gui
is useful for visualization when you don't have a "robot" publishing joint states.
In the case of Gazebo simulation, the "robot" is Gazebo, plugins, and associated other nodes, which include a joint state broadcaster that gets the actual joint angles, velocities, etc. reported by the joints in the physics simulation and publishes them on /joint_states
(see here).
If you want a test to get the Gazebo-simulated robot to move, try
ros2 launch ur_robot_driver test_joint_trajectory_controller.launch.py
The robot should move around and RViz should follow along, since it's listening to the joint states published by the broadcaster.
I don't know off the top of my head if there's a GUI equivalent to joint_state_publisher_gui
that you could use to send slider-driven commands to a ros2_control
controller... usually that would be kind of dangerous on a real robot and you wouldn't want to do it, at least not without some supervisory checking of how fast the robot would move.
Thank you very much for the explanation!
Hi,
i’ve tried to use the joint state pubisher gui to move the robot in rviz and Gazebo. While i was getting movement in RViz the robot in Gazebo stood still.
I’ve also noticed that when i fire up the launch file with the joint state publisher gui the robot in RViz is orientated horizontally and the one in Gazebo stands up vertically.