TechmanRobotInc / tm2_ros2

TM Robots supporting ROS2 drivers and some extended external applications. (experimental) (support the new TM S-Series)
Other
4 stars 2 forks source link

TECHMAN ROBOT

1. Overview

Techman Robot is a state-of-the-art production tool that is highly compatible and flexible to collaboration between human and machine. The Robot Operating System (ROS) provides abundant libraries and tools which can be utilized to reduce the cost of trivial development software tool and build robot applications without struggling. Our TM ROS driver provides nodes for communication with Techman Robot controllers, data including robot states, images from the eye-in-hand camera, and URDF models for various robot arms via TMflow 1. In addition to TM ROS Driver, TM Robot also provides related resources, such as sample programs, GUI tools for debugging, and resource description files required for simulation on MoveIt or Gazebo.

This manual applies to TMflow Version 2.14 or above and adapts to HW5.0 mainly.

2. TM ROS Driver Feature

The TM ROS driver connects to TMflow Ethernet Slave to control TMflow project. The robot state is transmitted through this connection. A working driver also connects to a Listen Node 2 (running at a TMflow project) at the same time. To control the robot locomotion, IO, etc., the TM ROS driver sends the robot script (TMscript 4) through this connection. More information about TM Robot Expression 3 and Ethernet Slave, see the defined protocol 3 Expression Editor Manual.

1 TMflow is a graphical human-machine interface (HMI). ➢ 2 Listen Node: A socket server can be established and be connected by an external device to communicate according to the defined protocol In the Listen Node. All the functions available in Expression Editor can also be executed in Listen Node. ➢ 3 TMscript is the programming language of Techman Robot applicable to Flow projects and Script projects. ➢ 4 Techman Robot Expression (defined protocol) is the programming language of Techman Robot applicable to Flow programming projects and Script programming projects.

:bookmark_tabs: Note1: The user can download the new "Expression Editor Manual" or "_Embedded TM ROS Driver User Manual (2.14_Rev1.0)_ " from TM Download Center or Contact us.
:bookmark_tabs: Note2: The Expression Editor version changes may have slightly different settings. (Several old versions for reference: (Expression Editor_1.88_Rev1.00) (1.84_Rev1.00)

TM ROS Driver consists of three main parts: Topic Publisher, Service Server, and Action Server:

Topic Publisher

  • publish feedback state on _/feedbackstates
    The FeedbackState includes robot position, error code, and io status, etc. (see _tmmsgs/msg/FeedbackState.msg)
  • publish joint states on _/jointstates
  • publish tool pose on _/toolpose

Service Server

  • _/tm_driver/sendscript (see _tmmsgs/srv/SendScript.srv) :
    send robot script (TM Robot Expression) to Listen Node
  • _/tm_driver/setevent (see _tmmsgs/srv/SetEvent.srv) :
    send "Stop", "Pause" or "Resume" commands to Listen Node
  • _/tm_driver/setio (see _tmmsgs/srv/SetIO.srv) :
    send digital or analog output value to Listen Node
  • _/tm_driver/set_positions (see _tmmsgs/srv/SetPositions.srv) :
    send motion command to Listen Node, the motion type include PTP_J, PTP_T, LINE_T, the position value is a joint angle(J) or Cartesian coordinate(T), see [The TM "Expression Editor" manual]

Action Server

  • An action interface on _/follow_jointtrajectory for seamless integration with MoveIt

The Topic Publisher connects to TMflow through the Ethernet slave, collects robot-related data, and publishes it as a topic (such as robot states, joint states, end tool pose, etc.), and the customer's ros node can subscribe to these topics to obtain data. The role of the Service Server interface is to control the movement of the robot and provide various movement instructions _tmmsgs. When the TMflow project runs to the Listen Node, the customer's ros node can issue instructions to the Listen node through the Service Server to drive the robot. The role of the Action Server interface is to translate the trajectory calculated by MoveIt into the movement command of the robot and drive the robot to complete the trajectory.

3. TM ROS Driver Usage and Installation

The TM ROS driver is designed to interface the TM Robot's operating software (TMflow) with the Robot Operating System (ROS) so that program developers and researchers can build and reuse their own programs to control the TM robot externally.
TM ROS DriverTM AI Cobot
In TMflow 2 software, in addition to the old method of installing TM ROS drivers from GitHub on a Linux-based computer to start externally, we also support TM ROS driver embedded and based on ROS2 Foxy in Robot Controller via TMflow 2. It makes it easier for users to start ROS and run the driver to connect TM Robot on the TMflow 2 Setting UI interface and try to improve performance.

If the user wants to know how to use the TM ROS driver, please visit the TM ROS APP website or directly click the TM ROS APP version listed in the table below.

TMflow 2 + TM AI Cobot S-Series
ROS Distro TM ROS APP version TM ROS Driver TMvision Support Embedded TM ROS Driver
ROS Noetic Ninjemys TM2 ROS1 Noetic ✕ 
ROS 2 Foxy Fitzroy TM2 ROS2 Foxy DDS FastRTPS
ROS 2 Humble Hawksbill TM2 ROS2 Humble DDS FastRTPS

➤ Example: If your ROS PC is installed with ROS 2 Foxy Fitzroy, see TM2 ROS2 Foxy and then select how you want to use the TM ROS driver.

Note: To use the driver, make sure your ROS PC is installed correctly.

:bookmark_tabs: Note1: Using the embedded TM ROS driver can only communicate with ROS 2 applications that use eProsima FastDDS as their RMW layer. If the user needs different RMW layers for other applications, such as RMW_IMPLMENTATION=rmw_cyclonedds_cpp, please choose the installation method using the external TM ROS driver.
:bookmark_tabs: Note2: Using TMflow, especially the Listen Nodes and Vision Nodes (external detection). Please refer to _Software Manual TMflow (SW2.14_Rev1.00)_ and _Software Manual TMvision (SW2.14_Rev1.00)_ for more details.
:bookmark_tabs: Note3: Using TMscript (expressions, the Listen Node commands, etc.). Please refer to the Manual: Programming Language TMscript for more details.

4. TM Program Script Demonstration

This chapter describes the demo package and the code used as a C++ programming example, showing how to program robot scripts (TM Robot Expressions) through the TM ROS driver connection.

Note: See the demo code demo_send_script as an example.

5. TM External GUI debugging and Demonstration

This chapter describes a simplified GUI for displaying tm_driver connection status, sct, sta, svr messages, and robot status. The user can optionally install the _tminspect package to aid in viewing messages between the driver and the robot through the GUI display.

6. Generate your TM Robot-Specific Kinematics Parameters Files

Real kinematic values vary from TM robot to another one as each robot is calibrated at the factory.
This chapter describes that the user can use a script program to extract specific kinematic values from your TM robot. The Python script function automatically generates a new URDF robot file that has XML macros in it (i.e. a new Xacro robot file) using a specific set of commands.

Note 1: If the user just want to use the TM Robot nominal model to control the robot, the user can skip the rest of this chapter.
Note 2: The tm_description package contains description files and meshes, available for the TM5S, TM7S, TM12S, TM14S, and TM25S model, and some Cobot models will be added later.

7. Related ROS Projects and Tutorials Usage

➤ For example, you can try to run MoveIt on the TM robot The user can use MoveIt to control the TM robot in the motion planning to plan paths or run the TM Robot simulation into your scene description for operations such as collision checking or obstacle avoidance. See MoveIt2 tutorial to install the MoveIt2 packages.

8. Contact us / Technical support

More Support & Service, please contact us. @TECHMAN ROBOT[https://www.tm-robot.com/zh-hant/contact-us/]