Ask Your Question

ORB slam 2 base_link

asked 2021-05-10 04:50:39 -0600

Evan gravatar image

Hi ! I'm an Embedded Systems student and I need your help :) !

I want to test different 3D slam like RTABMap and ORB but I have clone this ORB slam 2 ros project and I want to fixe a problem.

My problem it's from ORB slam 2, it don't make the tf between base_link and camera_link of realsense d435i camera. When that problem will be fixed, I want to fused VO from ORB with IMU datas from d435i like rtabmap work.

Thanks for help !

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2021-05-18 06:56:56 -0600

Evan gravatar image

Thanks you to give me an answer ! ;) I have a handled camera (Realsense D435i) to test differents 3D SLAM and I have made the static transform between base_link and camera_link but at the begenning I think the algorithm don't work but now I think it's a problem of initialization.

Today I have that package on my Jetson and I have the good TF tree but at the initialization I start with translation and when I see a lot of datas I start to make rotation but it's really bad and i can see translation instead of roatation or sometimes the algorithm loose the position of the camera... On differents issues on git or ROS, I just see "It's an initialization problem" but I can't find solution. Do you know what is my problem or if it's "normal" ?

Thanks for help !

edit flag offensive delete link more


This question will depend a lot on the specific package that you're using. I'd encourage you to either open an issue on the specific package, if you feel previous issues haven't addressed your problem, or to ask a separate, more specific question here on ROS Answers.

In either case, include details that would help people understand your setup and answer your question (e.g. hardware, OS, ROS version, SLAM packages and their versions, characteristic log output, etc). Sharing a minimum reproduceable example (e.g. a small rosbag that causes the behavior in question) may also help.

shonigmann gravatar image shonigmann  ( 2021-05-18 10:14:30 -0600 )edit

answered 2021-05-10 12:32:13 -0600

shonigmann gravatar image

updated 2021-05-11 13:14:35 -0600

I encourage you to read up on ROS's transform specifications here to get more context on the topic. The tf between base_link and camera_link depends on your specific hardware. For most robots, this tranformation is static and can be defined in several ways. The most common is to have a URDF file for your robot that defines a joint (or series of joints) between the robot's base_link and the camera_link. With a properly defined URDF file, you can then spin up robot_state_publisher to publish that transformation. Note that you can find URDF files for the Intel Realsense Cameras, and you would simply need to add a base_link and define a joint between it and camera_link.

Alternatively, depending on the complexity of your system (e.g. if you are just running SLAM on a handheld camera), you may find it faster to simply publish a static transform between the base_link and camera_link. E.g. the following would simply publish a transform saying that camera_link and base_link are the same frame:

<node pkg="tf" type="static_transform_publisher" name="link1_broadcaster" args="0 0 0 0 0 0 1 base_link camera_link 100" />

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2021-05-10 04:50:39 -0600

Seen: 173 times

Last updated: May 18 '21