KevinOchs / hexapod_ros

ROS Hexapod stack with functioning 2D and 3D mapping.
Other
111 stars 47 forks source link

Ik problem of phantomX #17

Closed robotfan4 closed 8 years ago

robotfan4 commented 8 years ago

Hi, thank you for your great work. The IK class works well with the 4 DOF legs, however, it can't get the correct joint angles for the phantomX robot. Could you give me some suggestions?

r3n33 commented 8 years ago

Could you please try to describe the problem that you are having in more detail? I cloned the current source on my PhantomX, compiled and executed:

roslaunch hexapod_bringup hexapod_simple.launch config:=phantomX joy_mapping:=joystick_ds4

The IK is solving for 3dof without problems and the robot is able to walk around.

KevinOchs commented 8 years ago

R3n33 is correct, make sure you are using the proper config at launch and all should work well. Using the one that is called by default is Golem's and will not work properly on a phantomX.

robotfan4 commented 8 years ago

thank you for your quick answer, i will use a clear workspace and check it further.

robotfan4 commented 8 years ago

I don't have a joy stick, so i write a node to use a keyboard to simulate the joy_stick message, press key "1 " for standing up, "w" for moving forward. I modified the the hexapod_simple.launch and got the "/cmd_vel" topic like this:

linear: x: 0.0787199493647 y: -0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0

It should work for the robot, however i got a mess movement for the PhantonX and a nice movement for the Golem, As the video in the attachment. if you have time please check it. Bests. Here is the video and the code: source code and video.zip

KevinOchs commented 8 years ago

Your command velocity looks high for a phantomx. Is the terminal giving you warnings of IK failing??

robotfan4 commented 8 years ago

nope. it's growing from 0, the movement looks similar at start. To let the robot move forward, I just need let the robot stand up, pub the "/cmd_vel" , is that right?

KevinOchs commented 8 years ago

Are you using a picture of my Golem project as your profile picture?

robotfan4 commented 8 years ago

while i am sorry about that, that's some work about the map based hexapod motion planning. I will change it, sorry again for that potential copyright conflicts.

KevinOchs commented 8 years ago

No worries... So your video does look odd for the phantomX. Did you change the yaml for at all? If not there might be an error in either the xacro file for the phantomX or the yaml config file.

KevinOchs commented 8 years ago

The screen top, outer legs look very wrong. R3n33 does the physical robot walk properly? If physical is walking properly that means the joint state is correct since the servos are controlled by that. If it is just wrong in rviz this might be an easy fix. robotfan can you compare my Golem xacro file to the phantomX xacro file? Ignoring the tarsus of course.

KevinOchs commented 8 years ago

R3n33 messaged me the robot physical is fine. So we must have a bug in the robot xacro file.

(BTW your robot in your avatar look fantastic!)

robotfan4 commented 8 years ago

Thank you for your commends, I control my robot based on the ros crab hexapod robot project.

I compare the two xacros, Does the phantomX xacro need a foot link?

KevinOchs commented 8 years ago

It appears the coxa axis is backwards. Line 194 axis xyz="0.0 0.0 ${-axis}" should be axis xyz="0.0 0.0 1.0

Try that.

KevinOchs commented 8 years ago

And yes the phantomX could use a foot joint. Especially if you are going to use Gazebo

robotfan4 commented 8 years ago

yes, that works! thank you a lot!

KevinOchs commented 8 years ago

Issue is now fixed and updated in both master and indigo branch