micropython-rosserial scripts and ros

The following command must be executed in the computer with the rosmaster.

rosrun rosserial_arduino serial_node.py _port:=/dev/ttyUSB0 _baud:=115200

The baud must match the baud in the uros.NodeHandle statement in the micropython-rosserial script.

micropython-rosserial publisher sample code

 

import uros
from std_msgs import ColorRGBA #message object ColorRGBA
from time import sleep
node=uros.NodeHandle(2,115200) #node initialized, for tx2/rx2 and 115200 baudrate
msg=ColorRGBA() #msg object init
msg.r=1 #values to variables assigned
msg.g=3
msg.b=4
msg.a=1
while True:
    node.publish('Colorsh',msg) #publish data to node Colorsh
    sleep(1)

 

micropython-rosserial subscriber sample code

import uros
from std_msgs import String

def cb(msg):
	print(msg.data)
	
node = uros.NodeHandle(2, 115200)
node.subscribe('chatter', String, cb)

 

micropython-rosserial subscriber and publisher sample code

 

import uros
from std_msgs import String

def cb(msg):
	print(msg.data)
	
packet=String()
packet.data='hola fpy'
node = uros.NodeHandle(2, 115200)
node.subscribe('chatter', String, cb)
while True:
	node.publish('greet', packet)

 

Node constructor

uros.NodeHandle(SERIAL_ID = 2, BAUDRATE = 115200, **KWARGS)

Remark: there are 3 serial ports in esp32

**KWARGS are arguments for a custom serial port connection.

More info about micropython-rosserial

https://pypi.org/project/micropython-rosserial/

end