接上一篇文章,在这里,我们尝试运行例程来点亮一个led灯。
1.首先打开我们安装的例程中的ros_arduino_led例程,然后上传程序到arduino板子
2.然后,我们运行ros程序
(1)运行roscore:roscore
(2)运行控制程序:rosrun rosserial_python serial_node.py /dev/ttyUSB0
这里提示:package 'rosserial_python' not found.
原来是我没有下载这个项目源码,所以赶紧新建了一个ros的工作空间
mkdir -p ~/catkin_ws/src
然后编译
catkin_make
然后执行source命令。
再然后下载项目到相应文件夹,进入catkin_ws/src文件夹下面,然后:
再然后回到catkin_ws文件夹下,执行:catkin_make编译,如果cmake版本太低会编译出错,这个时候需要更新cmake版本,
更新之后需要重新安装catkin工具:sudo apt-get install ros-noetic-catkin
然后就可以了。
继续编译:catkin_make
如果出现如下错误:
Could not find a package configuration file provided by "message_generation"
则执行:sudo apt-get install ros-kinetic-message-generation
然后继续执行catkin_make
又报错了,缺少roscpp依赖,还是按照上面的方法安装ros依赖:sudo apt-get install ros-kinetic-roscpp
成功,然后继续执行catkin_make编译。
编译成功,开心!
然后再次执行:rosrun rosserial_python serial_node.py /dev/ttyUSB0
报错如下:
解决方案:
将/home/user/catkinws/src/rosserial/rosserialpython/src/rosserial_python/SerialClient.py打开,第41行改为
import Queue as queue
问题得到了完美的解决。
然后继续运行:rosrun rosserial_python serial_node.py /dev/ttyUSB0
完美无报错。
3.运行:rostopic pub toggle_led std_msgs/Empty --once
发布点灯的消息。
灯被完美点亮:
完成!