同一个ROS2包,改了启动方式就不行了
想问问论坛里的各位大佬,最近在参加一个全国大学生光电设计竞赛,做一个车,有激光雷达,云台和摄像头,上位打算用树莓派做处理,下面用stm32做电机的控制,雷达那边可能需要用到ROS,本来打算用ROS1,但是目前的树莓派5和ubuntu24只支持ROS2,现在树莓派5上安装了ubunt24.04,并且安装了ROS2的Jazzy,本人以前都是在做MCU的开发,最近被安排做这一部分,希望高手指点一下学习路径和需要具备的能力。
目前只需要激光雷达捕捉到对方车的位置,树莓派完成数据处理,再传给下面的stm32和上面的云台就行
同一个ROS2包,改了启动方式就不行了
--2025-06-13 17:11:27-- http://fishros.com/install
正在解析主机 fishros.com (fishros.com)... 47.119.165.169
正在连接 fishros.com (fishros.com)|47.119.165.169|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 301 Moved Permanently
位置:http://fishros.com/install/ [跟随至新的 URL]
--2025-06-13 17:11:27-- http://fishros.com/install/
再次使用存在的到 fishros.com:80 的连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 960 [application/octet-stream]
正在保存至: “fishros”
fishros 100%[=========================>] 960 --.-KB/s 用时 0s
2025-06-13 17:11:27 (461 MB/s) - 已保存 “fishros” [960/960])
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
python3-distro 已经是最新版 (1.4.0-1)。
python3-yaml 已经是最新版 (5.3.1-1ubuntu0.1)。
下列软件包是自动安装的并且现在不需要了:
libreadline5
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 418 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
解压缩后会消耗 0 B 的额外空间。
正在设置 mercurial (5.3.1-1ubuntu1) ...
dpkg: 处理软件包 mercurial (--configure)时出错:
已安装 mercurial 软件包 post-installation 脚本 子进程返回错误状态 10
在处理时有错误发生:
mercurial
E: Sub-process /usr/bin/dpkg returned an error code (1)
--2025-06-13 17:11:30-- http://mirror.fishros.com/install/tools/base.py
正在解析主机 mirror.fishros.com (mirror.fishros.com)... 47.119.165.169
正在连接 mirror.fishros.com (mirror.fishros.com)|47.119.165.169|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 51464 (50K) [application/octet-stream]
正在保存至: “/tmp/fishinstall//tools/base.py”
/tmp/fishinstall//too 100%[=========================>] 50.26K --.-KB/s 用时 0.05s
2025-06-13 17:11:30 (942 KB/s) - 已保存 “/tmp/fishinstall//tools/base.py” [51464/51464])
WARN:No Yaml Module!
检测到程序发生异常退出,请打开:https://fishros.org.cn/forum 携带如下内容进行反馈
标题:使用一键安装过程中遇到程序崩溃
Traceback (most recent call last): File "/tmp/fishinstall/install.py", line 134, in <module> main() File "/tmp/fishinstall/install.py", line 60, in main from tools.base import CmdTask,FileUtils,PrintUtils,ChooseTask,ChooseWithCategoriesTask,Tracking File "/tmp/fishinstall/tools/base.py", line 782, in <module> osversion = GetOsVersion() File "/tmp/fishinstall/tools/base.py", line 112, in GetOsVersion import distro ModuleNotFoundError: No module named 'distro'本次运行详细日志文件已保存至 /tmp/fishros_install.log
一键安装失败.png
所使用的是ROS2的humble版本,所导出的stl文件已能在rviz中显示,但无法在gazebo中显示,通过rqt的/spawn_entity进行导入,导入失败,有什么方法能导入stl文件吗截图 2025-06-13 11-33-10.png
使用功能包组织节点的时候报错importlib.metadata.PackageNotFoundError: No package metadata was found for demo-python
使用python编写launch文件来启动节点,构建成功后运行报错。
launch文件如下:
d1f38065-6fe6-412d-b4c8-0dab69748313-image.png
添加拷贝代码如下:
7242bf4d-9327-47f6-be35-4f3ce6f1980d-image.png
launch文件已成功拷贝到install中的对应位置
报错日志如下:
dd15b351-f4fc-4caa-a49f-198155b40785-image.png
6d4306c9-47e9-414c-92bc-fe6a9067a7c7-image.png
求大神帮助,万分感谢!
humble
问题描述我用colcon build编译了一个功能包,怎么能把这个功能包直接移植到其他电脑上。肯定是有各种依赖库问题,但是这块正常来说应该怎么做?完全不了解,可否请各位老师指点一下。
Traceback (most recent call last):
File "/home/ros/chapt2_3/chapt2_3_ws/install/demo_python_pkg/lib/demo_python_pkg/writer_node", line 33, in <module>
sys.exit(load_entry_point('demo-python-pkg==0.0.0', 'console_scripts', 'writer_node')())
File "/home/ros/chapt2_3/chapt2_3_ws/install/demo_python_pkg/lib/python3.10/site-packages/demo_python_pkg/writer_node.py", line 10, in main
node = WriterNode('法外狂徒张三', 18, '论快速入狱')
File "/home/ros/chapt2_3/chapt2_3_ws/install/demo_python_pkg/lib/python3.10/site-packages/demo_python_pkg/writer_node.py", line 5, in init
super().init(name, age)
TypeError: PersonNode.init() missing 1 required positional argument: 'age'
[在这里描述你要实现什么,也许有更好的方案]
问题描述:colcon build;ros@ros-VirtualBox:~/chapt2_3/chapt2_3_ws$ source install/setup.bash
ros@ros-VirtualBox:~/chapt2_3/chapt2_3_ws$ ros2 run demo_python_pkg writer_node
Traceback (most recent call last):
File "/home/ros/chapt2_3/chapt2_3_ws/install/demo_python_pkg/lib/demo_python_pkg/writer_node", line 33, in <module>
sys.exit(load_entry_point('demo-python-pkg==0.0.0', 'console_scripts', 'writer_node')())
File "/home/ros/chapt2_3/chapt2_3_ws/install/demo_python_pkg/lib/python3.10/site-packages/demo_python_pkg/writer_node.py", line 10, in main
node = WriterNode('法外狂徒张三', 18, '论快速入狱')
File "/home/ros/chapt2_3/chapt2_3_ws/install/demo_python_pkg/lib/python3.10/site-packages/demo_python_pkg/writer_node.py", line 5, in init
super().init(name, age)
TypeError: PersonNode.init() missing 1 required positional argument: 'age'
person.py代码
import rclpy
from rclpy.node import Node
class PersonNode(Node):
def init(self, node_name: str, name: str, age: int) -> None:
super().init(node_name)
self.age = age
self.name = name
def main():
rclpy.init()
node = PersonNode('person_node', '法外狂徒张三', '18')
node.eat('鱼香肉丝')
rclpy.spin(node)
rclpy.shutdown()
writer_node.py代码
from demo_python_pkg.person_node import PersonNode
class WriterNode(PersonNode):
def init(self, name: str, age: int, book: str) -> None:
super().init(name, age)
print('WriterNode 的 init 函数被调用了')
self.book = book
def main():
node = WriterNode('法外狂徒张三', 18, '论快速入狱')
node.eat('鱼香肉丝')
setup.py
entry_points={
'console_scripts': [
'python_node = demo_python_pkg.python_node:main',
'person_node = demo_python_pkg.person_node:main',
'writer_node = demo_python_pkg.writer_node:main',
],
},
目录展示
2ac34ae9-5fa0-4be8-aab0-07052c7e7894-image.png
f78ae182-8f7e-4157-a970-153b31c8345a-image.png
972882a2-04b7-4715-96ee-5237cf76bc17-image.png
尝试过的解决方法:问了deepseek,按照他的修改,但是显示新的错误,进行修改,继续报错
设置了超声波层,在实际使用的时候,不能及时更新,还会在车体附件生成障碍物
f5caaaac-8b7f-467e-9aed-2b5b0439281b-image.png
9b736012-9d0e-49ea-aad3-f3f6c4ef9d8b-image.png
我使用的参数如下:
sudo apt-get install ros-humble-ros-numpy
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
E: 无法定位软件包 ros-humble-ros-numpy
出现这个问题 不知道如何解决
😠
使用ros2_control控制铰接车运动,最后想导入navigation2框架里面,无法建立连接
截图 2025-06-11 14-24-09.png
截图 2025-06-11 14-19-07.png
截图 2025-06-11 14-21-49.png
556e69cf-55af-4475-9670-3971e778825c-ec42787c8738f70cd8be06b7f1b91c94.jpg
老师,这里路径错误怎么解决,然后我问下执行相关程序的步骤是什么,我colcon build构建他说没有找到相关指令
各位大佬,ros2-humble中如何添加libgazebo_ros_range插件,以仿真超声测距数据。apt安装的插件里没有这个插件,插件源码里ros2版本也没有这个插件的源码。
回复: [FishBot教程]9.0.7. FishBot-Nav2导航测试
ros2 humble
按照历程一路走下来。完成slam建图部分。
终端输入
在rviz2中用鼠标2D pose estimation无法出现扫描,代价地图等信息。
求鱼哥帮帮忙
Traceback (most recent call last):
File "/home/ros/chapt2_2/chapt2_2_ws/install/demo_python_pkg/lib/demo_python_pkg/human_node", line 33, in <module>
sys.exit(load_entry_point('demo-python-pkg==0.0.0', 'console_scripts', 'human_node')())
File "/home/ros/chapt2_2/chapt2_2_ws/install/demo_python_pkg/lib/demo_python_pkg/human_node", line 25, in importlib_load_entry_point
return next(matches).load()
File "/usr/lib/python3.10/importlib/metadata/init.py", line 173, in load
return functools.reduce(getattr, attrs, module)
AttributeError: module 'demo_python_pkg.human_node' has no attribute 'main'
[ros2run]: Process exited with failure 1
打印法外狂徒张三18岁爱吃鱼香肉丝
问题描述:colcon build 可以看到有可执行文件human_node
dcdabe18-7592-4232-a5c5-50ad79447b09-e7b86163b9b0c47ecaff81602f532b9.png
source install/setup.bash
ros2 run demo_python_pkg human_node这一步失败了,好几次;
setup.py的内容
da8477af-1ebf-4338-8e9e-e0334d205139-b9ac2443f48f957d95c95b28b7cb584.png
human_node.py的内容
2f60d867-6466-47c7-b975-c9a7902fc449-f78c2db80d27f6b6ae36568818e1c03.png
直接把Traceback (most recent call last):
File "/home/ros/chapt2_2/chapt2_2_ws/install/demo_python_pkg/lib/demo_python_pkg/human_node", line 33, in <module>
sys.exit(load_entry_point('demo-python-pkg==0.0.0', 'console_scripts', 'human_node')())
File "/home/ros/chapt2_2/chapt2_2_ws/install/demo_python_pkg/lib/demo_python_pkg/human_node", line 25, in importlib_load_entry_point
return next(matches).load()
File "/usr/lib/python3.10/importlib/metadata/init.py", line 173, in load
return functools.reduce(getattr, attrs, module)
AttributeError: module 'demo_python_pkg.human_node' has no attribute 'main'
[ros2run]: Process exited with failure 1
复制搜索答案,没看懂
小鱼,有没有安装安装ros1的Melodic的视频教程
版块
-
1.3k
主题4.8k
帖子 -
434
主题2.9k
帖子 -
57
主题237
帖子 -
1.0k
主题4.2k
帖子 -
987
主题3.6k
帖子 -
5
主题11
帖子 -
356
主题1.6k
帖子