Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
子版块
基于ROS2的机器人导航框架 | 版主: @首飞Kevin
2
@741390353 老哥解决了吗,我现在也是这个问题,运行默认dwb时是正常启动的a154f2ad-23f7-4be4-9163-3ef78d39d7d6-image.png 但是运行teb后就跑不起来 fb14c5e7-2b06-4911-90a8-8803e4fa0419-image.png 我的ros2是humble版本
开源自动驾驶框架Autoware | 版主: @邢通
小
了解了,感谢感谢
尚无回复
@1010780098 <代1064598375> 可以先使用sudo apt-cache search diagnostics updater 在apt源里寻找同样名字的包 然后根据对应版本的包下载即可,我的是humble,可以用sudo apt install ros-humble-diagnostic-updater
@王涛 针对新的问题请发新的帖子提问哈,一个帖子只围绕一个问题讨论。
记住一句话——万物皆可字符串,无论什么数据都可以转换成string格式。
一个16进制数据可以用4个二进制组成,一个字节=8个二进制,所以任意两个16进制数据可以由一个字节组成,一个字节就是一个byte,也就是我们常见的char类型,而string=char[]+长度信息组成的。
随手找了一个,你可以参考:
8820e6e3-78e1-451c-9f6e-6ce67a12156d-image.png
589aaa46-362c-49b6-8a23-ac12d0ec9126-image.png
@847718956 这个并不是错误,无需解决,若需要添加证书,可以在指令后增加 --license 证书名称
另外请注意帖子要求哈
@小鱼 在 提问前必看!一定要看!必须看一下! 中说:
问题一定要描述清楚,终端打印一定复制粘贴
@744063846 可以在工作空间下使用git branch -a指令查看分支,默认的分支是humble版本的,感觉你是搞错了分支
@847718956 两个的确都差不多,QT目前就是QT5了,小版本差距不大,上面那三个软件是qt的,不是ros2的,ros2其实没有多少程序。
Z
@小鱼 好的鱼哥 我刚刚也才理解
@hsx257213 看到有conda,可以先退出来,另外下面的方案可以参考,除此之外注意代码对应的ROS2版本和你的ROS2的版本,别搞错了。
@空白 在 请问,colcon build闪退的原因是什么呢?有解决方法吗? 中说:
@hsx257213 如果正常情况下没有闪退,但是当编译大型功能包(例如在源码下载moveit之类的)使用colcon build不报错直接闪退,大概率是colcon build 默认最大线程,而电脑问题,需要在后面加上--parallel-workers NUMBER 将线程改小就行。例如 colcon build --parallel-workers 3
@hsx257213 如果正常情况下没有闪退,但是当编译大型功能包(例如在源码下载moveit之类的)使用colcon build不报错直接闪退,大概率是colcon build 默认最大线程,而电脑问题,需要在后面加上--parallel-workers NUMBER 将线程改小就行。例如
8
@小鱼 已解决 joint_states.name 导入的是.urdf中的Joint的名称,不是Link的名称
@大昊 请看下面文章
@小鱼 在 【方法分享】如何修复ROS2录制的Bag文件 中说:
大家好,我是爱吃鱼香ROS的小鱼,今天有位小伙伴再社区提问关于ROS2包如何修复的问题。 72a14de5-ed49-4319-8a39-8e4cf17ffa42-image.png 当我们录制一个ros2的bag时可以得到一个文件夹,文件夹里包含ROS2的功能包的sqlite3数据库文件,和一个配置文件`` 小鱼特地跑去测试了下,在最新的humble版本ROS2上,ros2 bag是支持一个叫做reindex的指令的,通过这个指令可以重建ROS2录制的功能包的metadata.yaml。 内容大概是下面这样 rosbag2_bagfile_information: version: 5 storage_identifier: sqlite3 duration: nanoseconds: 6546711316 starting_time: nanoseconds_since_epoch: 1667814329449907668 message_count: 29 topics_with_message_count: - topic_metadata: name: /chatter type: std_msgs/msg/String serialization_format: cdr offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 9223372036\n nsec: 854775807\n lifespan:\n sec: 9223372036\n nsec: 854775807\n liveliness: 1\n liveliness_lease_duration:\n sec: 9223372036\n nsec: 854775807\n avoid_ros_namespace_conventions: false" message_count: 7 - topic_metadata: name: /rosout type: rcl_interfaces/msg/Log serialization_format: cdr offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 1\n deadline:\n sec: 9223372036\n nsec: 854775807\n lifespan:\n sec: 10\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 9223372036\n nsec: 854775807\n avoid_ros_namespace_conventions: false" message_count: 22 compression_format: "" compression_mode: "" relative_file_paths: - rosbag2_2022_11_07-17_45_29_0.db3 files: [] 这个文件其实是对sqlite文件内容的描述,因为我们如果只看sqlite文件是没办法直观得到看到话题的信息的。 所以我们可以通过读取sqlite文件之后再生成这个描述文件,代价就是需要读取一次。 ROS2提供了这一个指令,你可以试一下,先随便录制一个包,然后把原有的metadata.yaml删掉,接着再文件夹的上一级进行重建metadata.yaml文件。 发布话题 ros2 run demo_nodes_py talke 录制包,打断并删除重建 ros2 bag record --all Ctrl+C # 删除文件 rm -rf rosbag2_2022_11_07-17_45_29/metadata.yaml # 重建索引 ros2 bag reindex rosbag2_2022_11_07-17_45_29/ sqlite3 这样你打开文件夹之后就会得到一个新的metadata.yaml文件了。
大家好,我是爱吃鱼香ROS的小鱼,今天有位小伙伴再社区提问关于ROS2包如何修复的问题。
72a14de5-ed49-4319-8a39-8e4cf17ffa42-image.png
当我们录制一个ros2的bag时可以得到一个文件夹,文件夹里包含ROS2的功能包的sqlite3数据库文件,和一个配置文件``
小鱼特地跑去测试了下,在最新的humble版本ROS2上,ros2 bag是支持一个叫做reindex的指令的,通过这个指令可以重建ROS2录制的功能包的metadata.yaml。
内容大概是下面这样
这个文件其实是对sqlite文件内容的描述,因为我们如果只看sqlite文件是没办法直观得到看到话题的信息的。
所以我们可以通过读取sqlite文件之后再生成这个描述文件,代价就是需要读取一次。
ROS2提供了这一个指令,你可以试一下,先随便录制一个包,然后把原有的metadata.yaml删掉,接着再文件夹的上一级进行重建metadata.yaml文件。
发布话题
录制包,打断并删除重建
这样你打开文件夹之后就会得到一个新的metadata.yaml文件了。
@1945073649 ros2+matlab https://ww2.mathworks.cn/help//ros/ros2-in-matlab.html
@neal-shen rqt应该是对参数类型的检测失败了,造成无法识别出参数是什么,你先source下 你的工作空间,接着你再去运行参数配置应该就可以了
@huangama98 docker是可以无视ubuntu版本的哈,卸载干净看看/opt/ros下没东西基本就可以了
@neal-shen 对,ROS2的C++时间机制和C++ chorno一致性很高,所以你可以 用下面的代码实现
不过需要注意的是,最好不要阻塞主线程,如果想实现延迟一段时间执行可以用ros2的timer定个时,接着在回调函数里把这个timer cancle掉,这样就可以实现延迟执行一次的功能。
@Bruce 好办法
@yyl573683368 这个一般情况是你的回调函数出现了阻塞造成的,如果不介意最好贴一下代码,我可以看下有没有问题
提供建议如下: