+
Skip to content

LaserScan points rotate with the robot #640

@isnotefeifei

Description

@isnotefeifei

Description
When my robot undergoes translation or rotation, the radar point cloud also experiences translation or rotation, which is particularly noticeable during rotations,When the robot comes to a standstill, the radar point cloud returns to its normal state.
My understanding is that the tfclient performs coordinate transformations, affecting the translation and rotation of a 3D object, which in turn impacts the points within the object. When a new radar point cloud frame hasn't been rendered yet, the old point cloud frame is shifted due to the object's rotation and translation. Is there a way to synchronously subscribe to both the radar topic message and the tf topic message, ensuring that radar messages correspond correctly to tf messages? Alternatively, can the radar point cloud remain stationary during TF transformations of the object?

  • Library Version:ros3djs
  • ROS Version:melodic
  • Platform / OS:ubuntu

Steps To Reproduce

            this.tfClient = new ROSLIB.TFClient({
                                ros : this.globalData.ros,
                                fixedFrame :'/map',
                                angularThres : 0.01,
                                transThres : 0.01,
                                rate : 10.0
                            })
            
            this.viewer = new ROS3D.Viewer({
                    divID: 'map',
                    width: 750,
                    height: 750,
                    antialias: true,
                });
            this.laserclient = new ROS3D.LaserScan({
                ros: this.globalData.ros,
                topic: '/scan',
                tfClient: this.tfClient,
                rootObject: this.viewer.scene,
                material: { size: 0.1, color: 0xFF0000 }
            })
            
            this.gridClient = new ROS3D.OccupancyGridClient({
                ros: this.globalData.ros, 
                rootObject: this.viewer.scene,
                continuous: true,
            });
            var arrowNode = new ROS3D.SceneNode({
                tfClient : this.tfClient,
                frameID  : '/base_link',
                object   : new ROS3D.Arrow({
                                length: 0.5,
                                headLength:0.4,
                                shaftDiameter:0.1,
                                headDiameter:0.3,
                                color: 0xFD8600
                            }),        
            });
            // console.log(arrowNode)
            this.viewer.scene.add(arrowNode);

Expected Behavior

Actual Behavior
屏幕截图 2023-10-25 213739
屏幕截图 2023-10-25 214357

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载