IntelRealSense / librealsense

Intel® RealSense™ SDK
https://www.intelrealsense.com/
Apache License 2.0
7.56k stars 4.82k forks source link

T265 API with wheel odometry error and Integration with wheel odom is failed #6129

Open Geonhee-LEE opened 4 years ago

Geonhee-LEE commented 4 years ago

Required Info
Camera Model T265
Firmware Version 0.2.0.926
Operating System & Version Linux 16
Kernel Version (Linux Only) 4.15.0
Platform PC
SDK Version 2.33.1
Language C/python
Segment Robot

Issue Description

Hello, I'm using T265 for integrating with a mobile robot. I have been searching many materials and videos for T265, but I have some problems. Please to reply for my fault. thanks.

First of all, my goal will achieve nice odometry using T265. According to description, I should integrate with wheel odometry. When I referred the many things following:

It isn't helpful for me, calibration json file only describes the fixed coordinate which mobile robot forward direction is z(don't have another examples). But, my robot odometry direction is x(red). In this case, how to set the calibration odometry file? When I followed the TF convention in the ROS, it seems like fail..

Second, I could run examples of librealsense without t265_wheel_odometry.py of t265_wheel_odometry folder. Anybody run this python file? I found that the 46 line occur error in the t265_wheel_odometry.py

Traceback (most recent call last): File "t265_wheel_odometry.py", line 46, in <module> pipe.start() RuntimeError: No device connected I already connected the T265 camera and successfully ran another examples.

Third, USB connection error sometimes occurs..

[ERROR] [1584930529.500434444]: The requested device with device name containing t265 is NOT found. Will Try again.

I know the usb port must support enough power because I referred the datasheet. But, I used the USB port which can support 10W more. What is the problem? Can I solve it?

Finally, why T265 imu topic doesn't exist orientation value? T265 imu topic just has accelerate values. In order to fuse the filter, I need orientation values.

Thank you. Please understand my bad English skill.

neilyoung commented 4 years ago

You should start with the essentials first. Then you might think about wheel odometry (what nobody needs, IMHO). I would suggest you to try my solution first https://neilyoung.serveblog.net/

I know the usb port must support enough power because I referred the datasheet. But, I used the USB port which can support 10W more. What is the problem? Can I solve it?

The power consumption on a 5 V supply is about 150 mW.

EDIT: This number is wrong. It's about 1.5 W

Traceback (most recent call last): File "t265_wheel_odometry.py", line 46, in pipe.start() RuntimeError: No device connected

This is also sometimes the response to a crashed device. In that case only a power cycle of the Camera helps.

Finally, why T265 imu topic doesn't exist orientation value? T265 imu topic just has accelerate values. In order to fuse the filter, I need orientation values.

What do you mean by that? The T265 delivers orientation by providing translation and rotation. What are you missing?

Geonhee-LEE commented 4 years ago

@neilyoung Hello, thanks to your reply.

I entered the your GIthub repo, any python file doesn't exist. Can you share me with your code? Anyway, your blog is really arranged well, thanks.

I know the T265 needs about 2W at least. My on-board PC can supply power more than 2W , but it isn't worked strangely.

I mean T265 IMU ros topic don't include orientation value and only include velocity and acceleration value.So as your recommendation, can I use only odom topic which is provided translation and rotation to use orientation?

Thanks


Edited

I found your code in the release. Did you integrate with wheel odom or run t265_wheel_odometry.py file?

neilyoung commented 4 years ago

The code is in the release section. Current release is 0.6.0.

Regarding power consumption: My number is wrong. Intel claims 1.5 W and I recall I could confirm this while measuring. Sorry for the confusion.

I'm not sure what you are looking for, but for me translation and rotation perfectly describe the orientation and position of a body in a reference frame

lbxxdi commented 4 years ago

Hi @Geonhee-LEE

I found this error too. and fixed by

Insert cfg.enable_stream(rs.stream.pose) Below cfg = rs.config()

And change pipe.start() to pipe.start(cfg)