@小鱼
我也用了书中的示例代码: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);
}