Welcome to Transbot SE repository
2.Basic communication
2.Basic communication
2.Basic communication2.1. Node settings2.2. View node data1) Start2) View the node graph3) View services4) View topic messages5) Dynamic parameter configuration
2.1. Node settings
Function package path: ~/transbot_ws/src/transbot_bringup
The functions that Transbot SE needs to implement: car speed control, speed information feedback, robotic arm control, robotic arm status feedback, battery voltage feedback, buzzer control, and pan/tilt control.
The contents of setting the underlying driver node of Transbot SE according to the requirements are as follows:
Topics
Publish odometer message【/transbot/get_vel】
Publish imu message【/transbot/imu】
Post battery voltage news【/voltage】
Subscribe to car sports news【/cmd_vel】
Subscribe to robotic arm control messages【/TargetAngle】
Subscribe to gimbal servo control messages【/PWMServo】
Service (client)
Receive buzzer control message【/Buzzer】
Receive and feedback the current angle message of the robotic arm【/CurrentAngle】
2.2. View node data
1) Start
jetson/Raspberry Pi 4B
roscorerosrun transbot_bringup transbot_driver.py
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

xxxxxxxxxxroscore
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
xxxxxxxxxxdocker psEnter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.
xxxxxxxxxxdocker exec -it 18870bc3dc00 /bin/bash
xxxxxxxxxxrosrun transbot_bringup transbot_driver.py
2) View the node graph
jetson motherboard/Raspberry Pi 4B
xxxxxxxxxxrqt_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
xxxxxxxxxxdocker ps
Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.
xxxxxxxxxxdocker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxxrqt_graph

3) View services
jetson motherboard/Raspberry Pi 4B
xxxxxxxxxxrosservice list
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
xxxxxxxxxxdocker ps
Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.
xxxxxxxxxxdocker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxxrosservice list
Print as follows (mainly used):
xxxxxxxxxx/Buzzer/CurrentAngle/PWMServo/voltage... ...Command line publishing service
jetson/Raspberry Pi 4B
xxxxxxxxxx# buzzerrosservice call /Buzzer "buzzer: 1" # Turn on the buzzerrosservice call /Buzzer "buzzer: 0" # Turn off the buzzer# Get the current angle of the robotic armrosservice call /CurrentAngle "apply: 'GetJoint'"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
xxxxxxxxxxdocker ps
Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.
xxxxxxxxxxdocker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxx# buzzerrosservice call /Buzzer "buzzer: 1" # Turn on the buzzerrosservice call /Buzzer "buzzer: 0" # Turn off the buzzer# Get the current angle of the robotic armrosservice call /CurrentAngle "apply: 'GetJoint'"Robotic arm
xxxxxxxxxx

| id | corresponding servo | angle range | running time |
|---|---|---|---|
| 7 | Steering gear connected to the body | [0, 225] | [10, 2000] |
| 8 | Section 2 steering gear | [30, 270] | [10, 2000] |
| 9 | Gripper servo | [30, 180] | [10, 2000] |
Do not copy when issuing control instructions; type by hand and double-click the [Tab] key to complete.
- PTZ control
Control commands, such as the picture below

| id | corresponding servo | angle range | camera |
|---|---|---|---|
| 1 | Move left and right (X) | [0, 180] | High frame rate |
| 2 | Move up and down (Y) | [0, 180] | High frame rate |
4) View topic messages
Publish topics from the command line and drive the car

Note: Do not copy and paste; type by hand and double-click the [Tab] key to complete.
Using the rqt_topic tool
jetson motherboard/Raspberry Pi 4B
xxxxxxxxxxrosrun rqt_topic rqt_topic
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
xxxxxxxxxxdocker ps
Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.
xxxxxxxxxxdocker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxxrosrun rqt_topic rqt_topic

As can be seen from the picture, the data can be printed only by putting a √ mark in the previous box. At this time, the battery voltage is 11.6V; the car's linear velocity and angular velocity decibels are [0.2, 0.99]; and the car's imu information is also available.
5) Dynamic parameter configuration
No adjustments are needed at this time, just for reference.
jetson/Raspberry Pi 4B
xxxxxxxxxxrosrun rqt_reconfigure rqt_reconfigure
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
xxxxxxxxxxdocker ps
Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.
xxxxxxxxxxdocker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxxrosrun rqt_reconfigure rqt_reconfigure

【linear_max】: Maximum limit of linear speed
【angular_max】:Maximum limit of angular velocity
【linear_min】: Minimum limit of linear speed
【angular_min】:Minimum limit of angular velocity