Gamepad keypad with python codelet

Hi im not able to get the message when using Isaac Sight Virtual Gamepad-> “Keypad” functionality
when i did print inside my tick function, it keep prompt “none” for rx.message
Anywhere I do it wrong?

here is my setup
motorDriver.app.json
{
“name”: “motorDriver”,
“modules”:[“sight”,“navigation”],
“graph”: {
“nodes”: [
{
“name”: “motorDriver_node”,
“components”: [
{
“name”: “message_ledger”,
“type”: “isaac::alice::MessageLedger”
}
]
},
{
“name”: “virtual_gamepad_bridge”,
“components”: [
{
“name”: “message_ledger”,
“type”: “isaac::alice::MessageLedger”
}, {
“name”: “VirtualGamepadBridge”,
“type”: “isaac::navigation::VirtualGamepadBridge”
}
]
}
],
“edges”: [
{
“source”: “websight/WebsightServer/virtual_gamepad”,
“target”: “virtual_gamepad_bridge/VirtualGamepadBridge/request”
},
{
“source”: “virtual_gamepad_bridge/VirtualGamepadBridge/reply”,
“target”: “websight/WebsightServer/virtual_gamepad_reply”
}

  ]
},
"config": {
  "motorDriver_node": {
    "PyCodelet": {


“tick_period” : 1
}
},
“virtual_gamepad_bridge”: {
“VirtualGamepadBridge”: {
“tick_period”: “100ms”
}
}
}
}

motorDriver.py
from isaac import *
class MotorDriver(Codelet):
def start(self):
self.rx = self.isaac_proto_rx(“JoystickStateProto”, “state”)
self.tick_periodically(self.config.tick_period)

def tick(self):
    print(self.rx.message)

def main():
app = Application(app_filename=“apps/AMV_BOT/motorDriver/motorDriver.app.json”)
app.load_module(“sight”)
app.nodes[“motorDriver_node”].add(MotorDriver)
app.connect(‘virtual_gamepad_bridge/VirtualGamepadBridge/joystick’,‘virtual_gamepad_bridge’,‘motorDriver_node/PyCodelet’, ‘state’)
# ‘odometry/isaac.navigation.DifferentialBaseOdometry’, ‘state’,‘motorDriver_node/PyCodelet’, ‘state’
app.run()

if name == ‘main’:
main()

The app.connect() line should read app.connect('virtual_gamepad_bridge/VirtualGamepadBridge', 'joystick', ‘motorDriver_node/PyCodelet’, ‘state’). The name of the source codelet should be the first argument and the source channel name as the second argument.

1 Like