be256b751ce090c65dd1531a00f69351.png
f4ccb459-1300-4cee-a8cb-89016946634b-image.png
28a24003-d54d-43c6-976a-293e8b8e3d58-image.png
wifi的密码账号还有ip地址都是和主控板一致的,跳线帽在配置完wifi后也从串口模式归位为wifi模式,
重启机器人后还是依旧等待接受连接
有什么解决方案吗
352c1a32-965f-46df-8706-2d711cf62364-image.png
570f959a-02a1-4ae1-be3c-fe691269d998-image.png
5f4e72ab-80c7-4c74-9599-e583162e0249-image.png
无法连接成功,wifi的ip,账号密码都是对的,wifi也是2.4g,电脑连接的网线,但也同时连接了相同wifi,跟着9.5.1的流程走,一直无法链接成功
be256b751ce090c65dd1531a00f69351.png
遇到了ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888后没有输出的问题。
遇到了单片机串口监听会有如下类似输出:
解决办法检查ip是否正确(wsl2可以开镜像模式,不会的问问ai)。检查WiFi是否连上,wsl用户确保防火墙给过(我就是wifi连上但是防火墙问题,也可以问问ai),wifi质量。
调试的时候在代码里多加一点打印函数以确保知道哪一步出问题了。
此外,调试的时候在setup里的打印串口不一定来得及显示,故setup()中别忘了延迟。
void setup() { // 初始化串口。 Serial.begin(115200); // 初始化串口通信,波特率为115200 // delay(5000); // 测试使用,确保串口能监视。测试时,ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888一直开着,小车复位就行。
我之前串口显示:
WiFi status: Connected IP: xxx support init failed node init failedwindows下打开powershell(管理员)
New-NetFirewallRule -DisplayName "Micro-ROS Agent" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 8888后来就没有问题了。
~/chapt9/fishbot_ws$ ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 [1788770845.577995] info | UDPv4AgentLinux.cpp | init | running... | port: 8888 [1788770845.578219] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 4 [1788770856.901357] info | Root.cpp | create_client | create | client_key: 0x2DA90876, session_id: 0x81 [1788770856.901571] info | SessionManager.hpp | establish_session | session established | client_key: 0x2DA90876, address: xxx [1788770857.263512] info | ProxyClient.cpp | create_participant | participant created | client_key: 0x2DA90876, participant_id: 0x000(1) [1788770857.460412] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x2DA90876, topic_id: 0x000(2), participant_id: 0x000(1) [1788770857.714279] info | ProxyClient.cpp | create_subscriber | subscriber created | client_key: 0x2DA90876, subscriber_id: 0x000(4), participant_id: 0x000(1) [1788770857.743909] info | ProxyClient.cpp | create_datareader | datareader created | client_key: 0x2DA90876, datareader_id: 0x000(6), subscriber_id: 0x000(4) [1788771241.953583] info | Root.cpp | delete_client | delete | client_key: 0x2DA90876 [1788771241.953708] info | SessionManager.hpp | destroy_session | session closed | client_key: 0x2DA90876, address: xxx [1788771241.953756] info | Root.cpp | create_client | create | client_key: 0x332EE297, session_id: 0x81 [1788771241.953773] info | SessionManager.hpp | establish_session | session established | client_key: 0x332EE297, address: xxx [1788771242.306195] info | ProxyClient.cpp | create_participant | participant created | client_key: 0x332EE297, participant_id: 0x000(1) [1788771242.369915] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x332EE297, topic_id: 0x000(2), participant_id: 0x000(1) [1788771242.511903] info | ProxyClient.cpp | create_subscriber | subscriber created | client_key: 0x332EE297, subscriber_id: 0x000(4), participant_id: 0x000(1) [1788771242.601624] info | ProxyClient.cpp | create_datareader | datareader created | client_key: 0x332EE297, datareader_id: 0x000(6), subscriber_id: 0x000(4)以及
~/chapt9/fishbot_ws$ ros2 node list /fishbot_motion_control我在fishbot配置助手里已经显示写入成功了,但是我查看的时候server_port还是原来的数值,怎么都不行,重启也不行。
安装ubuntu时,powershell输入安装命令,为什么我一直是无法解析服务器的名称或地址,在微软商店里面下载打开也是报错
QQ_1788017101394.png我安装espeakng一直显示连接被拒绝是为啥啊
跳线帽改到了有线模式,然后用USB连接树莓派和雷达板的typec口,但是雷达不转。
USB 串口 /dev/ttyUSB0 正常;
驱动能读取雷达健康状态,说明 TX/RX 通;
驱动启动后没有扫描数据,电机不转;
手动测试 CH340 的 DTR、RTS 四种组合,电机均不转;
WiFi 模式能转,证明雷达、供电和电机本身正常;
FishBot 固件源码显示:电机由板载 ESP 的 PWM 控制;
UART 模式拔掉 EN 后,ESP 关闭,电机控制也随之消失。
板子丝印是 v1.3.0-240315
请问是什么原因?
health status: good
timout count: 1
Failed to turn on the Lidar
在跟随bilibili鱼香ros学习4.4部分时,遇到了和老师情况不一致的问题,更改模型的代码被连续调用,导致两次识别都调用同一个模型,客户端警告显示参数未成功传达,下为日志内容:
客户端:
服务端:
dayuan-yang@PC:~/ros2_study/chap4/chap4_ws$ ros2 run demo_python_service face_detect_node [INFO] [1787124525.172487136] [face_detect]: 程序初始化中... [INFO] [1787124538.990148770] [face_detect]: model_->hog [INFO] [1787124538.993789954] [face_detect]: model_->cnn [INFO] [1787124539.006120170] [face_detect]: 程序初始化完成! [INFO] [1787124539.006555388] [face_detect]: 图像加载完成,开始识别... [INFO] [1787124561.032812079] [face_detect]: 图像识别完成,已输出 [INFO] [1787124561.034411347] [face_detect]: 程序初始化完成! [INFO] [1787124561.034775206] [face_detect]: 图像加载完成,开始识别... [INFO] [1787124583.208339303] [face_detect]: 图像识别完成,已输出我的客户端代码为:
from rclpy.node import Node from cv_bridge import CvBridge from rcl_interfaces.srv import SetParameters from chap4_interfaces.srv import FaceDetector from ament_index_python.packages import get_package_share_directory from rcl_interfaces.msg import Parameter, ParameterValue, ParameterType import os import cv2 import time import rclpy import face_recognition class FaceDetectClientNode(Node): def __init__(self, node_name): super().__init__(node_name) self.get_logger().info("程序初始化中...") self.bridge = CvBridge() self.default_image_path = os.path.join(get_package_share_directory('demo_python_service'), 'resource/test1.jpg') self.client_ = self.create_client(FaceDetector, "face_detect") self.image = cv2.imread(self.default_image_path) def call_set_parameters(self, parameters): """ 调用服务,更改参数 """ update_param = self.create_client(SetParameters, "/face_detect/set_parameters") while update_param.wait_for_service(timeout_sec=1.0) is False: self.get_logger().info("等待参数更新服务端上线...") request = SetParameters.Request() request.parameters = parameters future = update_param.call_async(request) rclpy.spin_until_future_complete(self, future) response = future.result() return response def update_detect_model(self, model = "hog"): """ 根据传入的model,构建Parameters,然后调用call_set_parameters更新服务端参数 """ param = Parameter() param.name = "model_" param_value = ParameterValue() param_value.string_value = model param_value.type = ParameterType.PARAMETER_STRING param.value = param_value response = self.call_set_parameters([param]) for result in response.results: self.get_logger().info(f"设置参数结果:{result.successful}{result.reason}") def send_request(self): while self.client_.wait_for_service(timeout_sec=1.0) is False: self.get_logger().info("等待服务端上线...") request = FaceDetector.Request() request.image = self.bridge.cv2_to_imgmsg(self.image) future = self.client_.call_async(request) # while not future.done(): # time.sleep(1.0) # rclpy.spin_until_future_complete(self, future) # response = future.result() # self.get_logger().info(f"接受到响应,共有{response.number}张人脸,耗时{response.use_time}s") def result_callback(result_future): response = result_future.result() self.get_logger().info(f"接受到响应,共有{response.number}张人脸,耗时{response.use_time}s") # self.show_response(response) future.add_done_callback(result_callback) def show_response(self, response): for i in range(response.number): top = response.top[i] right = response.right[i] bottom = response.bottom[i] left = response.left[i] cv2.rectangle(self.image, (left, top), (right, bottom), (255, 0, 0), 4) cv2.imshow("face_detect_result", self.image) def main(): rclpy.init() node = FaceDetectClientNode("face_detect") node.update_detect_model("hog") node.send_request() node.update_detect_model("cnn") node.send_request() rclpy.spin(node) rclpy.shutdown()服务端代码为:
from rclpy.node import Node from cv_bridge import CvBridge from chap4_interfaces.srv import FaceDetector from rcl_interfaces.msg import SetParametersResult from ament_index_python.packages import get_package_share_directory import os import cv2 import time import rclpy import face_recognition class FaceDetectNode(Node): def __init__(self, node_name): super().__init__(node_name) self.get_logger().info("程序初始化中...") self.service_ = self.create_service(FaceDetector, "face_detect", self.callback_face_detect) self.bridge = CvBridge() self.default_image_path = os.path.join(get_package_share_directory('demo_python_service'), 'resource/default.jpg') self.declare_parameter("number_of_times_to_upsample_", 1) self.declare_parameter("model_", "hog") self.number_of_times_to_upsample_ = self.get_parameter("number_of_times_to_upsample_").value self.model_ = self.get_parameter("model_").value self.add_on_set_parameters_callback(self.parameters_callback) def parameters_callback(self, parameters): for parameter in parameters: self.get_logger().info(f"{parameter.name}->{parameter.value}") if parameter.name == "number_of_times_to_upsample_": self.number_of_times_to_upsample_ = parameter.value if parameter.name == "model_": self.model_ = parameter.value return SetParametersResult(successful=True) def callback_face_detect(self, request, response): self.get_logger().info("程序初始化完成!") if request.image.data: cv_image = self.bridge.imgmsg_to_cv2(request.image) else: cv_image = cv2.imread(self.default_image_path) self.get_logger().warn("图像为空,加载默认图像") self.get_logger().info("图像加载完成,开始识别...") start_time = time.time() face_location = face_recognition.face_locations(cv_image, number_of_times_to_upsample=self.number_of_times_to_upsample_, model=self.model_) response.use_time = time.time() - start_time response.number = len(face_location) for top, right, bottom, left in face_location: cv2.rectangle(cv_image, (left, top), (right, bottom), (255, 0, 0), 4) response.top.append(top) response.right.append(right) response.bottom.append(bottom) response.left.append(left) self.get_logger().info("图像识别完成,已输出") return response def main(): rclpy.init() node = FaceDetectNode("face_detect") rclpy.spin(node) rclpy.shutdown()求助各位大佬,这是哪里出问题了
请问小鱼有没有二驱小车的模型文件呢?想在rviz中也看得见小车
a678bf47-955a-43c9-95eb-ae89574de198-1d26a4d77f59da7a2abb4cc1c0a83524.jpg
我安装好部件之后,我就发现没有对应的IP地址显示。所以我就按照步骤下载安装最新的1.8.2alpha版的固件,能够在配置助手上下载对应的固件,但是也没有显示对应的ip.
我使用的是鱼香B占上的机器人,自己在Gazebo中搭建的场景,但是建图总有问题。
截图 2026-08-09 10-54-52.png 截图 2026-08-09 10-55-43.png
移动雷达后,大约10s才能在rviz中看到相应的点云移动,查看话题发现频率只有1hz左右,这是什么原因造成的呢?
Ubuntu22.04 ros2 humble
在将Ubuntu安装到u盘时,烧录正常,进入BIOS选择U盘后,电脑一直显示logo界面,无法进入Ubuntu系统
急切求问 为啥代码都对显示不出机器人主体模型 一开始还能显示来着,后面跟着增添了一些代码再运行就这样了,显示不出机器人主体,只有tf坐标轴d17a669a-23ef-46a4-aae4-99185f31ee66.png
1.不要在 Jazzy 宿主机测试,改为在同一个 Humble 容器里测试。
2.把网络雷达驱动原生编译到 Jazzy,驱动、RViz 和建图节点就能正常通信。
随便哪个方法,这个思路给codex,让他去整。
rocessing featheresp32 (platform: espressif32; board: featheresp32; framework: arduino)
Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/featheresp32.html
PLATFORM: Espressif 32 (7.0.1) > Adafruit ESP32 Feather
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Installing importlib-resources with pip at PlatformIO environment
/home/wlz/.platformio/penv/bin/python -m pip install importlib-resources
Requirement already satisfied: importlib-resources in /home/wlz/.platformio/penv/lib/python3.10/site-packages (7.1.0)
Installing pyyaml with pip at PlatformIO environment
/home/wlz/.platformio/penv/bin/python -m pip install pyyaml
Requirement already satisfied: pyyaml in /home/wlz/.platformio/penv/lib/python3.10/site-packages (6.0.3)
Installing markupsafe==2.0.1 with pip at PlatformIO environment
/home/wlz/.platformio/penv/bin/python -m pip install markupsafe==2.0.1
Requirement already satisfied: markupsafe==2.0.1 in /home/wlz/.platformio/penv/lib/python3.10/site-packages (2.0.1)
Configuring featheresp32 with transport serial
Downloading micro-ROS dev dependencies
ament_cmake clone failed:
正克隆到 '/home/wlz/project/PIO/example14_custom_interface/.pio/libdeps/featheresp32/micro_ros_platformio/build/dev/src/ament_cmake'...
fatal: 无法访问 'http://github.fishros.org/https://github.com/ament/ament_cmake/':Failed to connect to github.fishros.org port 80 after 3610 ms: 没有到主机的路由
===================================== [FAILED] Took 4.84 seconds =====================================
版块
-
1.5k
主题5.2k
帖子 -
494
主题3.2k
帖子 -
70
主题265
帖子 -
1.2k
主题4.6k
帖子 -
1.1k
主题3.8k
帖子 -
5
主题11
帖子 -
367
主题1.7k
帖子