Skip to content

TM Robots supporting ROS1 drivers and some extended external applications. (experimental) (support the new TM S-Series)

License

Notifications You must be signed in to change notification settings

TechmanRobotInc/tm2_ros1

Repository files navigation

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.

📑 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.
📑 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 /feedback_states
    The FeedbackState includes robot position, error code, and io status, etc. (see tm_msgs/msg/FeedbackState.msg)
  • publish joint states on /joint_states
  • publish tool pose on /tool_pose

Service Server

  • /tm_driver/send_script (see tm_msgs/srv/SendScript.srv) :
    send robot script (TM Robot Expression) to Listen Node
  • /tm_driver/set_event (see tm_msgs/srv/SetEvent.srv) :
    send "Stop", "Pause" or "Resume" commands to Listen Node
  • /tm_driver/set_io (see tm_msgs/srv/SetIO.srv) :
    send digital or analog output value to Listen Node
  • _/tm_driver/set_positions (see tm_msgs/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_joint_trajectory 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 tm_msgs. 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 ROS1 Noetic, see TM2 ROS1 Noetic.

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

📑 Note1: Since communicating with ROS1 applications, only the installation method of the external TM ROS1 driver can be used.
📑 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.
📑 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 tm_inspect 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 TM12S 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 Moveit tutorial to install the MoveIt packages.

8. Contact us / Technical support

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

About

TM Robots supporting ROS1 drivers and some extended external applications. (experimental) (support the new TM S-Series)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published