ROS2与Arduino串口和WiFi测试记录(Due和ESP32)ROS2与Arduino发布订阅(2019-09)
【摘要】 ROS2与Arduino调试有成熟方案,一年多前写过一篇博文详细记录,现在相关物联网单片机课程(ESP32)已经开发和测试完成,将之前的再回顾一遍吧(本文不含ROS1)。
ROS2与Arduino发布订阅(2019-09)
>ESP32_wifi代码在文末<
2020年了,port也改成2020(默认为2018)测试一下:
现在官方已经更新了...
ROS2与Arduino调试有成熟方案,一年多前写过一篇博文详细记录,现在相关物联网单片机课程(ESP32)已经开发和测试完成,将之前的再回顾一遍吧(本文不含ROS1)。
-
ROS2与Arduino发布订阅(2019-09)
>ESP32_wifi代码在文末<
2020年了,port也改成2020(默认为2018)测试一下:
现在官方已经更新了,但是安装和使用流程完全一致,参考官方教程即可(ros2arduino)。
串口!
Due英文发布
当然,完全可以支持中文的,如下所示:
只需修改下面代码对应位置即可:
开发板类型在右下角可以看到。
接着调试一下ESP32,发现一样OK,串口非常易用,效果很好的。
具体输出如下:
无线局域网!
那么来测试一下wifi吧,先调整一下代码,如下所示:
发现一样,直接成功没有遇到任何问题!
注意,一定要启动xrcedds哦,ESP32开发板IP地址如下:
目前,还不支持tcp,最好用udp,测试非常稳定。
publisher_wifi_udpesp32.ino
-
#include <ros2arduino.h>
-
-
#include <WiFi.h>
-
#include <WiFiUdp.h>
-
-
#define PUBLISH_FREQUENCY 2 //hz
-
-
const char* SSID="*********";
-
const char* SSID_PW="*********";
-
-
#define AGENT_IP "172.20.10.3"
-
#define AGENT_PORT 2020 //AGENT port number
-
-
void publishString(std_msgs::String* msg, void* arg)
-
{
-
(void)(arg);
-
-
static int cnt = 0;
-
sprintf(msg->data, "来一起学习ros2吧(ESP32WiFi测试) %d", cnt++);
-
}
-
-
class StringPub : public ros2::Node
-
{
-
public:
-
StringPub()
-
: Node("ros2arduino_pub_node")
-
{
-
ros2::Publisher<std_msgs::String>* publisher_ = this->createPublisher<std_msgs::String>("arduino_chatter");
-
this->createWallFreq(PUBLISH_FREQUENCY, (ros2::CallbackFunc)publishString, nullptr, publisher_);
-
}
-
};
-
-
WiFiUDP udp;
-
-
void setup()
-
{
-
Serial.begin(115200);
-
WiFi.begin(SSID, SSID_PW);
-
while(WiFi.status() != WL_CONNECTED)
-
{
-
Serial.print("\n正在连接 ");
-
Serial.println(SSID);
-
delay(500);
-
}
-
Serial.print("已经准备好,使用 ");
-
Serial.print(WiFi.localIP());
-
Serial.println(" 连接ROS2");
-
ros2::init(&udp, AGENT_IP, AGENT_PORT);
-
}
-
-
void loop()
-
{
-
static StringPub StringNode;
-
-
ros2::spin(&StringNode);
-
}
如果觉得这代码太LOW,没关系,还有下面配置模式,使用micro-ros2非常棒,有空再更新!
文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。
原文链接:zhangrelay.blog.csdn.net/article/details/109409535
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)