Traceback (most recent call last): File "sub.py", line 42, in <module> pub_1.publish(twist) File "/opt/ros/noetic/lib/python3/dist-packages/rospy/topics.py", line 879, in publish data = args_kwds_to_message(self.data_class, args, kwds) File "/opt/ros/noetic/lib/python3/dist-packages/rospy/msg.py", line 121, in args_kwds_to_message raise TypeError("expected [%s] but got [%s]"%(data_class._slot_types[0], arg._type)) TypeError: expected [string] but got [geometry_msgs/Twist]
时间: 2024-03-16 12:41:11 浏览: 253
这个错误是由于 `pub_1.publish(twist)` 的 `twist` 变量类型不匹配导致的。 `pub_1.publish()` 函数期望的变量类型是字符串类型,但是你传递的是 `geometry_msgs/Twist` 类型的变量。因此,你需要将 `twist` 变量转换为字符串类型,然后再传递给 `pub_1.publish()` 函数。
你可以使用 `json.dumps()` 将 `geometry_msgs/Twist` 类型的变量转换为字符串类型,然后再传递给 `pub_1.publish()` 函数。例如:
```
import json
...
twist_str = json.dumps(twist)
pub_1.publish(twist_str)
```
这样就可以解决这个错误了。
阅读全文