yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Transbot SE📖
01.Introduction to Transbot SE
  • 01. Introduction to Transbot SE
  • 02. Precautions for use and battery safety
  • 03. First Trial
02.First Trial
  • 2.1.APP control
  • 2.2.USB wireless handle control(Optional)
  • 2.3.Handle video control Transbot(Optional)
  • 2.4.Network configuration tutorial in hotspot mode
03.Hardware control course
  • 3.1About expansion board and update firmware
  • 3.2.Close self-starting process
  • 3.3.Install Transbot library
  • 3.4.Control buzzer and button
  • 3.5.Control PWM servo
  • 3.6.Control bus servo
  • 3.7.Control motor
  • 3.8.Control robot movement
04.Linux operating system
  • 1. Virtual machine installation and use
  • 2. Linux basics
  • 3. Remote control
  • 4. Multi-machine communication configuration
  • 5. Static IP and hotspot mode
  • 6. Web page real-time monitoring
  • 7. Expansion tutorial
  • 8. Write system images
05.Docker couse(For Pi5)
  • 1.Docker overview and docker installation
  • 2.Common commands for docker image containers
  • 3.Docker images deeply understand and publish images
  • 4.Docker hardware interaction and data processing
  • 5.Start the transbot se container
06.ROS basic course
  • 1.ROS introduction
  • 2.Project file structure
  • 3.Common commands and tools
  • 4.Publisher
  • 5.Subscribers
  • 6.Customize topic messages and use
  • 7.Client
  • 8.Server
  • 9.Custom service messages and usage
  • 10.TF release and monitoring
07.OpenCV courses
  • 1. Getting started with Open Source CV
  • 2. Open Source CV geometric transformation
  • 3. Open Source CV image processing and drawing text line segments
  • 4. Open Source CV image beautification
  • 5. Opencv application
  • 6. AR vision
  • 7. AR QR code
  • 8. ROS+Opencv foundation
  • 9. ROS+Opencv application
  • 10. MediaPipe development
08.ROS robot course
  • 1.PID algorithm
  • 2.Basic communication
  • 3.Keyboard control
  • 4.Handle control(Optional)
  • 5.Robot state estimation
  • 6.Data calibration
09.ROS simple camera course
  • 1.HD camera calibration
  • 2.HD camera color tracking
  • 3.HD camera color tracking (robotic arm)
  • 4.HD camera object tracking
  • 5. KCF target tracking
  • 6.HD camera face tracking
  • 7.HD camera robotic arm carrying
  • 8.HD camera Autopilot
10.ROS robotic arm control tutorial
  • 1.MoveIt configuration
  • 2.MoveIt control the real machine
  • 3.MoveIt moves randomly
  • 4.MoveIt kinematics design
  • 5.MoveIt cartesian path
  • 6.MoveIt avoiding
  • 7.MoveIt scene design
  • 8.MoveIt trajectory planning
  • 9.Mediapipe palm control car
  • 10.Mediapipe gesture control robotic arm
  • 11.Mediapipe gesture control car
  • 12.Mediapipe arm attitude control robotic arm
11.ROS multi-robot control(Optional)
  • 1. Multi-robot control(Optional)
  • 2. Multi-robot queue performance(Optional)
  • 3. Multi-robot robot arm dancing(Optional)
12.Deep learning courses
  • 1.KNN recognizes handwritten digits
  • 2.Basic use of TensorFlow
  • 3.Basic use of PyTorch(jetson)
  • 4.yolov5 model training(jetson)
  • 5.yolov5+tensorrt acceleration(jetson)
  • 6.yolov4-tiny
13.Installation Video
  • Part18
  • Part1-6
  • Part7-12
  • Part13.1-13.3.3
  • Part13.4.1-17
14.FAQnew
  • 1.Using your own Jetson board,Transbot-SE cannot start normally
Download
  • APP(iOS/Android)
  • System_File-Pi5
  • System_File-Pi4
  • System_File-Jetson
  • VM_File
  • Appendix
  • Code
  • InstructionManual
  • Jetson_Boot_USB.tar.gz
  • Hardware_Info
Download ZIP

Welcome to Transbot SE repository

3.Keyboard control

3.Keyboard control

3. Keyboard control

3. Keyboard control3.1, teleop_twist_keyboard.py3.2, transbot_keyboard.py

Function package path: ~/transbot_ws/src/transbot_ctrl

Start low-level control

jetson motherboard/Raspberry Pi 4B

xxxxxxxxxx
roslaunch transbot_bringup bringup.launch

Raspberry Pi 5

Before running, please confirm that the large program has been permanently closed

Enter docker

Note: If there is a terminal that automatically starts docker, or there is a docker terminal that has been opened, you can directly enter the docker terminal to run the command, and there is no need to manually start docker

Start docker manually

xxxxxxxxxx
./run_docker.sh

xxxxxxxxxx
roslaunch transbot_bringup bringup.launch

 

3.1, teleop_twist_keyboard.py

Wiki: http://wiki.ros.org/teleop_twist_keyboard

Source code: https://github.com/ros-teleop/teleop_twist_keyboard

This function package can be installed directly into the system. The factory image of the car has been installed, no need to reinstall it

  • Install

    jetson motherboard/Raspberry Pi

xxxxxxxxxx
sudo apt-get install ros-melodic-teleop-twist-keyboard

Raspberry Pi 5

Enter the same docker from multiple terminals

Keep the program of the previous docker terminal running and open a new terminal

Enter the following command

xxxxxxxxxx
docker ps

Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.

xxxxxxxxxx
docker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxx
sudo apt-get install ros-melodic-teleop-twist-keyboard
  • run

    jetson motherboard/Raspberry Pi 4B

xxxxxxxxxx
rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Raspberry Pi 5

Enter the same docker from multiple terminals

Keep the program of the previous docker terminal running and open a new terminal

Enter the following command

xxxxxxxxxx
docker ps

Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.

xxxxxxxxxx
docker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxx
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
  • control
ButtonCar [linear, angular]ButtonCar [linear, angular]
[i] or [I][linear, 0][u] or [U][linear, angular]
[,][-linear, 0][o] or [O][linear, - angular]
[j] or [J][0, angular][m] or [M][- linear, - angular]
[l] or [L][0, - angular][.][- linear, angular]
ButtonSpeed changeButtonSpeed change
[q]Linear speed and angular speed are both increased by 10%[z]Linear speed and angular speed are both reduced by 10%
[w]Only the linear speed increases by 10%[x]Only the linear speed decreases by 10%
[e]Only the angular velocity increases by 10%[c]Only the angular velocity decreases by 10%

In addition to the above keys, any key stops movement. [Ctrl]+[c] to exit.

jetson motherboard/Raspberry Pi 4B

xxxxxxxxxx
rqt_graph

Raspberry Pi 5

Enter the same docker from multiple terminals

Keep the program of the previous docker terminal running and open a new terminal

Enter the following command

xxxxxxxxxx
docker ps

Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.

xxxxxxxxxx
docker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxx
rqt_graph

The node [teleop_twist_keyboard] publishes a message to the topic [/cmd_vel] and is subscribed by the node [/transbot_node].

3.2, transbot_keyboard.py

Note: Button control method is the same as above

Start mode

jetson motherboard/Raspberry Pi 4B

xxxxxxxxxx
rosrun transbot_ctrl transbot_keyboard.py
roslaunch transbot_ctrl transbot_keyboard.launch

Raspberry Pi 5

Enter the same docker from multiple terminals

Keep the program of the previous docker terminal running and open a new terminal

Enter the following command

xxxxxxxxxx
docker ps

Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.

xxxxxxxxxx
docker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxx
rosrun transbot_ctrl transbot_keyboard.py
roslaunch transbot_ctrl transbot_keyboard.launch

Code analysis

Mainly used select module, termios module and tty module

xxxxxxxxxx
import sys, select, termios, tty
  • The select module is mainly used for socket communication, seeing changes in file descriptions, and completing work in a non-blocking manner.
  • The termios module provides an interface for IO controlled POSIX calls for tty
  • The tty module is mainly used to change the mode of the file descriptor fd

Get current key information

xxxxxxxxxx
def getKey():
     #tty.setraw(): Change the file descriptor fd mode to raw; fileno(): Return an integer file descriptor (fd)
     tty.setraw(sys.stdin.fileno())
     # select(): Directly call the IO interface of the operating system; monitor all file handles with the fileno() method
     rlist, _, _ = select.select([sys.stdin], [], [], 0.1)
     # Read a byte input stream
     if rlist: key = sys.stdin.read(1)
     else: key = ''
     #tcsetattr sets the tty attribute of the file descriptor fd from the attribute
     termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings)
     return key

Get speed limit

xxxxxxxxxx
     linear_limit = rospy.get_param('~linear_limit', 0.45)
     angular_limit = rospy.get_param('~angular_limit', 2.0)

control flow

# Get current key information
             key = getKey()
             # Determine whether the key string is in the mobile dictionary
             if key in moveBindings.keys():
                 x = moveBindings[key][0]
                 th = moveBindings[key][1]
Basic communication
Handle control(Optional)

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文