ROS arduino 联调
ros_arduino_bridge填坑记录:
树莓派+arduino nano,空板 无传感器电机等
环境:rsp4b、系统2021-05-07-raspios-buster-arm64、ros版本 noetic、nano;
安装参考如下:
https://www.ncnynl.com/archives/201610/930.html
也可参考:
https://github.com/hbrobotics/ros_arduino_bridge/tree/indigo-devel
问题描述
1、树莓派连接不了arduino
2、可以连接,但是不能控制led等内容
3、此外还有其他信息,如没有tf,没有thread,没有iteritems等,
如下图:连接不了
这下图可以连接上了,但是反复的发送如下信息—
原因分析:
提示:主要是python2和python3版本的问题,几乎每一个错误提示都可以度娘出来。例如 py2的print 是 直接 “”,但是py3 是print(" "), 这里是需要修改的,最基础。
还有就是byte转str的时候,需要str(c,encoding=“utf-8”)、thread需要修改_thread之类的,代码如下
解决方案:
主要修改了两个文件 一个是 driver.py,另外一个是node .py
下面展示一些
# arduino_node.py文件的
#如 带b,带encoding等
for name, params in sensor_params.items():
#arduino_driver.py修改的部分
def recv(self, timeout=0.5):
timeout = min(timeout, self.timeout)
c = ''
value = ''
attempts = 0
while c != b'\r':
c = self.port.read(1)
value += str(c,encoding = "utf-8")
attempts += 1
if attempts * self.interCharTimeout > timeout:
return None
value = value.strip('\r')
return value
全部文件下载连接如下,我很不喜欢积分下载这种方式,还要注册登录,够麻烦,简直是学习的绊脚石。但是这个平台的规则没办法
https://download.csdn.net/download/xuxer110/85060059