(Reordered for chronologic order) >>> > On Wed, Jan 12, 2011 at 4:32 PM, Andy Somerville >>> > wrote: >>> >> >>> >> Hi, >>> >> >>> >> Has anyone had previous success with GazeboRosF3D in cturtle? In >>> >> attempting to use the GazeboRosF3D I've hit a bit of a wall. I believe >>> >> that I'm using it correctly and the topic is even being published to, >>> >> but I get all zeros back in situations that seem to clearly imply >>> >> there should be some forces and torques. >>> >> >>> >> My urdf entry looks like: >>> >> >>> >> >>> >>    >> >> plugin="libgazebo_ros_f3d.so"> >>> >>        true >>> >>        100.0 >>> >>        DarmSim/${side}Arm/WAM/LowerWristFTPalmLink >>> >>        DarmSim/${side}Arm/WAM/Wrist/FTSensor >>> >> >>> >>  DarmSim/${side}Arm/WAM/LowerWristFTPalmLink >>> >>         >>> >>     >>> >> >>> >> >>> >> >>> >> Where side is being filled in by "Left" and "Right", and >>> >> "DarmSim/${side}Arm/WAM/LowerWristFTPalmLink" is the name of a link >>> >> defined above the f3d entry in the xacro. >>> >> >>> >> Running the simulation produces the expected topics: >>> >> >>> >> /DarmSim/LeftArm/WAM/Wrist/FTSensor >>> >> /DarmSim/RightArm/WAM/Wrist/FTSensor >>> >> >>> >> But echoing them while performing an action that should clearly >>> >> produce a force and torque on that link consistently only produce 0s. >>> >> >>> >> I can find virtually no references to GazeboRosF3D being used in >>> >> google searches or in the stacks I have checked out with the one >>> >> exception being in >>> >> "pr2_common/pr2_description/urdf/gripper_v0/gripper.gazebo.xacro" but >>> >> that doesn't seem to be being subsequently used by anything. My next >>> >> step is to dive into the code behind GazeboRosF3D. >>> >> >>> >> Is anyone aware of some obvious factors that could explain the >>> >> behavior I'm seeing? >>> >> >>> >>     Andrew >>> >> >>> >> >>> >> >>> On Wed, Jan 12, 2011 at 9:11 PM, John Hsu >>> wrote: >>> > Hi Andrew, >>> > gazebo_ros_f3d returns applied forces and I just checked with >>> > rosservice call gazebo/apply_body_wrench >>> > and rxplotted the topic, and things look as expected for me.  Can you >>> > describe more detail what your setup is? >>> > thanks, >>> > John >> >> >> On Thu, Jan 13, 2011 at 9:12 AM, Andy Somerville >> wrote: >>> >>> John, >>> >>> When you say it returns "applied forces" do you mean to say that it >>> does not return forces that are the result of the physics simulation, >>> and only returns forces that are the result of something like >>> "rosservice call gazebo/apply_body_wrench"? >>> >>> My goal was to implement a force&torque sensor. In my setup, I applied >>> the plugin to one of the links in a 7 dof manipulator. My expectation >>> was that all of the forces and torques that occur in the simulation to >>> that link would be reported. Perhaps I misunderstood the purpose of >>> the plugin? If so, do you happen to know of a way to get the forces on >>> a target link? >>> >>>     Andrew >>> >>> >>> > > On Fri, Jan 14, 2011 at 1:25 AM, John Hsu wrote: >> Hi Andrew, >> You are correct that applied forces are only "external user applied forces", >> and does not include any reaction or constraint holding forces based on >> physics (LCP result).  To implement what you have described (force&torque >> sensor), I think you can obtain that information by summing up external >> forces (gazebo_ros_f3d) >> and the constraint forces provided by joints: >> dJointFeedback *ODEJoint::GetFeedback(). >> does that sound about right? >> John > > > On Fri, Jan 14, 2011 at 11:20 AM, Andy Somerville wrote: > John, > > After going through the code, I came to that conclusion as well and > modified the gazebo_ros_f3d plugin to do as much. I'm using the > GetBodyTorque, and GetBodyForce functions of course to get at the ODE > feedback data, but it seems to be on the right track and looks like it > will work out. > > Thanks for the advice : ) > >     Andrew > I should add for anyone else solving the same problem that there is some extra urdf that is necessary to get the feedback without which a call to any feedback related function will segfault. The provideFeedback tag must be declared as demonstrated, and not inside the joint declaration itself or it won't be registered. I'll file a separate bug report regarding the segfault. Andrew