How to investigate torque values applied to the robot in a ROS application

asked 2020-04-09 08:12:14 -0500

azerila gravatar image

updated 2020-04-09 08:14:52 -0500

I have a ROS application that uses Gazebo for simulation. Is there a way to observe where gazebo receives the value for the joint torques?

For example I have a \gazebo node which has some services and topics like the following. For the services I can't echo the requests at run-time to see if I see an array with 7 entries for example.

My ultimate goal is to replace the gazebo simulator with Mujoco-py or PyBullet in this application. Each of the other engines have a specific API to receive joint torques and them take one simulation step, so on one hand I'm also wondering if the similar API exists in Gazebo.

On the other hand, if I understand the pipeline within this application backward from the end-point where joint torques are given to gazebo, it will be easier to replace the simulator with another one such as Mujoco.

 * /PandaCartesianImpedanceController/controllerReference [proj_arm_control_ros/CartesianImpedanceSetpoint]
 * /PandaCartesianImpedanceController/controllerReferenceTrajectory [unknown type]
 * /PandaCartesianImpedanceController/trackReference/cancel [unknown type]
 * /PandaCartesianImpedanceController/trackReference/goal [unknown type]
 * /PandaGravityCompensatedJointTorqueController/trackReference/cancel [actionlib_msgs/GoalID]
 * /PandaGravityCompensatedJointTorqueController/trackReference/goal [proj_arm_control_ros/StateFeedbackControllerActionGoal]
 * /clock [rosgraph_msgs/Clock]
 * /franka_gripper/command [unknown type]
 * /franka_gripper/grasp/cancel [actionlib_msgs/GoalID]
 * /franka_gripper/grasp/goal [franka_gripper/GraspActionGoal]
 * /franka_gripper/homing/cancel [actionlib_msgs/GoalID]
 * /franka_gripper/homing/goal [franka_gripper/HomingActionGoal]
 * /franka_gripper/move/cancel [actionlib_msgs/GoalID]
 * /franka_gripper/move/goal [franka_gripper/MoveActionGoal]
 * /franka_gripper/stop/cancel [actionlib_msgs/GoalID]
 * /franka_gripper/stop/goal [franka_gripper/StopActionGoal]
 * /gazebo/set_link_state [unknown type]
 * /gazebo/set_model_state [unknown type]
 * /PandaCartesianImpedanceController/gotoSetpoint
 * /cartesian_impedance_reconfigure/set_parameters
 * /controller_manager/list_controller_types
 * /controller_manager/list_controllers
 * /controller_manager/load_controller
 * /controller_manager/reload_controller_libraries
 * /controller_manager/switch_controller
 * /controller_manager/unload_controller
 * /franka_gripper/execute_command
 * /franka_gripper/execute_command_buffered
 * /franka_gripper/reset_buffer
 * /gazebo/apply_body_wrench
 * /gazebo/apply_joint_effort
 * /gazebo/clear_body_wrenches
 * /gazebo/clear_joint_forces
 * /gazebo/delete_light
 * /gazebo/delete_model
 * /gazebo/get_joint_properties
 * /gazebo/get_light_properties
 * /gazebo/get_link_properties
 * /gazebo/get_link_state
 * /gazebo/get_loggers
 * /gazebo/get_model_properties
 * /gazebo/get_model_state
 * /gazebo/get_physics_properties
 * /gazebo/get_world_properties
 * /gazebo/pause_physics
 * /gazebo/reset_simulation
 * /gazebo/reset_world
 * /gazebo/set_joint_properties
 * /gazebo/set_light_properties
edit retag flag offensive close merge delete


Do you use any joint controller? If so what do you use?

pmuthu2s gravatar image pmuthu2s  ( 2020-04-09 09:47:25 -0500 )edit

@pmuthu2s application uses a cartesian impedance controller but it may also use more than one controller which I don't have information about. All I see is a number of nodes and some topics attached to the /gazebo node which might be related to the controller. I am wondering if on gazebo's side it is clear where it gets the torques, similar to other physics engines, so that from there I find my way easier perhaps.

azerila gravatar image azerila  ( 2020-04-09 16:06:49 -0500 )edit