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

1.ROS introduction

1 ROS introduction

1 ROS introduction1.1 Main features of ROS 1.2 the overall architecture of ROS 1.2.1 Computational graph level 1.2.2 file system level 1.2.3 Open source community level 1.3 Communication Mechanism 1.3.1 Topic 1.3.2 Service 1.3.3 Action 1.4 common components 1.5 release version

ROS wiki: http://wiki.ros.org/

ROS Teaching: http://wiki.ros.org/ROS/Tutorials

ROS installation: http://wiki.ros.org/melodic/Installation/Ubuntu

ROS(Robot Operating System, referred to as "ROS") is an open source operating system for robots. It provides the services expected of an operating system, including hardware abstraction, low-level device control, implementation of commonly used functions, message passing between processes, and package management. It also provides the tools and library functions needed to obtain, compile, write, and run code across computers.

The main goal of ROS is to provide code reuse support for robotics research and development. ROS is a framework for distributed processes(aka "nodes") that are encapsulated in packages and functionality that can be easily shared and distributed. ROS also supports a federated system similar to code repositories, which also enables project collaboration and publishing. This design enables the development and implementation of a project to be completely independent from the file system to the user interface(not restricted by ROS). At the same time, all projects can be integrated by the basic tools of ROS.

1.1 Main features of ROS

(1) Distributed architecture(each worker process is regarded as a node, which is managed uniformly by the node manager),

(2) Multi-language support(such as C++, Python, etc.),

(3) Good scalability(one node can be written, or many nodes can be organized into a larger project through roslaunch),

(4) Open source code(ROS follows the BSD protocol and is completely free for individual and commercial applications and modifications).

1.2 the overall architecture of ROS

Open source community level: It mainly includes developer knowledge, code, and algorithm sharing.

File system level: used to describe the code and executable programs that can be found on the hard disk,

Computational graph level: It reflects the communication between processes and processes, and between processes and systems.

1.2.1 Computational graph level

  • node
roscore 
rosrun turtlesim turtlesim_node 

The following command is the entire line, after inputting a part, use the [Tab] key to complete it, and then modify the content

xxxxxxxxxx
rosservice call /spawn "x: 3.0 
y: 3.0 
theta: 90.0 
name: 'my_turtle'"  

Nodes are the main computational execution processes. ROS is composed of many nodes.

xxxxxxxxxx
rqt_graph 

image-20210827145606482

When we enter [rosnode] in the command line, then double-click Tabkey, you will find these words appear below the command line

image-20210827153814591

ROS command line tool rosnode :

rosnode commandeffect
rosnode listQuery all currently running nodes
rosnode info node_nameShow details of the node
rosnode kill node_nameend a node
rosnode pingTest if the node is alive
rosnode machineList nodes running on a specific machine or a list of machines
rosnode cleanupClear the registration information of non-runnable nodes

When developing and debugging, you often need to view the current node and node information, so please remember these common commands. If you can't remember, you can also pass rosnode helpto view rosnodeusage of the command.

  • information

The nodes realize logical connection and data exchange with each other through messages.

When we enter [rosmsg] in the command line, then double-click Tabkey, you will find these words appear below the command line

image-20210827153837190

ROS command line tool rosmsg :

rosmsg commandeffect
rosmsg showShow a message field
rosmsg listlist all messages
rosmsg packageList all feature pack messages
rosmsg packagesList all feature packs with this message
rosmsg md5Displays the MD5 check value of a message
  • topic

Topics are a way of delivering messages(pub/sub). Each message is published to the corresponding topic, and each topic is strongly typed.

ROS topic messages can be transmitted using TCP/IP or UDP. The default transmission method used by ROS is TCP/IP. TCP-based transmission becomes TCPROS, which is a long connection method; UDP-based transmission becomes UDPROS, which is a low-latency and high-efficiency transmission method, but it is easy to lose data and is suitable for remote operation.

When we enter [rostopic] in the command line, then double-click Tabkey, you will find these words appear below the command line

image-20210827153902106

ROS command line tool rostopic :

rostopic commandeffect
rostopic bw/topicDisplays the bandwidth used by the theme
rostopic echo/topicOutput the message corresponding to the topic to the screen
rostopic find message_typeFind topics by type
rostopic hz/topicShows how often a topic is published
rostopic info/topicoutput information about the topic
rostopic listOutput list of active topics
rostopic pub /topic type argsPublish data to topic
rostopic type/topicoutput topic type
  • Services

Services are used in the request-response model and must also have a unique name. When a node provides a service, all nodes can communicate with it through code written using the ROS client.

When we enter [rosservice] in the command line, then double-click Tabkey, you will find these words appear below the command line

image-20210827154319766

ROS command line tool rosservice :

rosservice commandeffect
rosservice args /serviceshow service parameters
rosservice call /serviceRequest service with input parameters
rosservice find /serviceFind topics by type
rosservice info /serviceDisplay information about the specified service
rosservice listDisplay active service information
rosservice uri /serviceshow ROSRPC URI service
rosservice type /serviceShow service type
  • message logging package

A message record bag is a file format for saving and replaying ROS message data, saved in a .bag file. is an important mechanism for storing data.

When we enter [rosbag] in the command line, then double-click Tabkey, you will find these words appear below the command line

image-20210827155233100

ROS command line tool rosbag :

rosbag commandeffect
checkDetermine if a package can be made in the current system, or if it can be migrated.
decompressCompress one or more package files.
filterExtract one or more package files.
fixFix message in package file to play on current system.
helpGet help information on related command guidelines.
infoSummarize the contents of one or more package files.
playPlay back the contents of one or more package files in a time-synchronized manner.
recordRecord a package file with the contents of the specified topic.
reindexReindex one or more package files.
  • parameter server

The parameter server is a shared multivariable dictionary accessible over the network, stored on the node manager by key.

When we enter [rosparam] in the command line, then double-click Tabkey, you will find these words appear below the command line

image-20210827160453459

ROS command line tool rosparam :

rosparam commandeffect
rosparam delete parameterdelete parameter
rosparam dump fileWrite the parameters from the parameter server to a file
rosparam get parameterget parameter value
rosparam listList parameters in parameter server
rosparam load fileLoad parameters from file to parameter server
rosparam set parameter valueSetting parameters
  • Node Manager(Master)

The node manager is used for registration and lookup of topics, service names, etc. In the entire ROS system, if there is no node manager, there will be no communication between nodes.

1.2.2 file system level

file system level
Comprehensive function package
Feature pack
Feature Pack List
information
Service
code
others

Dependencies can be configured between feature packages. If function package A depends on function package B, then when the ROS build system is used, B must be built earlier than A, and A can use the header files and library files in B.

The concepts at the file system level are as follows:

  • Feature pack list:

This list is to indicate the dependencies of the function package, source file compilation flag information, etc. The package.xml file in the function package is a list of function packages.

  • Feature pack:

The function package is the basic form of software organization in the ROS system, including running nodes and configuration files.

ROS package related commands

rospack commandeffect
rospack helpshow usage of rospack
rospack listList all packages on this machine
rospack depends [package]Show package dependencies
rospack find [package]locate a package
rospack profileRefresh location records for all packages
  • Comprehensive function package

By grouping several feature packages together, a comprehensive feature package can be formed.

  • message type

When sending messages between nodes in ROS, message descriptions need to be made in advance. Standard types of messages are provided in ROS, or you can define them yourself. The description of the message type is stored in the msg file under the function package.

  • Service type

Defines the data structures for service requests and responses provided by each process in the ROS system.

1.2.3 Open source community level

  • Distribution: A ROS distribution is a series of comprehensive function packages with version numbers that can be installed independently. ROS distributions play a similar role as Linux distributions. This makes ROS software installation easier and maintains a consistent version through a software collection.
  • Repository: ROS relies on a website or hosting service that shares open source code and software repositories, where different organizations can publish and share their own robotics software and programs.
  • ROS Wiki: The ROS Wiki is the main forum for documenting information about the ROS system. Anyone can sign up for an account, contribute their own files, provide corrections or updates, write tutorials, and more.
  • Bug Ticket System: If you find a problem or want to propose a new feature, ROS provides this resource to do it.
  • Mailing list: The ROS user mailing list is the main communication channel about ROS, which can exchange various questions or information from ROS software updates to the use of ROS software like a forum.
  • ROS Answer: Users can use this resource to ask questions

1.3 Communication Mechanism

1.3.1 Topic

The asynchronous publish-subscribe communication mode is widely used in ros. Topic is generally used for one-way, message flow communication. Topic generally has a strong type definition: a type of topic can only receive/send messages of a specific data type. Publisher is not required to have type consistency, but subscriber will check the md5 of the type and report an error when accepting it.

image-20210831162509791

1.3.2 Service

service is used to handle synchronous communication in ros communication, using server/client semantics. Each service type has two parts: request and response. For the server in the service, ros will not check the name conflict. Only the last registered server will take effect and establish a connection with the client.

image-20210831163032489

1.3.3 Action

Action is composed of multiple topics to define tasks. Task definitions include goals(Goal), task execution process status feedback(Feedback), and results(Result). Compiling action will automatically generate seven structures: Action, ActionGoal, ActionFeedback, ActionResult, Goal, Feedback, and Result structures.

image-20210830102834443

Features of Action:

  • A question and answer communication mechanism
  • with continuous feedback
  • Can be terminated during a task
  • ROS-based message mechanism implementation

Action interface:

  • goal: publish the task goal
  • cancel: request to cancel the task
  • status: notify the client of the current status
  • feedback: Periodic feedback task running monitoring data
  • result: Send the execution result of the task to the client, only published once.

Communication Mode Features Comparison

FeaturesTopicServiceAction
response mechanismnoneresult responseprogress response, result response
synchronicityasynchronousSynchronizeasynchronous
communication modelPublisher, SubscriberClient, ServerClient, Server
Node correspondencemany-to-manyMany(Client) to one(Server)Many(Client) to one(Server)

1.4 common components

launch startup file; TF coordinate transformation; Rviz; Gazebo; QT toolbox; Navigation; MoveIt!

launch: Launch File is a way to start multiple nodes at the same time in ROS. It can also automatically start the ROS Master node manager, and can realize various configurations of each node, providing the operation of multiple nodes. Great convenience.

TF coordinate transformation: There are often a large number of component elements in the robot body and the working environment of the robot. The positions and attitudes of different components are involved in robot design and robot applications. TF is a function package that allows users to track multiple coordinate systems over time., which uses a tree data structure, buffers and maintains the coordinate transformation relationship between multiple coordinate systems according to time, and can help developers to complete the transformation of coordinates such as points and vectors between coordinate systems at any time.

QT Toolbox: In order to facilitate visual debugging and display, ROS provides a background graphics tool suite of the Qt architecture - rqt_common_plugins, which contains many utilities: log output tool(rqt_console), computational graph visualization tool(rqt_graph), data drawing tool(rqt_plot), parameter dynamic configuration tool(rqt_reconfigure)

Rviz: rviz is a 3D visualization tool that is well compatible with various robot platforms based on the ROS software framework. In rviz, you can use XML to describe the size, mass, position, material, joints and other attributes of any physical object such as robots and surrounding objects, and present them in the interface. At the same time, rviz can also display the information of the robot's sensors, the motion state of the robot, and the changes of the surrounding environment in real time through a graphical method.

Gazebo: Gazebo is a powerful 3D physics simulation platform with a powerful physics engine, high-quality graphics rendering, convenient programming and graphics interfaces, and most importantly, it is open source and free. Although the robot model in Gazebo is the same as that used by rviz, the physical properties of the robot and surrounding environment, such as mass, friction coefficient, elasticity coefficient, etc., need to be added to the model. The sensor information of the robot can also be added to the simulation environment in the form of plug-ins and displayed in a visual way.

Navigation: Navigation is a two-dimensional navigation function package of ROS. In simple terms, it is based on the input information flow of sensors such as odometer and the global position of the robot, through the navigation algorithm, calculates the safe and reliable robot speed control command.

Moveit: Moveit!Feature packages are the most commonly used toolkits and are mainly used for trajectory planning. Moveit!The configuration assistant is used to configure some files that need to be used in planning, which is very important.

1.5 release version

Reference link: http://wiki.ros.org/Distributions

ROS 1 Distribution

ROS distribution(ROS distribution) refers to the version of the ROS package, which Linux distribution(such as Ubuntu is similar in concept to a The purpose of a ROS distribution is to allow developers to use a relatively stable codebase until they are ready to version everything. Therefore, after each release, ROS developers usually only fix bugs for that release, while providing a small number of improvements to the core package. As of October 2019, the version name, release time and version life cycle of the major releases of ROS are shown in the following table:

version namerelease dateVersion life cycleOperating system platform
ROS Noetic NinjemysMay 2020May 2025Ubuntu 20.04
ROS Melodic MoreniaMay 23, 2018May 2023Ubuntu 17.10, Ubuntu 18.04, Debian 9, Windows 10
ROS Lunar LoggerheadMay 23, 2017May 2019Ubuntu 16.04, Ubuntu 16.10, Ubuntu 17.04, Debian 9
ROS Kinetic KameMay 23, 2016April 2021Ubuntu 15.10, Ubuntu 16.04, Debian 8
ROS Jade TurtleMay 23, 2015May 2017Ubuntu 14.04, Ubuntu 14.10, Ubuntu 15.04
ROS Indigo IglooJuly 22, 2014April 2019Ubuntu 13.04, Ubuntu 14.04
ROS Hydro MedusaSeptember 4, 2013May 2015Ubuntu 12.04, Ubuntu 12.10, Ubuntu 13.04
ROS Groovy GalapagosDecember 31, 2012July 2014Ubuntu 11.10, Ubuntu 12.04, Ubuntu 12.10
ROS Strong TurtleApril 23, 2012--Ubuntu 10.04, Ubuntu 11.10, Ubuntu 12.04
ROS Electric EmysAugust 30, 2011--Ubuntu 10.04, Ubuntu 10.10, Ubuntu 11.04, Ubuntu 11.10
ROS DiamondbackMarch 2, 2011--Ubuntu 10.04, Ubuntu 10.10, Ubuntu 11.04
ROS C TurtleAugust 2, 2010--Ubuntu 9.04, Ubuntu 9.10, Ubuntu 10.04, Ubuntu 10.10
ROS Box TurtleMarch 2, 2010--Ubuntu 8.04, Ubuntu 9.04, Ubuntu 9.10, Ubuntu 10.04
Start the transbot se container
Project file structure

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/中文