rviz2中gazebo在ros2下的gazebo的点云数据显示。

背景:在gazebo的xacro文件中定义的depth_camera,还是用 ament_cmake编译的,我一个刚接触不到一个月的小白,在报错的时候,只能在网上一顿搜尝试,借助网络来连接亲人们的智慧。

报错信息:gazebo下的构建的world, ros2下定义的xacro文件,rviz2中一运行,显示不出来点云数据,并且控制台一直不断报下面这个错误。

[rviz2-2] [INFO] [1689150328.566431476] [rviz]: Message Filter dropping message: frame 'camera_link_optical' at time 8412.535 for reason 'discarding message because the queue is full'

目录

第1步:查看主题发布情况

第2步:查看rqt_graph和rqt_console

查查rqt_graph

查查rqt_console

第3步:查看frame_id的名称,并将两个坐标系对上。

 第4步:更改坐标系里面的数值,正确显示结果。

 第5步:第3步后 ,通过更改rviz2里面的Grid参数也能正确显示结果。


解决办法参考(我同事发给我的):

上网上搜 的 :【转载】Realsense2深度相机的基本操作命令_惊涛骇浪前行的博客-CSDN博客

解决途径:

第1步:查看主题发布情况

ros2 topic list -t
/bt_navigator/transition_event [lifecycle_msgs/msg/TransitionEvent]
/camera/camera_info [sensor_msgs/msg/CameraInfo]
/camera/depth/camera_info [sensor_msgs/msg/CameraInfo]
/camera/depth/image_raw [sensor_msgs/msg/Image]
/camera/image_raw [sensor_msgs/msg/Image]
/camera/points [sensor_msgs/msg/PointCloud2]  <---点云数据
/clock [rosgraph_msgs/msg/Clock]......
ros2 topic bw /camera/points
Subscribed to [/camera/points]
36.03 MB/s from 3 messages
	Message size mean: 9.83 MB min: 9.83 MB max: 9.83 MB
......
ros2 topic hz /camera/points
average rate: 1.129
	min: 0.877s max: 0.897s std dev: 0.00871s window: 3
......
ros2 topic echo /camera/points

header:

  stamp:
    sec: 55679
    nanosec: 727000000
  frame_id: camera_link_optical
height: 1
width: 307200
fields:
- name: x
  offset: 0
  datatype: 7
......
ros2 topic info /camera/points

 Type: sensor_msgs/msg/PointCloud2

Publisher count: 1
Subscription count: 1

我哐哐一顿搜,发现,主题里面的点云信息发出来了,并且rviz2软件add -> topic 后 ,它也订阅了,没办法,就接着查吧

第2步:查看rqt_graph和rqt_console

# install rqt_*
sudo apt install ~nros-galactic-rqt*

查查rqt_graph

rqt_graph

 看着没啥毛病,主要是我也没看懂。

查查rqt_console

ros2 run rqt_console rqt_console

还是一无所获。 接着按着参考的链接里面查

第3步:查看frame_id的名称,并将两个坐标系对上。

我查了这个报错的,很多回答都指向rviz2的坐标系没对上导致显示不出来。

frame_id,相机的坐标系

map, 世界坐标系

# static_transform_publisher x y z yaw pitch roll frame_id child_frame_id 
# 用坐标表示平移,用欧拉角表示旋转
ros2 run tf2_ros static_transform_publisher "0" "0" "0" "0" "0" "0" "map" "camera_link_optical"

然后重新启动rviz2, 点云显示出来拉,但是它这图立立着。

ros2 launch ultralytics_ros2 yolov8.launch.py

 第4步:更改坐标系里面的数值,正确显示结果。

 

<origin xyz="0 0 0" rpy="0 0 ${-pi/2}"/>

我只在xxx.xacro文件里搜“camera“的关键字;搜到跟角度的看上去很有关的数据,改改试试:

ros2 run tf2_ros static_transform_publisher "0" "0" "0" "0" "0" "-1.57" "map" "camera_link_optical" 

 成功了。

 第5步:第3步后 ,通过更改rviz2里面的Grid参数也能正确显示结果。

 按着鼠标可以在图画里一顿转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值