shake_hands
Initiate a handshake interaction with the Unitree Go2 robot using natural language commands. Converts instructions into ROS2 actions for execution.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Input Schema (JSON Schema)
{
"properties": {},
"title": "shake_handsArguments",
"type": "object"
}
Implementation Reference
- server.py:70-74 (handler)MCP tool handler for shake_hands that calls the WirelessController.shake_hands method, stops the controller, and returns the result message.@mcp.tool() def shake_hands(): _, msg = wirelesscontroller.shake_hands() wirelesscontroller.stop() return msg
- msgs/wirelesscontroller.py:59-62 (helper)Implementation of the shake_hands action in WirelessController: stands up from a fall and publishes custom keys=528 via ROS2 topic.def shake_hands(self): self.stand_up_from_a_fall() return self._customised_movements(keys=528)
- msgs/wirelesscontroller.py:42-50 (helper)Supporting helper method in WirelessController to publish zero stick movements with custom key values to the ROS2 wirelesscontroller topic.def _customised_movements(self, keys: int, rate: int = None, times: int = 5) -> tuple[bool, Any]: rate = rate if rate is not None else self.rate rate_opt = f"-r {rate} --times {times}" command = ( f"source {self.setup_sh_path} && " f"ros2 topic pub {self.topic} {self.msg_type} " f"'{{lx: 0.0, ly: 0.0, rx: 0.0, ry: 0.0, keys: {keys}}}' {rate_opt}" ) return self.execute(command)
- msgs/wirelesscontroller.py:52-54 (helper)Helper method called by shake_hands to first stand up using specific keys=1056.def stand_up_from_a_fall(self): return self._customised_movements(keys=1056)