接上一篇文章,在这里,我们尝试运行例程来点亮一个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文件夹下面,然后:

git clone https://github.com/ros-drivers/rosserial.git

再然后回到catkin_ws文件夹下,执行:catkin_make编译,如果cmake版本太低会编译出错,这个时候需要更新cmake版本,

具体的更新方法看这篇文章:https://blog.csdn.net/qqliuzhitong/article/details/112859095

更新之后需要重新安装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

发布点灯的消息。

灯被完美点亮:

完成!