Application for demonstrating surface blending with ROS.
Godel: Austrian logician and mathematician http://en.wikipedia.org/wiki/Kurt_G%C3%B6del
Install wstool in order manage the repos inside the workspace
sudo apt install python-wstool
Cd into the 'src' directory of your catkin workspace and run the following:
wstool init .
wstool merge https://github.com/tecnalia-advancedmanufacturing-robotics/godel/raw/kinetic-devel/godel.rosinstall
wstool update
rosdep install --from-paths . --ignore-src
Finally, to build:
catkin build
Run blending demo in full simulation mode (simulated robot and sensor)
roslaunch godel_irb2400_support irb2400_blending.launch
Run the simulation with real point cloud data:
roslaunch godel_irb2400_support irb2400_blending.launch real_pcd:=true pcd_location:=/path/to/file.pcd
Download pcd files and unzip in your HOME directory: https://s3-us-west-2.amazonaws.com/godelscanfiles/godel_point_cloud_data.zip
Run blending demo in robot simulation mode (simulated robot and real sensor data)
roslaunch godel_irb2400_support irb2400_blending.launch sim_sensor:=false
Run blending demo in sensor simulation mode (real robot and simulated sensor)
roslaunch godel_irb2400_support irb2400_blending.launch sim_robot:=false robot_ip:=[robot ip]
Run blending demo in full real mode
roslaunch godel_irb2400_support irb2400_blending.launch sim_sensor:=false
sim_robot:=false robot_ip:=[robot ip]
export QT_NO_FT_CACHE=1
The meshing_plugins_base
and path_planning_plugins_base
packages define the interfaces that Godel uses to both perform surface reconstruction
and tool path generation based on those reconstructions.
The current default mesher works well for point clouds regions that can be accurately modeled by a convex polygon. The default blending tool planner only works well for planar meshes.
We are working on an experimental library for more arbitrary surface reconstruction and tool path planning in the noether package.
godel_irb2400_support
, modify the config/plugins.yaml file to read:
meshing_plugin_name: "godel_noether::NoetherMesher"
blend_tool_planning_plugin_name: "godel_noether::NoetherPathPlanner"
To run the keyence laser scanner driver (replace KEYENCE_CONTROLLER_IP
with the ip-address of your sensor):
rosrun keyence_experimental keyence_driver_node _controller_ip:=KEYENCE_CONTROLLER_IP _frame_id:=keyence_sensor_optical_frame
To acquire laser scans and score them, run the following (replace VOXEL_SIZE_IN_METERS
with your desired voxel size):
roslaunch godel_scan_analysis scan_analysis.launch world_frame:=world_frame scan_frame:=keyence_sensor_optical_frame voxel_leaf_size:=VOXEL_SIZE_IN_METERS