小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
动手学ros2第5章进阶篇-控制OLED-自定义消息接口
-
@小鱼 鱼哥,还是不行 ,
libmicroros
删除了,重新编译,终端打印编译过程没报错,也通过了,但是中间报这种影响吗?看
libmicroros
目录下也有那个fishbot_interfaces
了
执行
ros2 service call /oled_control fishbot_interfaces/srv/OledControl "{px: 0, py: 0, data: 'nihao'}"
报错还是之前这个:Traceback (most recent call last): File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_py/import_type_support_impl.py", line 46, in import_type_support return importlib.import_module(module_name, package=pkg_name) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked ModuleNotFoundError: No module named 'fishbot_interfaces.fishbot_interfaces_s__rosidl_typesupport_c' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/opt/ros/humble/bin/ros2", line 33, in <module> sys.exit(load_entry_point('ros2cli==0.18.7', 'console_scripts', 'ros2')()) File "/opt/ros/humble/lib/python3.10/site-packages/ros2cli/cli.py", line 89, in main rc = extension.main(parser=parser, args=args) File "/opt/ros/humble/lib/python3.10/site-packages/ros2service/command/service.py", line 41, in main return extension.main(args=args) File "/opt/ros/humble/lib/python3.10/site-packages/ros2service/verb/call.py", line 58, in main return requester( File "/opt/ros/humble/lib/python3.10/site-packages/ros2service/verb/call.py", line 86, in requester cli = node.create_client(srv_module, service_name) File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/node.py", line 1413, in create_client check_is_valid_srv_type(srv_type) File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/type_support.py", line 51, in check_is_valid_srv_type check_for_type_support(srv_type) File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/type_support.py", line 29, in check_for_type_support msg_or_srv_type.__class__.__import_type_support__() File "/home/nzb/vscode_project/cplus_demo/ros2_demo/chat13/example14_custom_interfaces/extra_packages/install/fishbot_interfaces/local/lib/python3.10/dist-packages/fishbot_interfaces/srv/_oled_control.py", line 303, in __import_type_support__ module = import_type_support('fishbot_interfaces') File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_py/import_type_support_impl.py", line 48, in import_type_support raise UnsupportedTypeSupport(pkg_name) rosidl_generator_py.import_type_support_impl.UnsupportedTypeSupport: Could not import 'rosidl_typesupport_c' for package 'fishbot_interfaces'
-
@842145248 在 动手学ros2第5章进阶篇-控制OLED-自定义消息接口 中说:
ros2 service call /oled_control fishbot_interfaces/srv/OledControl "{px: 0, py: 0, data: 'nihao'}"
真是奇怪了,你在extra_pkgs下依次运行下面的指令,把结果反馈出来看看
rm -rf build install log colcon build source install/setup.bash ros2 serivice list ros2 interface list | grep fishbot ros2 service call /oled_control fishbot_interfaces/srv/OledControl "{px: 0, py: 0, data: 'nihao'
-
@小鱼
rm -rf build install log && colcon build --packages-up-to fishbot_interfaces && source install/setup.bash
[0.467s] WARNING:colcon.colcon_ros.prefix_path.ament:The path '/home/nzb/vscode_project/cplus_demo/ros2_demo/chat13/example14_custom_interfaces/extra_packages/install/fishbot_interfaces' in the environment variable AMENT_PREFIX_PATH doesn't exist [0.468s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '/home/nzb/vscode_project/cplus_demo/ros2_demo/chat13/example14_custom_interfaces/extra_packages/install/fishbot_interfaces' in the environment variable CMAKE_PREFIX_PATH doesn't exist Starting >>> fishbot_interfaces Finished <<< fishbot_interfaces [5.13s] Summary: 1 package finished [5.37s]
ros2 service list && ros2 interface list | grep fish
/oled_control fishbot_interfaces/srv/OledControl
ros2 service call /oled_control fishbot_interfaces/srv/OledControl "{px: 0, py: 0, data: 'nihao'}"
Traceback (most recent call last): File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_py/import_type_support_impl.py", line 46, in import_type_support return importlib.import_module(module_name, package=pkg_name) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked ModuleNotFoundError: No module named 'fishbot_interfaces.fishbot_interfaces_s__rosidl_typesupport_c' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/opt/ros/humble/bin/ros2", line 33, in <module> sys.exit(load_entry_point('ros2cli==0.18.7', 'console_scripts', 'ros2')()) File "/opt/ros/humble/lib/python3.10/site-packages/ros2cli/cli.py", line 89, in main rc = extension.main(parser=parser, args=args) File "/opt/ros/humble/lib/python3.10/site-packages/ros2service/command/service.py", line 41, in main return extension.main(args=args) File "/opt/ros/humble/lib/python3.10/site-packages/ros2service/verb/call.py", line 58, in main return requester( File "/opt/ros/humble/lib/python3.10/site-packages/ros2service/verb/call.py", line 86, in requester cli = node.create_client(srv_module, service_name) File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/node.py", line 1413, in create_client check_is_valid_srv_type(srv_type) File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/type_support.py", line 51, in check_is_valid_srv_type check_for_type_support(srv_type) File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/type_support.py", line 29, in check_for_type_support msg_or_srv_type.__class__.__import_type_support__() File "/home/nzb/vscode_project/cplus_demo/ros2_demo/chat13/example14_custom_interfaces/extra_packages/install/fishbot_interfaces/local/lib/python3.10/dist-packages/fishbot_interfaces/srv/_oled_control.py", line 303, in __import_type_support__ module = import_type_support('fishbot_interfaces') File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_py/import_type_support_impl.py", line 48, in import_type_support raise UnsupportedTypeSupport(pkg_name) rosidl_generator_py.import_type_support_impl.UnsupportedTypeSupport: Could not import 'rosidl_typesupport_c' for package 'fishbot_interfaces'
-
-
@小鱼 一样的报错,那个是我测试加上的,刚刚我删了重新编译了下,还是上面报错 ,人都要麻了
-
@842145248 我环境跟教程一样的22.04,humble
-
@842145248 我在我这里测试了一下,没有问题:
测试指令:
cd ~ git clone git@github.com:fishros/example_micoros_board.git cd example_micoros_board/example14_custom_interface/extra_packages/ rm -rf build install log colcon build source install/setup.bash ros2 serivice list ros2 interface list | grep fishbot ros2 service call /oled_control fishbot_interfaces/srv/OledControl "{px: 0, py: 0, data: 'nihao'}"
-
-
@842145248 这demo也没啥什么环境变量影响啊,咋就不行了呢
-
@842145248 代码一样你的系统是多少的,不幸就换个系统试试
-
@小鱼
嗯嗯,我再找找看,非常感谢大佬的支持No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy Linux lenovo 5.15.0-82-generic #91-Ubuntu SMP Mon Aug 14 14:14:14 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
-
@小鱼
大佬,你电脑编完后的这个目录下的文件能截个图给我吗
extra_packages/install/fishbot_interfaces/local/lib/python3.10/dist-packages/fishbot_interfaces
-
fishros@fishros-linux:~/example_micoros_board/example14_custom_interface/extra_packages/install/fishbot_interfaces/local/lib/python3.10/dist-packages/fishbot_interfaces$ ll --- 总计 136 drwxr-xr-x 4 fishros fishros 4096 10月 14 16:44 ./ drwxrwxr-x 4 fishros fishros 4096 10月 14 16:44 ../ -rw-r--r-- 1 fishros fishros 11776 10月 14 16:44 _fishbot_interfaces_s.ep.rosidl_typesupport_c.c -rw-r--r-- 1 fishros fishros 11785 10月 14 16:44 _fishbot_interfaces_s.ep.rosidl_typesupport_fastrtps_c.c -rw-r--r-- 1 fishros fishros 11790 10月 14 16:44 _fishbot_interfaces_s.ep.rosidl_typesupport_introspection_c.c -rw-r--r-- 1 fishros fishros 17632 10月 14 16:44 fishbot_interfaces_s__rosidl_typesupport_c.cpython-310-x86_64-linux-gnu.so -rw-r--r-- 1 fishros fishros 17648 10月 14 16:44 fishbot_interfaces_s__rosidl_typesupport_fastrtps_c.cpython-310-x86_64-linux-gnu.so -rw-r--r-- 1 fishros fishros 17664 10月 14 16:44 fishbot_interfaces_s__rosidl_typesupport_introspection_c.cpython-310-x86_64-linux-gnu.so -rw-r--r-- 1 fishros fishros 0 10月 14 16:44 __init__.py -rw-r--r-- 1 fishros fishros 21392 10月 14 16:44 libfishbot_interfaces__rosidl_generator_py.so drwxrwxr-x 2 fishros fishros 4096 10月 14 16:44 __pycache__/ drwxr-xr-x 3 fishros fishros 4096 10月 14 16:44 srv/
-
果然,我编译出来的是
*cpython-36m-x86_64-*.so
大佬,你系统里面还有python3.6吗,我尝试卸载,卸不干净 ,为什么会编python3.6啊,humble明明自带的python3.10total 136 drwxr-xr-x 4 nzb nzb 4096 10月 15 13:40 ./ drwxrwxr-x 4 nzb nzb 4096 10月 15 13:40 ../ -rw-r--r-- 1 nzb nzb 11776 10月 15 13:40 _fishbot_interfaces_s.ep.rosidl_typesupport_c.c -rw-r--r-- 1 nzb nzb 11785 10月 15 13:40 _fishbot_interfaces_s.ep.rosidl_typesupport_fastrtps_c.c -rw-r--r-- 1 nzb nzb 11790 10月 15 13:40 _fishbot_interfaces_s.ep.rosidl_typesupport_introspection_c.c -rw-r--r-- 1 nzb nzb 17632 10月 15 13:40 fishbot_interfaces_s__rosidl_typesupport_c.cpython-36m-x86_64-linux-gnu.so -rw-r--r-- 1 nzb nzb 17648 10月 15 13:40 fishbot_interfaces_s__rosidl_typesupport_fastrtps_c.cpython-36m-x86_64-linux-gnu.so -rw-r--r-- 1 nzb nzb 17664 10月 15 13:40 fishbot_interfaces_s__rosidl_typesupport_introspection_c.cpython-36m-x86_64-linux-gnu.so -rw-r--r-- 1 nzb nzb 0 10月 15 13:40 __init__.py -rw-r--r-- 1 nzb nzb 21392 10月 15 13:40 libfishbot_interfaces__rosidl_generator_py.so drwxrwxr-x 2 nzb nzb 4096 10月 15 13:40 __pycache__/ drwxr-xr-x 3 nzb nzb 4096 10月 15 13:40 srv/
-
@842145248 python --verion 你的显示什么
python3 --version
-
@小鱼
显示的python3.10
刚刚我又卸载了一遍,卸载成功了,之前还剩个
python3.6-minimal
没卸载掉,显示的可执行文件是/usr/bin/python3.6m
, 疑惑我半天,卸载的时候没用通配符,我还以为系统自带的卸载不了。终于可以正常编译了跑起来了 ,非常感谢大佬的支持
-
-
@小鱼
编译一直是这个问题,不知道怎么解决 -
@1281857896 我抽空修改下库,ghproxy挂掉了
-
@小鱼 好嘞,感谢鱼哥