Open Rodhaaret opened 2 months ago
If you build rtabmap with OpenGV support, you could feed your 4 cameras to rgbd_odometry
like you did for rtabmap
node. This would result in more robust visual odometry.
To set rtabmap's parameters, you can do what you did:
parameters=[{
'Reg/Force3DoF':'true'
...
}],
You can do:
ros2 run rtabmap_odom rgbd_odometry --params
or
ros2 run rtabmap_slam rtabmap --params
to see parameters used by those nodes.
Otherwise, if you have questions on more specific parts you want to change/try, I could try to advise.
Argh nice the ros2 run rtabmap_odom rgbd_odometry --params
was exactly what i needed!
Okay that will be nice! Because we did experience some slight inconsistency when running it in localization mode. So i will try adding the following code to the rgbd_odom_node next time:
remappings=[
# Has to start from 0 and go up
("rgbd_image0", '/spot_camera_frontleft/rgbd_image'),
("rgbd_image1", '/spot_camera_frontright/rgbd_image'),
("rgbd_image2", '/spot_camera_left/rgbd_image'),
("rgbd_image3", '/spot_camera_right/rgbd_image'),
("odom", '/odometry')],
arguments=["--delete_db_on_start"],
prefix='',
namespace='rtabmap'
)
Thanks a lot. If you have any suggestion on how to make rtabmap run faster in localization mode it would be lovely. We are basicly just feeding the /obstacle topic and /map generated by rtabmap to topics used by Nav2. Though it is running a bit slow, especially for reliable obstacle avoidance. I should mention that it is running on a Intel Nuc with no GPU.
Our idea was to look into turn off unused parameter (eg. Octomap etc) to hopefully increase the speed. Maybe you have some suggestions how performance could be increased?
And again, thanks so much for the help!
Note that --delete_db_on_start
is used only by rtabmap
node.
a bit slow
How slow is it? if you can have frame rate statistics (ros2 topic hz ...
). In particular, what is the frame rate of the generated visual odometry topic? or the generated point clouds used for obstacle detection? Don't know the resolution of the depth images, but you may be able to increase even more the decimation from 4 to 8, which could be still enough for obstacle detection. For VO, you can use param Odom/ImageDecimation
to reduce size of the images, which may be handy if you combine 4 cameras.
For localization (rtabmap
node), you can increase default update rate of 1 Hz to something higher with Rtabmap/DetectionRate
parameter. You may also disable local grid generation by setting RGBD/CreateOccupancyGrid
to false. You can also save time on compression with Mem/BinDataKept
set to false.
For mapping, if you just want a 2D map, you may set Grid/3D
to false and Grid/RayTracing
to true. If you expect flat floor, you could set Grid/NormalsSegmentation
to false to use a fast passthrough filter directly (then you will need to set at least Grid/MaxGroundHeight
to segment the floor).
cheers, Mathieu
Hey everyone!
In short my problem is understanding:
Just to help you understand what im trying to do, my code is below. I'm then trying to turn things on and off to improve the performance.