Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to integrate this module with real system. #2

Open
ajay1606 opened this issue Apr 2, 2020 · 4 comments
Open

How to integrate this module with real system. #2

ajay1606 opened this issue Apr 2, 2020 · 4 comments

Comments

@ajay1606
Copy link

ajay1606 commented Apr 2, 2020

@diegoavillegasg Thanks for the very useful source scripts with detailed comments.
I have a few quick questions regarding, data types of LiDAR and GPS IMU sensor used in this pickle file. In the comment description, it is mentioned that, actual data but unable to get the actual data types to input into the method.

Could you kindly provide me little more details about IMU,GNSS and LIDAR data input in raw data formats.

@diegoavillegasg
Copy link
Owner

Hi @ajay1606 , thank you for asking.

The pickle contains in a binary form a dictionary with 4 StampedData objects and 1 Data object with the following keys:

with open('data/pt1_data.pkl', 'rb') as file: 
   ...:     print("Using the following raw data: ", file.name) 
   ...:     data = pickle.load(file) 
data.keys()
dict_keys(['imu_w', 'imu_f', 'gnss', 'lidar', 'gt'])

StampedData class is defined in /data/utils.py, whereas
Data class is defined in /data/data.py

where:
> imu_w : it's the imu rotational velocity (given in the vehicle frame)
> imu_f : it's the imu specific force data (given in vehicle frame).
> gnss : GNSS data.
> lidar : it's the Lidar data previously converted to positions only (after doing a mapping and ego-localization step)
> gt : it's a Data object containing ground truth.

In this way you can get the raw data

data['imu_w'].data[0]                              
array([-0.00247717, -0.06861742,  0.08961386]) # in [rad/s]

data['imu_f'].data[0]                                                          
array([-0.01996148,  0.03136036,  9.78135591]) # in [m/s^2]

data['gnss'].data[12]
array([68.63192948, 26.96739014,  0.10098256]) # lat, long and altitude

data['lidar'].data[12]                                                         
array([ 0.39913648, -0.02572134, -0.5827075 ]) # in meters

Here you can find more details info about sensor in Carla Simulator:
https://carla.readthedocs.io/en/latest/ref_sensors/#gnss-sensor

Please, let me know if it solved your question!

(from the description given by the Coursera SDC mentors and collaborators, like Trevor Ablett and Jonathan Kelly)

@ajay1606
Copy link
Author

ajay1606 commented Apr 4, 2020

@diegoavillegasg Thanks a lot for a detailed explanation. Really appreciate it.

@ajay1606
Copy link
Author

ajay1606 commented Apr 13, 2020

@diegoavillegasg Could you please give me clarification on this. ?

  1. Question

imu_w : it's the imu rotational velocity (given in the vehicle frame)
imu_f : it's the imu specific force data (given in vehicle frame).

Are the above-mentioned parameters are the same that, Angular velocity and Linear accelerations?

  1. Question:
    GroundTruthAndEstimatedTrajectory

By the way, with trajectory plotted using sample data provided with this package, looks quite noisy, I mean EKF predicted trajectory too noisy compared to GT. What could be the reason for this?
My guess

  1. Covariance matrix
  2. Extrinsic parameters between the sensors?

could you please comment on this !

@ajay1606
Copy link
Author

ajay1606 commented Apr 14, 2020

@diegoavillegasg Actually am trying to test with LGSVL simulator with Autoware localization output recorded in the bag file is as follows.
LiDAR topic: /ndt_pose
header:
seq: 1181
stamp:
secs: 1586413606
nsecs: 42914560
frame_id: "/map"
pose:
position:
x: 218.45111084
y: 201.877670288
z: 10.4493160248

orientation:
x: 0.000352217090688
y: 0.000392276372959
z: 0.999999861008
w: 6.7813633464e-06

GNSS topic: /odom
header:
seq: 22
stamp:
secs: 1586413606
nsecs: 572914176
frame_id: "gps"
child_frame_id: ''
pose:
pose:
position:
x: -217.719894
y: 201.878997803
z: 10.1301298141

orientation:
x: -0.000125643069623
y: -0.707106888294
z: -0.000125829130411
w: 0.707106649876
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
twist:
twist:
linear:
x: 4.51865616924e-07
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 2.05273775755e-09
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

IMU topic : /imu_raw
header:
seq: 12096
stamp:
secs: 1586413606
nsecs: 972913664
frame_id: "imu"
orientation:
x: 0.000125986451167
y: 0.000125759470393
z: 0.707106769085
w: 0.707106769085
orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity:
x: 2.5880042358e-06
y: -5.91429898122e-06
z: -2.00730432276e-09

angular_velocity_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
linear_acceleration:
x: 0.0035758598242
y: -0.000114643706183
z: 9.81069660187

linear_acceleration_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

I am looking to fuse the data highlighted in the bold font.
Will, it possible to share the script to convert the bag to pickle file format to use with your EKF package? It will be more helpful. Looking forward to hearing from you.

kind regards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants