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.
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.
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.
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.
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.
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.
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.
➤ 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.
More Support & Service, please contact us. @TECHMAN ROBOT[https://www.tm-robot.com/zh-hant/contact-us/]