ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Vivian's profile - activity

2014-04-10 09:37:17 -0500 received badge  Famous Question (source)
2013-05-04 04:10:19 -0500 received badge  Notable Question (source)
2013-04-30 15:53:43 -0500 received badge  Self-Learner (source)
2013-04-30 15:53:43 -0500 received badge  Teacher (source)
2013-04-30 15:36:07 -0500 commented question what is the correct frame to give ik goals in?

Thanks for the suggestion but turns out the way the axes are defined makes no difference - ikfast solves it just the same. See the rest of my answer below.

2013-04-30 15:32:37 -0500 answered a question what is the correct frame to give ik goals in?

In answer to my own question, for anyone else that encounters this:

The quaternion you need to give as a goal for an end effector is in the frame of the base joint, not the relative change in position of the base joint compared to the tip.

Eg1. say, you have a base join with Z up and x forward, and the tip with a relative rotation of 90 degrees around the X axis compared to the base joint, when it is in the rest pose (ie,all joints 0). In this first case, to maintain that same starting orientation when moving the tip, you must give a quaternion that is a 90 degree rotation around the X axis, as the goal.

Eg2. say, you have a base join with Z up and x forward, and the tip has exactly the same orientation, with Z up and X forward.

In this second case, to maintain that same starting orientation when moving the tip, you must give the identity quaternion, ie. (x=0, y = 0, z = 0, w = 1).

Thanks for the suggestions Boris, but it turns out the configuration I was using was fine. The problem I was having was that the model that I was regenerating an IK solution for had been changed from the original model that the old solution had been calculated for, so there was a mismatch between what the scripts that drive the robot were expecting and the actual IK results being created. (the scripts were assuming identity quaternion would maintain the starting orientation, which was not the case for the newly generated solution)

2013-04-18 19:10:22 -0500 received badge  Popular Question (source)
2013-04-08 20:59:45 -0500 asked a question what is the correct frame to give ik goals in?

Hi, I have been trying to use using ROS Groovy and the IKfast solver on Ubuntu 12.10, to generate 6DOF IK solutions, and have had some success, in that the robot does move the arm more or less to a point I tell it, if I give it certain quaternions as part of the goal, but am still struggling with getting the right orientation of the tip to the base.

The closest I have come to getting the solution I want is when I provide a quaternion for the goal which I think would be a +90 degree rotation around X, (x=0,y=0.7071,z=0,w=0.7071) but which results in the robot orienting the tool exactly 180 degrees out, on the Z axis.

Unfortunately whenever I attempt to get solutions with an identity quaternion, IK fails. I have actually tried all possible 90 degree transforms (there's 24 of them) to see if I could spot a pattern, but it is eluding me - about half work, and half fail. I expected to see complete failure for rotations around one particular axis, which I thought would then indicate the axis that IKFast considers to be pointing back on along the last link, and always impossible to reach.

What is the correct way to ensure the tool's orientation is pointing the way you want? I think that the goals are supposed to be relative to the base of the Ik chain, right? Is there a preferred way top set up the robot's frames? It is difficult for me to get all frames oriented with the world because of the way the meshes I am working with are oriented - and apparently reorienting them would then throw the moment of inertia figures off.

Any hints would be much appreciated!

Vivian

2013-02-14 08:26:16 -0500 received badge  Famous Question (source)
2013-02-09 07:27:53 -0500 received badge  Notable Question (source)
2013-02-07 04:49:09 -0500 received badge  Popular Question (source)
2013-02-06 15:16:56 -0500 received badge  Student (source)
2013-02-06 15:07:17 -0500 received badge  Editor (source)
2013-02-06 15:02:06 -0500 asked a question Trouble running ROS simulator_gazebo tutorial.

I am new to ROS so there is probably a simple explanation for what I am doing wrong, but I have been having problems getting Gazebo to work with ROS, as described in the ROS simulator_gazebo tutorial. I have insufficient karma to post a direct link, unfortunately.

when I try to follow the steps there, I get errors The gazebo wiki install guide mentions that there is a problem with the ROS Gazebo tutorial, and when I followed the install instructions for gazebo on that site, I have been able to get gazebo to run as a stand alone system successfully.

However I need to run it with ROS - I assume the only way to do this is using roslaunch

Is there a simple fix to make the ROS tutorial work, or is there a workaround to make the standalone gazebo work with ROS?

I am using ROS Groovy, on Ubuntu 12.04 i386

Unfortunately I have insufficient karma to attach a log file, so I have to post it in here.

The resulting logfile contains the following errors:


core service [/rosout] found
process[gazebo-1]: started with pid [20897]
process[gazebo_gui-2]: started with pid [20908]
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".

Reading symbols from /opt/ros/groovy/stacks/simulator_gazebo/gazebo/gazebo/bin/gzserver...(no debugging symbols found)...done.
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
Gazebo multi-robot simulator, version 1.3.0
Copyright (C) 2012 Nate Koenig, John Hsu, and contributors.
Released under the Apache 2 License.


[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[New Thread 0xb5679b40 (LWP 20934)]
Gazebo multi-robot simulator, version 1.3.0
Copyright (C) 2012 Nate Koenig, John Hsu, and contributors.
Released under the Apache 2 License.

[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
Msg Waiting for master
Error [ConnectionManager.cc:115] Conflicting gazebo versions
Msg Publicized address: 192.168.0.9
Error [Rendering.cc:37] Failed to load the Rendering engine subsystem
unable to find OpenGL rendering system ...
(more)