Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 1516

Manipulator initial position altered after changing from a position_controllers/JointTrajectoryController to a effort_controllers/JointTrajectoryController

$
0
0
Hi, I am currently on Ubuntu 16.04 LTS and ROS Kinetic, working on the integration of a Husky and a Robotis Manipulator-H in the Gazebo simulator. Right now I have the manipulator working with MoveIt! while standing fixed on top of a Husky robot. First of all I was having a problem which was the fact that when I moved the Husky robot (for example, with the teleop keyboard), his dynamics were not correct, i. .e, the front wheels would lift up when I moved him forward and the back wheels would also lift up If I moved him backwards. I researched about the possible reasons why this was happening and via this link: http://answers.gazebosim.org/question/15045/why-my-model-seems-to-defy-the-gravity-and-seems-to-be-grabbed-from-the-top-when-moving/#18851 I found out that the fact that I was using a position_controllers/JointTrajectoryController to control the manipulator (via MoveIt!) was afecting my robot's dynamics. The solution was changing this controller to a effort_controllers/JointTrajectoryController, which made it possible to move my Husky robot around normally. The only problem is that now, the initial position of the manipulator is a bit odd. The following images show the normal position of the manipulator (when using a position_controllers/JointTrajectoryController) and the position of the manipulator when using a effort_controllers/JointTrajectoryController: Normal position: ![image description](/upfiles/15230120966573886.png) Altered position: ![image description](/upfiles/1523012120954334.png) Besides this initial position problem, path planning has equally good (or even perfect) results when using both controller types. Has this weird initial position any side effect in my system/manipulator/simulation? I posted this question in Github: https://github.com/znbrito/Brito-thesis-Robotis-Manipulator-H-path-planning/issues/3 And in Gazebo answers: http://answers.gazebosim.org/question/18873/manipulator-initial-position-altered-after-changing-from-a-position_controllersjointtrajectorycontroller-to-a/ Because I am not sure where exactly I should post my problem but from the feedback that I got till know, I think this has something to do with the PID controllers that I am using right now. What I did was simply using the PID parameters that came from the original package from Robotis's Github from other controller types: robotis_manipulator_h: # Publish all joint states ----------------------------------- joint_state_controller: type: joint_state_controller/JointStateController publish_rate: 125 # Position Controllers --------------------------------------- joint1_position: type: effort_controllers/JointPositionController joint: joint1 pid: {p: 9000.0, i: 0.1, d: 500.0} joint2_position: type: effort_controllers/JointPositionController joint: joint2 pid: {p: 9000.0, i: 0.1, d: 500.0} joint3_position: type: effort_controllers/JointPositionController joint: joint3 pid: {p: 6000.0, i: 0.1, d: 400.0} joint4_position: type: effort_controllers/JointPositionController joint: joint4 pid: {p: 6000.0, i: 0.1, d: 400.0} joint5_position: type: effort_controllers/JointPositionController joint: joint5 pid: {p: 6000.0, i: 0.1, d: 400.0} joint6_position: type: effort_controllers/JointPositionController joint: joint6 pid: {p: 6000.0, i: 0.1, d: 400.0} And I added the controller for MoveIt! myself with these PID parameters: robotis_manipulator_h: # Publish all joint states ----------------------------------- joint_state_controller: type: joint_state_controller/JointStateController publish_rate: 125 # Controllers for MoveIt! ------------------------------------ main_group_controller: type: effort_controllers/JointTrajectoryController joints: - joint1 - joint2 - joint3 - joint4 - joint5 - joint6 gains: joint1: {p: 9000.0, i: 0.1, d: 500.0} joint2: {p: 9000.0, i: 0.1, d: 500.0} joint3: {p: 6000.0, i: 0.1, d: 400.0} joint4: {p: 6000.0, i: 0.1, d: 400.0} joint5: {p: 6000.0, i: 0.1, d: 400.0} joint6: {p: 6000.0, i: 0.1, d: 400.0} # Position Controllers --------------------------------------- joint1_position: type: effort_controllers/JointPositionController joint: joint1 pid: {p: 9000.0, i: 0.1, d: 500.0} joint2_position: type: effort_controllers/JointPositionController joint: joint2 pid: {p: 9000.0, i: 0.1, d: 500.0} joint3_position: type: effort_controllers/JointPositionController joint: joint3 pid: {p: 6000.0, i: 0.1, d: 400.0} joint4_position: type: effort_controllers/JointPositionController joint: joint4 pid: {p: 6000.0, i: 0.1, d: 400.0} joint5_position: type: effort_controllers/JointPositionController joint: joint5 pid: {p: 6000.0, i: 0.1, d: 400.0} joint6_position: type: effort_controllers/JointPositionController joint: joint6 pid: {p: 6000.0, i: 0.1, d: 400.0} So: 1. Is this weird position a problem? 2. Can I use the same PID parameters to more than one different controller, even though I now that MoveIt! is now performing path planning with no errors? Thanks in advance!

Viewing all articles
Browse latest Browse all 1516

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>