diff --git a/ada_hardware/CMakeLists.txt b/ada_hardware/CMakeLists.txt
index 8b4534d..0a43d51 100644
--- a/ada_hardware/CMakeLists.txt
+++ b/ada_hardware/CMakeLists.txt
@@ -14,16 +14,18 @@ find_package(rclcpp_lifecycle REQUIRED)
find_package(pluginlib REQUIRED)
find_package(hardware_interface REQUIRED)
find_package(sensor_msgs REQUIRED)
+find_package(dynamixel_workbench_toolbox REQUIRED)
add_library(ada_hardware SHARED
src/jaco2.cpp
- src/isaacsim.cpp)
+ src/isaacsim.cpp
+ src/dynamixel_hardware.cpp)
target_include_directories(ada_hardware PUBLIC include)
target_link_libraries(ada_hardware -l:Kinova.API.CommLayerUbuntu.so -l:Kinova.API.USBCommandLayerUbuntu.so)
-ament_target_dependencies(ada_hardware rclcpp rclcpp_lifecycle pluginlib hardware_interface sensor_msgs)
+ament_target_dependencies(ada_hardware rclcpp rclcpp_lifecycle lifecycle_msgs pluginlib hardware_interface sensor_msgs dynamixel_workbench_toolbox)
pluginlib_export_plugin_description_file(hardware_interface ada_hardware.xml)
@@ -72,7 +74,17 @@ if(BUILD_TESTING)
hardware_interface
sensor_msgs
)
+
+ ament_add_gmock(test_dynamixel test/test_dynamixel.cpp)
+ ament_target_dependencies(test_dynamixel
+ pluginlib
+ ros2_control_test_assets
+ rclcpp
+ rclcpp_lifecycle
+ hardware_interface
+ sensor_msgs
+ )
endif()
-ament_export_dependencies(rclcpp rclcpp_lifecycle pluginlib hardware_interface)
+ament_export_dependencies(rclcpp rclcpp_lifecycle pluginlib hardware_interface dynamixel_workbench_toolbox)
ament_package()
diff --git a/ada_hardware/ada_hardware.xml b/ada_hardware/ada_hardware.xml
index 5550a63..3fd99d1 100644
--- a/ada_hardware/ada_hardware.xml
+++ b/ada_hardware/ada_hardware.xml
@@ -19,4 +19,12 @@
Interface for controlling a 6DOF arm (+ 2 fingers) in IsaacSim.
+
+
+
+ The ROBOTIS Dynamixel system interface.
+
+
diff --git a/ada_hardware/config/ada_hardware_forward_controllers.yaml b/ada_hardware/config/ada_hardware_forward_controllers.yaml
index 1371d0b..2b1a6b9 100644
--- a/ada_hardware/config/ada_hardware_forward_controllers.yaml
+++ b/ada_hardware/config/ada_hardware_forward_controllers.yaml
@@ -28,6 +28,8 @@ forward_position_controller:
- j2n6s200_joint_6
- j2n6s200_joint_finger_1
- j2n6s200_joint_finger_2
+ - af_joint_1
+ - af_joint_2
forward_velocity_controller:
ros__parameters:
@@ -40,6 +42,8 @@ forward_velocity_controller:
- j2n6s200_joint_6
- j2n6s200_joint_finger_1
- j2n6s200_joint_finger_2
+ - af_joint_1
+ - af_joint_2
forward_effort_controller:
ros__parameters:
@@ -52,3 +56,5 @@ forward_effort_controller:
- j2n6s200_joint_6
- j2n6s200_joint_finger_1
- j2n6s200_joint_finger_2
+ - af_joint_1
+ - af_joint_2
diff --git a/ada_hardware/include/ada_hardware/dynamixel_hardware.hpp b/ada_hardware/include/ada_hardware/dynamixel_hardware.hpp
new file mode 100644
index 0000000..ef93f07
--- /dev/null
+++ b/ada_hardware/include/ada_hardware/dynamixel_hardware.hpp
@@ -0,0 +1,112 @@
+// Copyright 2020 Yutaka Kondo
+//
+// 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.
+
+#ifndef DYNAMIXEL_HARDWARE__DYNAMIXEL_HARDWARE_HPP_
+#define DYNAMIXEL_HARDWARE__DYNAMIXEL_HARDWARE_HPP_
+
+#include
+
+#include