2025-02-07 09:22:54 +00:00
|
|
|
|
<?xml version="1.0"?>
|
2025-05-22 07:22:55 +00:00
|
|
|
|
<!--
|
|
|
|
|
|
Copyright 2025 Reazon Holdings, Inc.
|
|
|
|
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
|
|
limitations under the License.
|
|
|
|
|
|
-->
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
|
2025-06-02 05:57:49 +00:00
|
|
|
|
<xacro:macro name="openarm_ros2_control" params="name initial_positions_file prefix:='' can_device='can0' use_mock_hardware:=false mock_sensor_commands:=false">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<xacro:property name="initial_positions" value="${xacro.load_yaml(initial_positions_file)['initial_positions']}"/>
|
|
|
|
|
|
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<ros2_control name="${prefix}${name}" type="system">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<hardware>
|
2025-06-02 05:57:49 +00:00
|
|
|
|
<xacro:if value="${use_mock_hardware}">
|
|
|
|
|
|
<plugin>mock_components/GenericSystem</plugin>
|
|
|
|
|
|
<param name="mock_sensor_commands">${mock_sensor_commands}</param>
|
|
|
|
|
|
</xacro:if>
|
|
|
|
|
|
<xacro:unless value="${use_mock_hardware}">
|
|
|
|
|
|
<plugin>openarm_hardware/OpenArmHW</plugin>
|
|
|
|
|
|
<param name="prefix">${prefix}</param>
|
|
|
|
|
|
<param name="can_device">${can_device}</param>
|
|
|
|
|
|
</xacro:unless>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</hardware>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<joint name="${prefix}rev1">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<command_interface name="position"/>
|
|
|
|
|
|
<command_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<command_interface name="effort"/>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<state_interface name="position"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<state_interface name="effort"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</joint>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<joint name="${prefix}rev2">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<command_interface name="position"/>
|
|
|
|
|
|
<command_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<command_interface name="effort"/>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<state_interface name="position"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<state_interface name="effort"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</joint>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<joint name="${prefix}rev3">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<command_interface name="position"/>
|
|
|
|
|
|
<command_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<command_interface name="effort"/>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<state_interface name="position"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<state_interface name="effort"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</joint>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<joint name="${prefix}rev4">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<command_interface name="position"/>
|
|
|
|
|
|
<command_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<command_interface name="effort"/>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<state_interface name="position"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<state_interface name="effort"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</joint>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<joint name="${prefix}rev5">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<command_interface name="position"/>
|
|
|
|
|
|
<command_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<command_interface name="effort"/>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<state_interface name="position"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<state_interface name="effort"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</joint>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<joint name="${prefix}rev6">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<command_interface name="position"/>
|
|
|
|
|
|
<command_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<command_interface name="effort"/>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<state_interface name="position"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<state_interface name="effort"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</joint>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<joint name="${prefix}rev7">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<command_interface name="position"/>
|
|
|
|
|
|
<command_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<command_interface name="effort"/>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<state_interface name="position"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="velocity"/>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<state_interface name="effort"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</joint>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
<joint name="${prefix}left_pris1">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<command_interface name="position"/>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<state_interface name="position"/>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="velocity"/>
|
|
|
|
|
|
</joint>
|
2025-03-28 09:05:38 +00:00
|
|
|
|
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<!-- <joint name="${prefix}right_pris2">
|
2025-02-07 09:22:54 +00:00
|
|
|
|
<state_interface name="position">
|
2025-04-10 09:31:15 +00:00
|
|
|
|
<param name="initial_value">${initial_positions['right_pris2']}</param>
|
2025-02-07 09:22:54 +00:00
|
|
|
|
</state_interface>
|
2025-04-10 09:31:15 +00:00
|
|
|
|
</joint> -->
|
2025-02-07 09:22:54 +00:00
|
|
|
|
|
|
|
|
|
|
</ros2_control>
|
|
|
|
|
|
</xacro:macro>
|
|
|
|
|
|
</robot>
|