FT sensor plugin on gazebo
Hi, I'm trying to set FT sensor to Husky. Howerve, launching gazebo, i got an error saying:
gazebo_ros_ft_sensor plugin error: jointName: blade_joint does not exist
My custermized model looks like a bulldozer. There is a board in front of the husky. I named new joint&link as bladejoint & bladelink and set the sensor to bladejoint (bladejoint is connected to husky's base_link).
When I checked my gazebo, I can see the bladelink itself(i mean its visual), but I cannot find the name of bladejoint & blade_link on the side bar. How can i set the sensor to my new joint?
My urdf code is below:
<?xml version="1.0"?>
<robot name="husky" xmlns:xacro="http://ros.org/wiki/xacro">
<!--caculation of inertia-->
<xacro:macro name="box_inertia" params="m x y z">
<inertia ixx="${m*(y*y+z*z)/12}" ixy = "0" ixz = "0"
iyy="${m*(z*z+x*x)/12}" iyz = "0"
izz="${m*(x*x+y*y)/12}" />
</xacro:macro>
<!--connect to Husky's link-->
<joint name="blade_joint" type="fixed">
<parent link="base_link"/>
<child link="blade_link"/>
</joint>
<link name="blade_link">
<visual>
<geometry>
<box size="0.01 0.7 0.39"/>
</geometry>
<origin xyz="0.5 0 0.1" rpy="0 0 0"/>
<material name="dark_grey"/>
</visual>
<collision>
<geometry>
<box size="0.01 0.7 0.39"/>
</geometry>
</collision>
<inertial>
<origin xyz="0.5 0 0.1"/>
<mass value="0.1"/>
<xacro:box_inertia m="0.1" x="0.01" y="0.7" z="0.39"/>
</inertial>
</link>
<gazebo reference="blade_link">
<material>Gazebo/Black</material>
<turnGravityOff>false</turnGravityOff>
</gazebo>
<!-- Enable the Joint Feedback -->
<gazebo reference="blade_joint">
<provideFeedback>true</provideFeedback>
</gazebo>
<!-- The ft_sensor plugin -->
<gazebo>
<plugin name="ft_sensor" filename="libgazebo_ros_ft_sensor.so">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<topicName>ft_sensor_topic</topicName>
<jointName>blade_joint</jointName>
</plugin>
</gazebo>
</robot>
Thanks in advance, Karin
Asked by KRN.S on 2022-10-21 02:39:44 UTC
Comments
What is an FT sensor? Can you provide a link to a wiki page?
Asked by Mike Scheutzow on 2022-10-21 13:19:55 UTC
Because the joint's type is fixed. Add this line
<preserveFixedJoint>true</preserveFixedJoint>
, it should do the job.Asked by CroCo on 2023-05-25 10:25:00 UTC