ROS2与Arduino串口和WiFi测试记录(Due和ESP32)ROS2与Arduino发布订阅(2019-09)

举报
zhangrelay 发表于 2021/07/15 02:22:40 2021/07/15
【摘要】 ROS2与Arduino调试有成熟方案,一年多前写过一篇博文详细记录,现在相关物联网单片机课程(ESP32)已经开发和测试完成,将之前的再回顾一遍吧(本文不含ROS1)。 ROS2与Arduino发布订阅(2019-09) >ESP32_wifi代码在文末< 2020年了,port也改成2020(默认为2018)测试一下: 现在官方已经更新了...

ROS2与Arduino调试有成熟方案,一年多前写过一篇博文详细记录,现在相关物联网单片机课程(ESP32)已经开发和测试完成,将之前的再回顾一遍吧(本文不含ROS1)。

>ESP32_wifi代码在文末<

2020年了,port也改成2020(默认为2018)测试一下:

现在官方已经更新了,但是安装和使用流程完全一致,参考官方教程即可(ros2arduino)。

串口!

Due英文发布

当然,完全可以支持中文的,如下所示:

只需修改下面代码对应位置即可:

开发板类型在右下角可以看到。

接着调试一下ESP32,发现一样OK,串口非常易用,效果很好的。

具体输出如下:

无线局域网!

那么来测试一下wifi吧,先调整一下代码,如下所示:

发现一样,直接成功没有遇到任何问题!

注意,一定要启动xrcedds哦,ESP32开发板IP地址如下:

目前,还不支持tcp,最好用udp,测试非常稳定。

publisher_wifi_udpesp32.ino


  
  1. #include <ros2arduino.h>
  2. #include <WiFi.h>
  3. #include <WiFiUdp.h>
  4. #define PUBLISH_FREQUENCY 2 //hz
  5. const char* SSID="*********";
  6. const char* SSID_PW="*********";
  7. #define AGENT_IP "172.20.10.3"
  8. #define AGENT_PORT 2020 //AGENT port number
  9. void publishString(std_msgs::String* msg, void* arg)
  10. {
  11. (void)(arg);
  12. static int cnt = 0;
  13. sprintf(msg->data, "来一起学习ros2吧(ESP32WiFi测试) %d", cnt++);
  14. }
  15. class StringPub : public ros2::Node
  16. {
  17. public:
  18. StringPub()
  19. : Node("ros2arduino_pub_node")
  20. {
  21. ros2::Publisher<std_msgs::String>* publisher_ = this->createPublisher<std_msgs::String>("arduino_chatter");
  22. this->createWallFreq(PUBLISH_FREQUENCY, (ros2::CallbackFunc)publishString, nullptr, publisher_);
  23. }
  24. };
  25. WiFiUDP udp;
  26. void setup()
  27. {
  28. Serial.begin(115200);
  29. WiFi.begin(SSID, SSID_PW);
  30. while(WiFi.status() != WL_CONNECTED)
  31. {
  32. Serial.print("\n正在连接 ");
  33. Serial.println(SSID);
  34. delay(500);
  35. }
  36. Serial.print("已经准备好,使用 ");
  37. Serial.print(WiFi.localIP());
  38. Serial.println(" 连接ROS2");
  39. ros2::init(&udp, AGENT_IP, AGENT_PORT);
  40. }
  41. void loop()
  42. {
  43. static StringPub StringNode;
  44. ros2::spin(&StringNode);
  45. }

如果觉得这代码太LOW,没关系,还有下面配置模式,使用micro-ros2非常棒,有空再更新!

 


 

文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/109409535

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。