ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Hey,
with the help of a friend I was able to figure out the problems.
I ended up creating an extra file for the controller: joint_state_controller.yaml
# Publish all joint states -----------------------------------
joint_state_controller:
type: joint_state_controller/JointStateController
publish_rate: 25
# Position Controllers ---------------------------------------
joint1_position_controller:
type: effort_controllers/JointPositionController
joint: joint_1
pid: { p: 8000.0, d: 1000.0, i: 100.0, i_clamp: 0 }
joint2_position_controller:
type: effort_controllers/JointPositionController
joint: joint_2
pid: { p: 100000.0, d: 100000.0, i: 2000, i_clamp: 0 }
joint3_position_controller:
type: effort_controllers/JointPositionController
joint: joint_3
pid: { p: 10000.0, d: 800.0, i: 500.0, i_clamp: 0 }
joint4_position_controller:
type: effort_controllers/JointPositionController
joint: joint_4
pid: { p: 18000, d: 200, i: 0.01, i_clamp: 0 }
joint5_position_controller:
type: effort_controllers/JointPositionController
joint: joint_5
pid: { p: 100, d: 0, i: 0, i_clamp: 0}
joint6_position_controller:
type: effort_controllers/JointPositionController
joint: joint_6
pid: { p: 8, d: 0, i: 0, i_clamp: 0}
I think the main difference here is that I don't have irb4600_40_255_arm_controller
as a namespace in the first line of the file.
Now I call this file in my ros_controllers.launch
as this:
<rosparam file="$(find irb4600_40_255_moveit_config)/config/joint_state_controller.yaml" command="load"/>
<node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
output="screen"
args="joint_state_controller
joint1_position_controller
joint2_position_controller
joint3_position_controller
joint4_position_controller
joint5_position_controller
joint6_position_controller "/>
I think it was somehow a problem with the namespace, so I ended up using none.
Some further tips which helped me:
Look in rostopics list
if you controllers are publishing, to make sure they get loaded
Don't set you PID values too low in the new controller, as I had simply p = 100 which was not ennough to move the robot even a little bit.
2 | No.2 Revision |
Hey,
with the help of a friend I was able to figure out the problems.
I ended up creating an extra file for the controller: joint_state_controller.yaml
# Publish all joint states -----------------------------------
joint_state_controller:
type: joint_state_controller/JointStateController
publish_rate: 25
# Position Controllers ---------------------------------------
joint1_position_controller:
type: effort_controllers/JointPositionController
joint: joint_1
pid: { p: 8000.0, d: 1000.0, i: 100.0, i_clamp: 0 }
joint2_position_controller:
type: effort_controllers/JointPositionController
joint: joint_2
pid: { p: 100000.0, d: 100000.0, i: 2000, i_clamp: 0 }
joint3_position_controller:
type: effort_controllers/JointPositionController
joint: joint_3
pid: { p: 10000.0, d: 800.0, i: 500.0, i_clamp: 0 }
joint4_position_controller:
type: effort_controllers/JointPositionController
joint: joint_4
pid: { p: 18000, d: 200, i: 0.01, i_clamp: 0 }
joint5_position_controller:
type: effort_controllers/JointPositionController
joint: joint_5
pid: { p: 100, d: 0, i: 0, i_clamp: 0}
joint6_position_controller:
type: effort_controllers/JointPositionController
joint: joint_6
pid: { p: 8, d: 0, i: 0, i_clamp: 0}
I think the main difference here is that I don't have irb4600_40_255_arm_controller
as a namespace in the first line of the file.
Now I call this file in my ros_controllers.launch
as this:
<rosparam file="$(find irb4600_40_255_moveit_config)/config/joint_state_controller.yaml" command="load"/>
<node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
output="screen"
args="joint_state_controller
joint1_position_controller
joint2_position_controller
joint3_position_controller
joint4_position_controller
joint5_position_controller
joint6_position_controller "/>
I think it was somehow a problem with the namespace, so I ended up using none.
Some further tips which helped me:
Look in rostopics list
if you controllers are publishing, to make sure they get loaded
Don't set you PID values too low in the new controller, as I had simply p = 100 which was not ennough to move the robot even a little bit.