28. Let's get to know more
about ROSSERIAL!
- Protocol
- Limitations
- Future
29. Protocol of rosserial (http://wiki.ros.org/rosserial/Overview/Protocol)
Sync Flag
Sync Flag
/ Protocol
version
Message
Length
(N)
Message
Length
(N)
Checksum
over
message
length
Topic ID Topic ID
Serialized
Message
Data
Checksum
over Topic
ID and
Message
Data
1st Byte 2nd Byte 3rd Byte 4th Byte 5th Byte 6th Byte 7th Byte N Bytes Byte N+8
(Value: 0xFF) (Value: 0xFE) (Low Byte) (High Byte) (Low Byte) (High Byte)
Sync Flag oxFF
Sync Flag / Protocol version 0xFF on ROS Groovy, 0xFE on ROS Hydro, Indigo, Jade and Kinetic
Message Length (N) Message Length, 2 Byte = Low Byte + High Byte
Checksum over message length Checksum = 255 - ( (Message Length Low Byte + Message Length High Byte) %256)
Topic ID
2 Byte = Low Byte + High Byte
ID_PUBLISHER=0, ID_SUBSCRIBER=1, ID_SERVICE_SERVER=2, ID_SERVICE_CLIENT=4, ID_PARAMETER_REQUEST=6,
ID_LOG=7, ID_TIME=10, ID_TX_STOP=11
Serialized Message Data Message Data like IMU, TF, GPIO
Checksum over Topic ID and
Message Data
Checksum = 255 - ( (Topic ID Low Byte + Topic ID High Byte + data byte values) % 256)
30. Limitations of rosserial (http://wiki.ros.org/rosserial/Overview/Limitations)
1. Maximum Size of a Message, Maximum Number of Publishers/Subscribers
ros::NodeHandle_<HardwareType, MAX_PUBLISHERS=25, MAX_SUBSCRIBERS=25,
IN_BUFFER_SIZE=512, OUT_BUFFER_SIZE=512> nh;
: ?? ????? ???? ????? ??, ???????? ??, ????, ??
??? ???? ??? ?? ???? MCU? ???? ??.
2. Float64
: ????? ??? 64-bit float? 32-bit ?????? ????.
http://wiki.ros.org/rosserial/Overview/Limitations