ubuntu23.10一键安装humble和microros agent,无法与fishbot开发板通信
-
背景:
购买fishbot后,想利用树莓派5作为上位机与fishbot开发板进行串口或wifi等通信,方便后续开发。
环境:树莓派5 ubuntu23.10 一键安装docker+Ros 2 humble,docker中安装microros agent。
问题描述:当前Ros2能成功启动小乌龟,但是无法利用Microros agent与fishbot开发板通信。
尝试的方法有
1.《动手学ROS2》4.2的命令 sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO serial --dev /dev/ttyUSB0 -v6
失败,我理解是该容器与ROS2的容器非一个容器无法通讯
2.于是在ROS2的容器中安装microros agent源码,启动源码加串口通讯,但是一直报错Serial not found
代码使用的是控制LED的代码3.2步骤中将串口改为wifi通讯依旧连接不上,其中代码在虚拟机ros2可以成功通信,所以理解还是树莓派的docker中无法与外网通信导致
代码为#include <Arduino.h> #include <micro_ros_platformio.h> #include <WiFi.h> #include <rcl/rcl.h> #include <rclc/rclc.h> #include <rclc/executor.h> rclc_executor_t executor; rclc_support_t support; rcl_allocator_t allocator; rcl_node_t node; void setup() { Serial.begin(115200); // 设置通过WIFI进行MicroROS通信 IPAddress agent_ip; agent_ip.fromString("192.168.1.9"); // 设置wifi名称,密码,电脑IP,端口号 set_microros_wifi_transports("CMCC-ft3c", "exh6j9ud", agent_ip, 8888); // 延时时一段时间,等待设置完成 delay(2000); // 初始化内存分配器 allocator = rcl_get_default_allocator(); // 创建初始化选项 rclc_support_init(&support, 0, NULL, &allocator); // 创建节点 microros_wifi rclc_node_init_default(&node, "microros_wifi", "", &support); // 创建执行器 rclc_executor_init(&executor, &support.context, 1, &allocator); } void loop() { delay(100); // 循环处理数据 rclc_executor_spin_some(&executor, RCL_MS_TO_NS(100)); }
万分感谢
-
还请各位大佬帮忙解决一下,docker容器创建时将网络设置从bridge改成Host也有尝试,但是未能成功。该问题困扰了快半个月了,很希望能将树莓派5与fishbot开发板进行通讯,谢谢
-
@1564904104 不知道ubuntu24.04 树莓派能不能用,如果可以,建议更换长期支持版本。