Refactor iiwa_controller_v2: Remove obsolete files and update URDF parameters

- Deleted `system_interface_type_values.hpp`, `package.xml`, `fri_client.cpp`, and `system_interface.cpp` as part of the cleanup process.
- Updated `iiwa7.urdf.xacro` to remove deprecated parameters and adjust command interface settings.
- Modified joint definitions in `joints.xacro` to include new friction and soft limit parameters.
- Enhanced `macros.xacro` to support additional joint properties for friction and safety control.
- Adjusted mass properties in `params.xacro` to reflect accurate values for the robot's components.
This commit is contained in:
Даниил Грабарь
2026-05-18 11:10:11 +10:00
parent efaec9b442
commit ace4d02b8a
18 changed files with 240 additions and 1295 deletions
+14 -43
View File
@@ -8,9 +8,6 @@
<xacro:arg name="fri_port" default="30200"/>
<xacro:arg name="command_mode" default="position"/>
<xacro:arg name="joint_position_tau" default="0.04"/>
<!-- iiwa_controller_v2: новые параметры. Убери эти строки при откате на v1 -->
<!-- <xacro:arg name="open_loop" default="true"/>
<xacro:arg name="rt_prio" default="80"/> -->
<xacro:property name="initial_positions"
value="${xacro.load_yaml('$(arg initial_positions_file)')['initial_positions']}"/>
@@ -145,32 +142,6 @@
<ros2_control name="iiwaFRIControl" type="system">
<hardware>
<!-- ════════════════════════════════════════════════════════
АКТИВНЫЙ ПЛАГИН: iiwa_controller_v2
Чтобы вернуть v1 — раскомментируй блок v1 ниже
и закомментируй блок v2.
════════════════════════════════════════════════════════ -->
<!-- ── v2 (активен) ──────────────────────────────────────── -->
<!-- <plugin>iiwa_controller_v2/SystemInterface</plugin> -->
<!-- <param name="robot_ip">$(arg robot_ip)</param> -->
<!-- <param name="fri_port">$(arg fri_port)</param> -->
<!-- <param name="simulate">false</param> -->
<!-- <param name="command_mode">$(arg command_mode)</param> -->
<!-- <param name="joint_position_tau">$(arg joint_position_tau)</param> -->
<!-- новые параметры v2: -->
<!-- <param name="open_loop">$(arg open_loop)</param> -->
<!-- <param name="rt_prio">$(arg rt_prio)</param> -->
<!-- ── v1 (закомментировано) ─────────────────────────────
<plugin>iiwa_controller/IIWAHardwareInterface</plugin>
<param name="robot_ip">$(arg robot_ip)</param>
<param name="fri_port">$(arg fri_port)</param>
<param name="simulate">false</param>
<param name="command_mode">$(arg command_mode)</param>
<param name="joint_position_tau">$(arg joint_position_tau)</param>
─────────────────────────────────────────────────────────── -->
<plugin>iiwa_controller/IIWAHardwareInterface</plugin>
<param name="robot_ip">$(arg robot_ip)</param>
<param name="fri_port">$(arg fri_port)</param>
@@ -185,8 +156,8 @@
<param name="max"> 2.97</param>
</command_interface>
<command_interface name="effort">
<param name="min">-320</param>
<param name="max"> 320</param>
<param name="min">-200</param>
<param name="max"> 200</param>
</command_interface>
<state_interface name="position">
<param name="initial_value">${initial_positions['joint1']}</param>
@@ -201,8 +172,8 @@
<param name="max"> 2.09</param>
</command_interface>
<command_interface name="effort">
<param name="min">-320</param>
<param name="max"> 320</param>
<param name="min">-200</param>
<param name="max"> 200</param>
</command_interface>
<state_interface name="position">
<param name="initial_value">${initial_positions['joint2']}</param>
@@ -217,8 +188,8 @@
<param name="max"> 2.97</param>
</command_interface>
<command_interface name="effort">
<param name="min">-320</param>
<param name="max"> 320</param>
<param name="min">-200</param>
<param name="max"> 200</param>
</command_interface>
<state_interface name="position">
<param name="initial_value">${initial_positions['joint3']}</param>
@@ -233,8 +204,8 @@
<param name="max"> 2.09</param>
</command_interface>
<command_interface name="effort">
<param name="min">-320</param>
<param name="max"> 320</param>
<param name="min">-200</param>
<param name="max"> 200</param>
</command_interface>
<state_interface name="position">
<param name="initial_value">${initial_positions['joint4']}</param>
@@ -249,8 +220,8 @@
<param name="max"> 2.97</param>
</command_interface>
<command_interface name="effort">
<param name="min">-320</param>
<param name="max"> 320</param>
<param name="min">-200</param>
<param name="max"> 200</param>
</command_interface>
<state_interface name="position">
<param name="initial_value">${initial_positions['joint5']}</param>
@@ -265,8 +236,8 @@
<param name="max"> 2.09</param>
</command_interface>
<command_interface name="effort">
<param name="min">-320</param>
<param name="max"> 320</param>
<param name="min">-200</param>
<param name="max"> 200</param>
</command_interface>
<state_interface name="position">
<param name="initial_value">${initial_positions['joint6']}</param>
@@ -281,8 +252,8 @@
<param name="max"> 3.05</param>
</command_interface>
<command_interface name="effort">
<param name="min">-320</param>
<param name="max"> 320</param>
<param name="min">-200</param>
<param name="max"> 200</param>
</command_interface>
<state_interface name="position">
<param name="initial_value">${initial_positions['joint7']}</param>
+30 -23
View File
@@ -9,53 +9,60 @@
<child link="base_link"/>
</joint>
<!-- joint1 -->
<!-- joint1: ±170° hard, ±165° soft, k_velocity=10 -->
<xacro:revolute_joint jname="joint1" parent="base_link" child="link1"
xyz="0 0 0.3375" rpy="0 0 0" axis="0 0 -1"
lower="-2.97" upper="2.97" effort="500"
velocity="1.71" damping="0.5"/>
xyz="0 0 0.3375" rpy="0 0 0" axis="0 0 1"
lower="-2.97" upper="2.97" effort="200"
velocity="1.71" damping="10.0" friction="0.1"
soft_lower="-2.8827" soft_upper="2.8827" k_velocity="10"/>
<!-- joint2 -->
<!-- joint2: ±119° hard, ±114° soft -->
<xacro:revolute_joint jname="joint2" parent="link1" child="link2"
xyz="0 0 0" rpy="-1.5708 0 0" axis="0 0 1"
lower="-2.09" upper="2.09" effort="500"
velocity="1.71" damping="0.5"/>
lower="-2.09" upper="2.09" effort="200"
velocity="1.71" damping="10.0" friction="0.1"
soft_lower="-2.0027" soft_upper="2.0027" k_velocity="10"/>
<!-- joint3 -->
<!-- joint3: ±170° hard, ±165° soft -->
<xacro:revolute_joint jname="joint3" parent="link2" child="link3"
xyz="0 -0.3993 0" rpy="1.5708 0 0" axis="0 0 -1"
lower="-2.97" upper="2.97" effort="500"
velocity="1.75" damping="0.5"/>
lower="-2.97" upper="2.97" effort="200"
velocity="1.75" damping="10.0" friction="0.1"
soft_lower="-2.8827" soft_upper="2.8827" k_velocity="10"/>
<!-- joint4 -->
<!-- joint4: ±119° hard, ±114° soft -->
<xacro:revolute_joint jname="joint4" parent="link3" child="link4"
xyz="0 0 0" rpy="-1.5708 0 0" axis="0 0 -1"
lower="-2.09" upper="2.09" effort="500"
velocity="2.27" damping="0.5"/>
lower="-2.09" upper="2.09" effort="200"
velocity="2.27" damping="10.0" friction="0.1"
soft_lower="-2.0027" soft_upper="2.0027" k_velocity="10"/>
<!-- joint5 -->
<!-- joint5: ±170° hard, ±165° soft -->
<xacro:revolute_joint jname="joint5" parent="link4" child="link5"
xyz="0 -0.3993 0" rpy="1.5708 0 0" axis="0 0 -1"
lower="-2.97" upper="2.97" effort="500"
velocity="2.44" damping="0.5"/>
lower="-2.97" upper="2.97" effort="200"
velocity="2.44" damping="10.0" friction="0.1"
soft_lower="-2.8827" soft_upper="2.8827" k_velocity="10"/>
<!-- joint6 -->
<!-- joint6: ±119° hard, ±114° soft -->
<xacro:revolute_joint jname="joint6" parent="link5" child="link6"
xyz="0 0 0" rpy="-1.5708 0 0" axis="0 0 1"
lower="-2.09" upper="2.09" effort="500"
velocity="3.14" damping="0.5"/>
lower="-2.09" upper="2.09" effort="200"
velocity="3.14" damping="10.0" friction="0.1"
soft_lower="-2.0027" soft_upper="2.0027" k_velocity="10"/>
<!-- joint7 -->
<!-- joint7: ±174° hard, ±169° soft -->
<xacro:revolute_joint jname="joint7" parent="link6" child="link7"
xyz="0 -0.126 0" rpy="1.5708 0 0" axis="0 0 1"
lower="-3.05" upper="3.05" effort="500"
velocity="3.14" damping="0.5"/>
lower="-3.05" upper="3.05" effort="200"
velocity="3.14" damping="10.0" friction="0.1"
soft_lower="-2.9627" soft_upper="2.9627" k_velocity="10"/>
<joint name="tools_joint" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
@@ -63,4 +70,4 @@
<child link="link_ee"/>
</joint>
</robot>
</robot>
+3 -2
View File
@@ -31,14 +31,15 @@
</xacro:macro>
<!-- Макрос для описания соединений -->
<xacro:macro name="revolute_joint" params="jname parent child xyz rpy axis lower upper effort velocity damping">
<xacro:macro name="revolute_joint" params="jname parent child xyz rpy axis lower upper effort velocity damping friction soft_lower soft_upper k_velocity">
<joint name="${jname}" type="revolute">
<origin xyz="${xyz}" rpy="${rpy}"/>
<parent link="${parent}"/>
<child link="${child}"/>
<axis xyz="${axis}"/>
<limit lower="${lower}" upper="${upper}" effort="${effort}" velocity="${velocity}"/>
<dynamics damping="${damping}"/>
<dynamics damping="${damping}" friction="${friction}"/>
<safety_controller soft_lower_limit="${soft_lower}" soft_upper_limit="${soft_upper}" k_velocity="${k_velocity}"/>
</joint>
</xacro:macro>
+1 -1
View File
@@ -2,7 +2,7 @@
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" xacro:version="1.0">
<!-- Массы звеньев -->
<xacro:property name="mass_base" value="0.1"/>
<xacro:property name="mass_base" value="4.86"/>
<xacro:property name="mass_link1" value="4"/>
<xacro:property name="mass_link2" value="4"/>
<xacro:property name="mass_link3" value="3"/>