@小鱼
我也用了书中的示例代码:fishbot_motion_control_9.4.1, 也会出现同样的问题。定位了下:rclc_support_init(&support,0,NULL,&allocator); 返回的是1, support初始化就失败了。

// 单独创建一个任务运行 micro-ROS 相当于一个线程 void microros_task(void* args) { // 1.设置传输协议并延迟一段时间等待设置的完成 IPAddress agent_ip; agent_ip.fromString("192.168.31.100"); // 设置agent的IP地址 set_microros_wifi_transports((char*)"******",(char*)"******",agent_ip,8000); // 设置传输协议 delay(3000); // 等待2秒,等待WIFI连接 // 2.初始化内存分配器 allocator = rcl_get_default_allocator(); // 获取默认的内存分配器 // 3.初始化支持 rclc_support_init(&support,0,NULL,&allocator); // 初始化支持 // 4.初始化节点 rclc_node_init_default(&node,"fishbot_motion_control","",&support); // 初始化节点 // 5.初始化执行器 unsigned int num_handles = 0; // 订阅和计时器的回调数量,注意这是一个要改的参数 rclc_executor_init(&executor,&support.context,num_handles,&allocator); // 初始化执行器 // 循环执行器 rclc_executor_spin(&executor); }