The following repository has the source, resources, and instructions for building a robotic arm and its digital twin. The arm is based on a modified Koch V1.1 "follower arm" physical design (see Robotis Koch v1.1 follower arm) and its powered by The Robot Operating System v2 ROS2. This repository supports both Ros2 Jazzy and Ros2 Humble (see respective branches in this repository).
This effort is meant to learn and explore both the software and hardware used in robotic arm development. See FAQ at the bottom for more information. This branch supports Ros2 Jazzy (4.2+).
This includes:
- Fabrication and/or purchase, modification, and assembly of robotic parts (brackets, Dynamixel servos, and related circuit boards and sensors)
- Testing and tuning of the physical robot
- Creating, calibrating, and tuning of the robot arm digital twin
- Refinement of ROS2-based software to support various actions of the robotic arm and the gathering of physical statistics (current, voltage, temperature, etc)
The documentation for this repository covers the following:
- Software Setup: how to create the docker envrionment and any additional setup commands.
- Hardware Setup: Although the setup of the koch_v11 physical robot (leader and follower arms) is partially documented (Arm assembly by Jess Moss), those instructions lacked details on some of the required electrical setup. In addition, we are using different controller boards (e.g., Dynamixel OpenRB 150).
- Firmware Setup and Configuration: Notes on the firmware setup and configuration for the OpenRB 150, the servo motors, the current sensors, and the ESP32.
- Notes on creating the digital twin: A series of notes that cover the problems and solutions for creating the digital twin.
- Launching the Physical Robot Steps involved in bringing up the physical robot.
- Running the display only version of the Digital twin: This describes how to bring up the digital twin - either along side the physical robot or by itself as an rviz display-only flavor of the robot.
- Pose Sequence Tools and Analysis: Several tools are provided that drive the robot through a series of poses and analyze physical characteristics (position, temp, current, voltage, etc). This section also provides some analysis case studies that are of interest.
This repository can be of use to someone building robotics in several ways:
-
Users of the Koch V1.1 follower arm: Although some of the design and operation of the Koch v1.1 robot arm is open source, a user of it may encounter a number of gaps or issues when working with it. This repository should complement information and software from ROBOTIS and other sources. For example, we provide a koch v1.1 URDF file that is configured and calibrated to provide a digital twin that matches the physical robot in appearance. In addition, we provide complete and accurate wiring diagrams that detail how to co-exist the 12V and 5V servos in the same environment.
-
Users who are adapting robotic arms to ROS2 or not starting from a well defined kit: ROBOTIS provides several full kits for someone getting started with robot arms that provide a good head start (including this Koch v1.1., OMX AI manipulator, OMY AI manipulator, and more. This project provides information for someone who is departing from an easy-to-assemble kit.
-
Users wanting to pull more telemetry from Dynamixel servos in a ROS2 environment: The ros2 interface for the Dynamixel servos is quite limited relative to the internal data it can pull (as compared with the Dynamixel Wizard tool). For example, one can't get a reading on the voltage seen by a servo, even though extra strain on the system could lead to an under-volt situation for the servos in series. We provide information on how to improve this for ros2 and how to set this up (in code) and retrieve the values at runtime via ros2.
A leader-follower robotic arm system consists of two robotic manipulators where one arm (the leader) is manually controlled by a human operator, and the second arm (the follower) replicates those movements in real-time. It's essentially a form of bilateral teleoperation. In this project we are primarily focused on the follower arm.
In general leader arms are meant more for human manipulation as they define the poses that the follower will replicate. That limited operational scope for the leader means that its likely that the arm is under powered and/or has a design that is for human manipulation vs. automation. In this project we use the follower as the leader (to predefine poses and collect the measurements) albiet in a less automatic fashion. We also want to study the follower's load and physical characeteristics (e.g., temperature) as it repeatedly performs the activity.



