Giter Club home page Giter Club logo

Comments (8)

GeorgUr avatar GeorgUr commented on July 17, 2024 2

I had the same issue. The problem was that the datatype of the received msg was a uint8_t instead of a uint16_t as expected.
Check the datatype of your msg PointField Message.
In your case the ring msg is a uint32_t.

You can resolve that issue by editing the lines 12 and 18 to the datatype in your msg:

struct PointXYZIR
{
PCL_ADD_POINT4D;
float intensity;
uint16_t ring;
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
} EIGEN_ALIGN16;
} // namespace pcl
POINT_CLOUD_REGISTER_POINT_STRUCT(PointXYZIR, (float, x, x)(float, y, y)(float, z, z)(float, intensity,
intensity)(uint16_t, ring, ring))

from cam_lidar_calibration.

shreyashpalande avatar shreyashpalande commented on July 17, 2024 1

@ogamache Your Point cloud structure seems to be different from the one used in this repository. It does not have time field. Your error might be because of mismatch in datastructure. I assume you have PointXYZIRT from velodyne point_types but this repository has ommited the time field and only has PointXYZIR . Remapping PointXYZIRT to PointXYZIR might help.

namespace pcl
{
struct PointXYZIR
{
PCL_ADD_POINT4D;
float intensity;
uint16_t ring;
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
} EIGEN_ALIGN16;
} // namespace pcl
POINT_CLOUD_REGISTER_POINT_STRUCT(PointXYZIR, (float, x, x)(float, y, y)(float, z, z)(float, intensity,
intensity)(uint16_t, ring, ring))

from cam_lidar_calibration.

darrenjkt avatar darrenjkt commented on July 17, 2024

Can you copy-paste the specific error?

Just an additional check, is your pointcloud of the type sensor_msgs/PointCloud2? You can also double check that it's publishing a ring field. E.g. for velodyne vlp-16 I would type where /velodyne/front/points is the lidar topic: rostopic echo /velodyne/front/points/fields

Looks like this for me:

- 
  name: "x"
  offset: 0
  datatype: 7
  count: 1
- 
  name: "y"
  offset: 4
  datatype: 7
  count: 1
- 
  name: "z"
  offset: 8
  datatype: 7
  count: 1
- 
  name: "intensity"
  offset: 16
  datatype: 7
  count: 1
- 
  name: "ring"
  offset: 20
  datatype: 4
  count: 1

from cam_lidar_calibration.

ogamache avatar ogamache commented on July 17, 2024

Thank you for the answer!

I don't have my setup for now, but I will try soon and keep you posted.

I also was wondering, I don't know if the error can be from that but I am not used to work with Docker, is there something I need to do related to it when I start the calibration?
Or the docker just installed stuffs and now I just need to run: roslaunch cam_lidar_calibration run_optimiser.launch import_samples:=false?

from cam_lidar_calibration.

darrenjkt avatar darrenjkt commented on July 17, 2024

Docker is a self-contained environment that has all the dependencies required for this package. When you run the docker image it'll automatically build the package for you. Then all you have to do is edit the params.yaml with your specific topics and run roslaunch cam_lidar_calibration run_optimiser.launch

from cam_lidar_calibration.

ogamache avatar ogamache commented on July 17, 2024

Here is the error message:

process[feature_extraction-1]: started with pid [9911]
process[rviz-2]: started with pid [9912]
process[rqt_reconfigure-3]: started with pid [9913]
[ INFO] [1631289887.310819510]: Input parameters loaded
[ INFO] [1631289887.614885896]: Reconfigure Request: -10.000000 10.000000 -8.000000 8.000000 -5.000000 5.000000
[ INFO] [1631289892.698536899]: Finished init cam_lidar_calibration
Failed to find match for field 'ring'.

and I just verified and I have the same output as you:

fields:
  -
    name: "x"
    offset: 0
    datatype: 7
    count: 1
  -
    name: "y"
    offset: 4
    datatype: 7
    count: 1
  -
    name: "z"
    offset: 8
    datatype: 7
    count: 1
  -
    name: "intensity"
    offset: 12
    datatype: 7
    count: 1
  -
    name: "t"
    offset: 16
    datatype: 6
    count: 1
  -
    name: "ring"
    offset: 20
    datatype: 6
    count: 1

Also, my pointcloud's type is sensor_msgs/PointCloud2

Do you have another idea what could cause this error?

For the Docker, that means that the docker is only used for the installation of the package? After that, you can go directly with the launch file, right?

Thanks a lot!

from cam_lidar_calibration.

darrenjkt avatar darrenjkt commented on July 17, 2024

Could you send over a bag file? I can try to take a look at the data on my end.

You can think of docker as an isolated environment where all the dependencies for the calibration package are installed. You don't need to install anything on your own computer (besides docker of course). Once you enter the container, you can run the launch file the package from within the docker container and it should work automatically.

from cam_lidar_calibration.

ogamache avatar ogamache commented on July 17, 2024

Thanks for the information about docker, it is clearer for me now!

Here is a link to a bagfile that I did. (It's not the best test, but I am in a deployment right now so I don't have access to my material)

I was able to see my camera image into your rviz, but the point clouds from chessboard and experimental_region never appeared..! (I have put my /tf into the bagfile). Maybe it is because of the failed to find 'ring' error.

https://drive.google.com/file/d/1lhIOTz7QrgWsKO2wNz3332LEnzvhUgme/view?usp=sharing

Thanks and tell me if you need something else!

from cam_lidar_calibration.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.