@3107926719 我已经解决了 发现是esp32供电有问题 之前是用市面上自带的底板供电 换了ch340供电就可以了
重要提示
鱼香小铺正式开业,最低499可入手一台能建图会导航的移动机器人,淘宝搜店:鱼香ROS 或点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
1
1402364022 发布的最新帖子
-
RE: docker按串口通讯方式启动后连接上硬件但是一直没有节点信息
-
RE: docker按串口通讯方式启动后连接上硬件但是一直没有节点信息
@小鱼
我的micro-ros是像您的humble版动手学教程一样,是在ini文件里加了这个依赖,这个应该是humble版的micro-ros吧 -
RE: docker按串口通讯方式启动后连接上硬件但是一直没有节点信息
串口监视器查看结果:
显示按下rst是有对应输出的:
安装新的agent:
安装完后还是只是打印两条信息,有重启还是没用:
我安装是按照https://github.com/ZhaoXiangBox/esp32_ros2_robot/blob/foxy/02-install_micro_ros/chapter_02.pdf
的步骤(因为之前尝试安装但由于网络不好无法下载micro_ros_agent包而作罢,这次是用了您的路径单独下载micro_ros_agent包),包编译时有如下的警告:--- stderr: micro_ros_agent 正克隆到 'xrceagent'... 切换到一个新分支 'ros2' HEAD 目前位于 c25243c Enable Domain Override on Reference and XML Participant (#351) CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to `find_package_handle_standard_args` (tinyxml2) does not match the name of the calling package (TinyXML2). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindTinyXML2.cmake:40 (find_package_handle_standard_args) /opt/ros/humble/share/fastrtps/cmake/fastrtps-config.cmake:51 (find_package) CMakeLists.txt:153 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. Finished <<< micro_ros_agent [1min 39s] Summary: 2 packages finished [1min 51s] 1 package had stderr output: micro_ros_agent
-
docker按串口通讯方式启动后连接上硬件但是一直没有节点信息
环境
- Linux:Ubuntu 的ros2 humble
- esp32硬件:micro-ros
- esp32软件开发平台:platformio
- agent:dockers
问题描述
想实现: esp32主控发布节点,通过docker的串口通讯方式被安装了ros2的上位机查询。
esp32烧录代码:#include <Arduino.h> #include <micro_ros_platformio.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); // 设置通过串口进行MicroROS通信 set_microros_serial_transports(Serial); // 延时时一段时间,等待设置完成 delay(2000); // 初始化内存分配器 allocator = rcl_get_default_allocator(); // 创建初始化选项 rclc_support_init(&support, 0, NULL, &allocator); // 创建节点 hello_microros rclc_node_init_default(&node, "hello_microros", "", &support); // 创建执行器 rclc_executor_init(&executor, &support.context, 1, &allocator); } void loop() { delay(100); // 循环处理数据 rclc_executor_spin_some(&executor, RCL_MS_TO_NS(100)); }
终端输入:
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
应实现:
实际效果:
问题总结
docker虽然识别到micro-ros设备,但是一直卡在了日志打印,而没有create client,且按下rst键都没有用,更不用说node信息也查询不到。
-
RE: 按照鱼哥教程的步骤安装micro_ros_agent出错
@twj0011001010
这个文档有,只不过是和micro-ros一起安装的,不知道是不是你要的,来源https://github.com/ZhaoXiangBox/esp32_ros2_robot,b站up@照样同学