rosserial_arduino包与arduino交互时rosmsg报错
rosserial_arduino包与arduino交互时rosmsg报错
前提条件
1、Arduino IDE正常安装好
2、本次采用的是arduino nano开发板和kinetic版本ROS
3、从未安装过rosserial_arduino包
二进制安装rosserial_arduino包
打开终端输入sudo apt-get install ros-kinetic-rosserial-arduino
和su都apt-get install ros-kinetic-rosserial
两个二进制包
配置arduino IDE
打开arduino IDE找到preferences,点击查看sketchbook目录
找到sketchbook目录,并在此打开终端输入rosrun rosserial_arduino make_libraries.py .
创建ros_lib包。如果存在ros_lib包删除即可。
向arduino nano烧录程序
打开arduino IDE,在file栏下点开examples,划到ros_lib栏选择helloword打开。
对于arduino nano,需要把port 换成是自己设备的串口,我这里是ttyUSB0,并且board arduino uno改成arduino nano;Processor选择ATmega328P的Old BootLoader。
新开终端输入sudo chmod 666 /dev/ttyUSB0
赋予权限,点击箭头烧录程序。
运行rosserial_arduino
打开终端先运行roscore
。
由于是二进制安装的,与官方教程不大一样的在于serial node.py在rosserial_python目录下,输入rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB0
运行程序,注意烧录和这里打开的串口都要是arduino nano的串口,结果发现报错。
解决报错问题
打开终端输入sudo apt-get install ros-kinetic-genpy
,再运行rosserial_arduino文件即可。
输入命令rostopic echo /chatter
查看arduino nano发布的话题消息。
参考了博客:http://blog.****.net/WinTeRomING/article/details/108402250