No artigo sobre topics falamos sobre como criar a comunicação Publisher Subscriber em python.
Fizemos isso utilizando uma mensagem padrão do tipo String contida no pacote.
ROS permite que você crie sua própria mensagem no seu próprio tipo e a transmita entre nós.
Todo nome de mensagem é composto por duas partes package_name/message_type.
Em nossa aplicação Talker Listener utilizamos std_msg/String.
Aqui criaremos a mensagem de sensores como exemplo, todo sensor terá um id, um nome, a temperatura e a umidade.
Em seu workspace, no diretório do pacote onde realiza suas aplicações, no nosso caso ros_essentials_cpp, deverá ser criado uma pasta de nome msg, nessa pasta criaremos um arquivo de nome Sensor.msg que deverá ser preenchido com as seguintes linhas:
_____________________
int32 id
string name
float32 temperature
float32 humidity
_____________________
Para que a mensagem possa ser usada é necessário atualizar as dependências em CMakeLists.txt adicionando a linha message_generation no campo seguinte:
########################################
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
#######################################
Ainda em CMakeLists.txt adicionar o nome do arquivo criado no campo seguinte:
####################
add_message_files(
FILES
Sensor.msg
)
####################
Agora em package.xml adicionar nos locais adequados (de acordo com a sintaxe) as linhas :
<build_depend>message_generation</build_depend>
e
<exec_depend>message_runtime</exec_depend>
Para finalizar é necessário no diretório do workspace realizar um catkin_make.
E agora temos um novo tipo de mensagem que pode ser usado na comunicação entre nós através de topics.