Difference between revisions of "User:Aeh84"

From GICL Wiki
Jump to: navigation, search
Line 13: Line 13:
 
The pcl site has a lot of information.  I would recommend reading the introductory material on  
 
The pcl site has a lot of information.  I would recommend reading the introductory material on  
  
== pointcloud registration ==
+
== try my scripts ==
 +
 
 +
=== pose_registration ===
 +
* http://www.euclideanspace.com/maths/geometry/space/coordinates/index.htm
 +
 
 +
=== publish from file to ROS bus ===
 +
 
 +
=== pointcloud registration ===
 
$ rosmake register_pointclouds
 
$ rosmake register_pointclouds
 
$ roscore
 
$ roscore
Line 20: Line 27:
  
  
== tbd ==
 
* can rosparams be set in a config file somewhere and auto-loaded?
 
* it seems the /map frame in rviz is different from the /map topic?  because rviz can't find the /map frame even when the /map topic is being published.
 
 
== rviz view controls ==
 
* regular click: rotate the view
 
* shift-click: move the view or focal point
 
* host click / scroll: zoom
 
 
== create a map from log data and watch it on rviz ==
 
$ roscore
 
$ rosparam set use_sim_time true
 
$ rosrun rviz rviz
 
# make sure map is checked and subscribed to topic /map
 
$ rosrun gmapping slam_gmapping scan:=base_scan
 
$ rosbag play ~/ros/gmap_tester.bag
 
$ rosrun map_server map_saver
 
 
== topics ==
 
* gmapping:
 
** /base_scan
 
** /clock
 
** /map
 
** /map_metadata
 
** /slam_gmapping/entropy
 
** /tf
 
 
== registration ==
 
* http://www.euclideanspace.com/maths/geometry/space/coordinates/index.htm
 
  
== mapping from point clouds ==
 
* http://kos.informatik.uni-osnabrueck.de/3Dscans/
 
* http://www.ros.org/wiki/pointcloud_registration
 
* http://www.ros.org/wiki/pointcloud_to_laserscan
 
* https://code.ros.org/trac/wg-ros-pkg/browser/stacks/object_manipulation/branches/hri12/object_manipulator/src/object_manipulator/point_cloud.py?rev=52799
 
* https://code.ros.org/trac/wg-ros-pkg/browser/stacks/object_manipulation/branches/hri12/object_manipulator/src/object_manipulator/convert_functions.py?rev=52799
 
  
== future work ==
+
== do something new ==
 
Working odometry into the registration process appears to be key.  It would be nice to figure out the best way to do it.
 
Working odometry into the registration process appears to be key.  It would be nice to figure out the best way to do it.
 
* I don't know whether / how it's possible to send odometry and pointclouds over the ROS bus and correlate them on the other side.  Do they need to be combined into a single message?  Can the callbacks on the two topics be tied together somehow?  It would be easier to start by skipping the ROS bus altogether and just reading in the pointcloud and omdometry data from file.
 
* I don't know whether / how it's possible to send odometry and pointclouds over the ROS bus and correlate them on the other side.  Do they need to be combined into a single message?  Can the callbacks on the two topics be tied together somehow?  It would be easier to start by skipping the ROS bus altogether and just reading in the pointcloud and omdometry data from file.
 
* A new version of pcl should be coming out any day now as I finish this quarter.  A new registration algorithm will take odometry data; it's called Normal Distributions Transform.  That would be worth trying out.
 
* A new version of pcl should be coming out any day now as I finish this quarter.  A new registration algorithm will take odometry data; it's called Normal Distributions Transform.  That would be worth trying out.
 
* Further research on Euler angles and rotations in 3d space could be useful.  I'm not certain that what I did in my python script is without error.
 
* Further research on Euler angles and rotations in 3d space could be useful.  I'm not certain that what I did in my python script is without error.

Revision as of 15:20, 15 June 2012

Contents

Registering pointclouds in ROS with PCL for Robot_Lab_(Spring_2012)

find some data

The data I used is dataset 14 at http://kos.informatik.uni-osnabrueck.de/3Dscans/

My python script, publish_from_file.py, can be easily adjusted to read any similar format, wherein each line gives the coordinates for a point. PLY is another option; PLY pointclouds can be loaded and viewed in Meshlab.

I didn't write any code to read pcl files, but this is the format that the pointcloud library reads and writes, so if you found some pcl data and like c++ that would also work.

Ideally, it would be best to take your own data, then you know everything about it. It turns out the better you know the data (how far did the robot move between images? what unit does your scanner use for measurements -- meters? pixels?) the better off you will be in fine-tuning the registration algorithms.

learn about registration

The pcl site has a lot of information. I would recommend reading the introductory material on

try my scripts

pose_registration

publish from file to ROS bus

pointcloud registration

$ rosmake register_pointclouds $ roscore $ rosrun register_pointclouds register $



do something new

Working odometry into the registration process appears to be key. It would be nice to figure out the best way to do it.

  • I don't know whether / how it's possible to send odometry and pointclouds over the ROS bus and correlate them on the other side. Do they need to be combined into a single message? Can the callbacks on the two topics be tied together somehow? It would be easier to start by skipping the ROS bus altogether and just reading in the pointcloud and omdometry data from file.
  • A new version of pcl should be coming out any day now as I finish this quarter. A new registration algorithm will take odometry data; it's called Normal Distributions Transform. That would be worth trying out.
  • Further research on Euler angles and rotations in 3d space could be useful. I'm not certain that what I did in my python script is without error.