How to fix 'No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/shoulder_pan_joint'
Hello. I have a mobile manipulator (husky + ur3) from github. When I run a launch file I see the robot in gazebo. I managed to move the mobile (husky) and the gripper (of ur3) , because I know these topics. But, I can not move the manipulator (ur3) because I cant find the topics (in terminal I run: 'rostopics list', when I run my launch file). Also ,when I run the launch file I see some errors in the terminal: *[ERROR] [1678575963.054117054, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/shoulderpanjoint [ERROR] [1678575963.055541515, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/shoulderliftjoint [ERROR] [1678575963.056787201, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/elbowjoint [ERROR] [1678575963.057874529, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/wrist1joint [ERROR] [1678575963.059244182, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/wrist2joint [ERROR] [1678575963.061808128, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/wrist3joint [ERROR] [1678575963.063227160, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/frontleftwheel [ERROR] [1678575963.064304408, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/frontrightwheel [ERROR] [1678575963.065333606, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/rearleftwheel [ERROR] [1678575963.066562042, 0.329000000]: No p gain specified for pid. Namespace: /gazeboroscontrol/pidgains/rearright_wheel *
I searched for this error and some people say that I need to add some info in a .yaml file, but I have a lot of .yaml files such as controljoint.yaml that inside has info like this: **huskyjointpublisher: type: "jointstatecontroller/JointStateController" publishrate: 50
huskyvelocitycontroller: type: "diffdrivecontroller/DiffDriveController" leftwheel: ['frontleftwheel', 'rearleftwheel'] rightwheel: ['frontrightwheel', 'rearrightwheel'] publishrate: 50 posecovariancediagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03] twistcovariancediagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03] cmdveltimeout: 0.25 velocityrollingwindowsize: 2
# Base frameid baseframeid: baselink
# Odometry fused with IMU is published by robotlocalization, so # no need to publish a TF based on encoders alone. enableodom_tf: false
# Husky hardware provides wheel velocities estimatevelocityfrom_position: false
# Wheel separation and radius multipliers wheelseparationmultiplier: 1.875 # default: 1.0 wheelradiusmultiplier : 1.0 # default: 1.0
# Velocity and acceleration limits # Whenever a min* is unspecified, default to -max* linear: x: hasvelocitylimits : true maxvelocity : 1.0 # m/s hasaccelerationlimits: true maxacceleration : 3.0 # m/s^2 angular: z: hasvelocitylimits : true maxvelocity : 2.0 # rad/s hasaccelerationlimits: true maxacceleration : 6.0 # rad/s^2
husky: # Publish all joint states ----------------------------------- jointstatecontroller: type: jointstatecontroller/JointStateController publish_rate: 50
# Position Controllers --------------------------------------- joint1positioncontroller: type: positioncontrollers/JointPositionController joint: shoulderpan_joint pid: {p: 100.0, i: 0.01, d: 10.0}
joint2positioncontroller: type: positioncontrollers/JointPositionController joint: shoulderlift_joint pid: {p: 100.0, i: 0.01, d: 10.0}
joint3positioncontroller: type: positioncontrollers/JointPositionController joint: elbowjoint pid: {p: 100.0, i: 0.01, d: 10.0}
joint4positioncontroller: type: positioncontrollers/JointPositionController joint: wrist1_joint pid: {p: 100.0, i: 0.01, d: 10.0}
joint5positioncontroller: type: positioncontrollers/JointPositionController joint: wrist2_joint pid: {p: 100.0, i: 0.01, d: 10.0}
joint6positioncontroller: type: positioncontrollers/JointPositionController joint: wrist3_joint pid: {p: 100.0, i: 0.01, d: 10.0} **
What should I do in order to move this manipulator? As I said, I can control the base (husky) and the gripper (that is attached in the manipulator). How is it possible to see the topics for the base (velocity) and gripper and not for the manipulator? Any help would be appreciated...
Topics: **/armcontroller/command /armcontroller/followjointtrajectory/cancel /armcontroller/followjointtrajectory/feedback /armcontroller/followjointtrajectory/goal /armcontroller/followjointtrajectory/result /armcontroller/followjointtrajectory/status /armcontroller/state /clock /cmdvel /diagnostics /estop /gd435/depth/camerainfo /gd435/depth/gimageraw /gd435/depth/gpoints /gd435/parameterdescriptions /gd435/parameterupdates /gd435/rgb/camerainfo /gd435/rgb/gimageraw /gd435/rgb/gimageraw/compressed /gd435/rgb/gimageraw/compressed/parameterdescriptions /gd435/rgb/gimageraw/compressed/parameterupdates /gd435/rgb/gimageraw/compressedDepth /gd435/rgb/gimageraw/compressedDepth/parameterdescriptions /gd435/rgb/gimageraw/compressedDepth/parameterupdates /gd435/rgb/gimageraw/theora /gd435/rgb/gimageraw/theora/parameterdescriptions /gd435/rgb/gimageraw/theora/parameterupdates /gazebo/linkstates /gazebo/modelstates /gazebo/parameterdescriptions /gazebo/parameterupdates /gazebo/performancemetrics /gazebo/setlinkstate /gazebo/setmodelstate /hd435/depth/camerainfo /hd435/depth/himageraw /hd435/depth/hpoints /hd435/parameterdescriptions /hd435/parameterupdates /hd435/rgb/camerainfo /hd435/rgb/himageraw /hd435/rgb/himageraw/compressed /hd435/rgb/himageraw/compressed/parameterdescriptions /hd435/rgb/himageraw/compressed/parameterupdates /hd435/rgb/himageraw/compressedDepth /hd435/rgb/himageraw/compressedDepth/parameterdescriptions /hd435/rgb/himageraw/compressedDepth/parameterupdates /hd435/rgb/himageraw/theora /hd435/rgb/himageraw/theora/parameterdescriptions /hd435/rgb/himageraw/theora/parameterupdates /huskyvelocitycontroller/cmdvel /huskyvelocitycontroller/odom /huskyvelocitycontroller/parameterdescriptions /huskyvelocitycontroller/parameterupdates /imu/data /imu/data/accel/parameterdescriptions /imu/data/accel/parameterupdates /imu/data/bias /imu/data/rate/parameterdescriptions /imu/data/rate/parameterupdates /imu/data/yaw/parameterdescriptions /imu/data/yaw/parameterupdates /jointstates /joyteleop/cmdvel /navsat/fix /navsat/fix/position/parameterdescriptions /navsat/fix/position/parameterupdates /navsat/fix/status/parameterdescriptions /navsat/fix/status/parameterupdates /navsat/fix/velocity/parameterdescriptions /navsat/fix/velocity/parameterupdates /navsat/vel /odometry/filtered /rhl1position/command /rhl1position/pid/parameterdescriptions /rhl1position/pid/parameterupdates /rhl1position/state /rhl2position/command /rhl2position/pid/parameterdescriptions /rhl2position/pid/parameterupdates /rhl2position/state /rhp12rnposition/command /rhp12rnposition/pid/parameterdescriptions /rhp12rnposition/pid/parameterupdates /rhp12rnposition/state /rhr2position/command /rhr2position/pid/parameterdescriptions /rhr2position/pid/parameterupdates /rhr2position/state /rosout /rosoutagg /scan /setpose /tf /tfstatic /twistmarkerserver/cmdvel /twistmarkerserver/feedback /twistmarkerserver/update /twistmarkerserver/update_full
**
Asked by NickRos on 2023-03-11 18:21:26 UTC
Answers
Apparently, there are two ways of spawning the Husky + UR3:
1) Using a JointTrajectoryController, which uses an action interface or a topic (/arm_controller/command in your case). The launch file that does this is spawn_husky.launch
2) Using a PositionController for each joint, which is what you have shown in the yaml file.The launch file that does this is spawn_husky_joint.launch
To use the latter, you need a launch file that includes spawn_husky_joint.launch, so you would have to spawn it with husky_ur3_joint.launch.
Asked by arianwu on 2023-03-12 14:42:30 UTC
Comments
Seems pretty weird to me that you have all of the topics for a FollowJointTrajectory action (/arm_controller/follow_joint_trajectory/*) associated with a controller of type JointTrajectoryController while your YAML file has specifications for JointPositionController can you show us the launch file or the a link to it so that we can take a look if the command for spawning the controller is actually spawning the correct controller you desire?
In case you are fine with a FollowJointTrajectory you would be fine by using the action interface or by publishing into the /arm_controller/command topic
Asked by arianwu on 2023-03-12 05:03:34 UTC
This is the launch file I run. link
Asked by NickRos on 2023-03-12 09:10:01 UTC
My problem is that I can not move the manipulator. I can only move the base and gripper because I have these topics
Asked by NickRos on 2023-03-12 09:17:13 UTC