-
Notifications
You must be signed in to change notification settings - Fork 188
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
[jsk_pcl_ros] ICP Registration on 2D plane #1991
Conversation
can we add launch file for this? and if we can add test code, that more better. |
@furushchev : can we add launch file for this? and if we can add test code, that more better. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Source code diff LGTM.
Please do:
@furushchev : can we add launch file for this? and if we can add test code, that more better.
ping @furushchev |
@YoheiKakiuchi Sorry for delay. I'm working on this now. Please wait a moment... |
added sample launch file for ICP 2D roslaunch openni2_launch openni2.launch
roseus cylinder_cloud_publisher.l # publish cylinder cloud to topic /reference_cloud
roslaunch jsk_pcl_ros sample_icp_registration_2d.launch To execute this launch file, #2038, #2039 will be needed. To publish cylinder reference as pointcloud, the node will be like below code: ;; cylinder_cloud_publisher.l
;; Author: Yuki Furuta <furushchev@jsk.imi.i.u-tokyo.ac.jp>
(ros::roseus "cylinder_cloud_publisher")
(ros::advertise "/reference_cloud" sensor_msgs::PointCloud2 1 t) ;; latched
(unix:sleep 1)
(setq *cylinder* (make-cylinder 55 300))
(setq *cloud* (object->pointcloud *cylinder* :step 30 :with-normal t :with-color t))
(setq *msg* (make-ros-msg-from-eus-pointcloud *cloud* :frame "camera_link"))
(ros::rate 1)
(while (ros::ok)
(send *msg* :header :stamp (ros::time-now))
(ros::publish "/reference_cloud" *msg*)
(ros::spin-once)
(ros::sleep)) |
I have a rosbag of picture attached above. If anyone give an advice to upload, I will write a test code. |
@wkentaro wiill give you an advice to upload |
$ tar zcvf sample_icp_registration_2d.bag.tgz sample_icp_registration_2d.bag
$ jsk_data put --public sample_icp_registration_2d.bag.tgz
$ jsk_data pubinfo sample_icp_registration_2d.bag.tgz
# it shows download url
$ md5sum sample_icp_registration_2d.bag.tgz
# copy this to md5 in download_data
# edit scripts/install_sample_data.py
...
download_data(
pkg_name=PKG,
path='sample/data/sample_icp_registration_2d.bag.tgz',
url='https://drive.google.com/uc?id=XXXXXXXXXXXXXXXx',
md5='xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
extract=True,
) |
@k-okada I'm now back.
Added sample launch file and test code. |
Sorry for delay.
I implemented from scratch but there is totally same algorithm in pcl to achieve 2d transform estimation.
Cleaned up codes, updated docs with images.
plane is constrained from header frame coordinates of point cloud.
e.g. to fitting to objects on a table, you will need:
table_frame
)TfPointCloud
to change frame id from sensor frame totable_frame
transform_3dof
totrue
.