Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
doc:marker_visualization [2014/11/28 17:07] – admin | doc:marker_visualization [2015/10/19 15:07] – [Marker Types] daniel86 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Marker-based visualization canvas ====== | ====== Marker-based visualization canvas ====== | ||
+ | ~~NOTOC~~ | ||
+ | \\ | ||
+ | ^ This page describes the ' | ||
+ | \\ | ||
{{ : | {{ : | ||
- | Based on [[http:// | + | Based on [[http:// |
+ | ===== Usage ===== | ||
- | ===== Visualizing object meshes ===== | + | First, setup the rosbridge communication interface and initialiaze |
- | Inside the ROS ecosystem, resources like binary files can be described using different kinds of URLs like file: | + | |
- | In order to visualize | + | $ roslaunch rosbridge_server rosbridge_websocket.launch |
+ | $ rosrun rosprolog | ||
+ | |||
+ | Markers must be explicitly published by the user with following query ([[http:// | ||
+ | |||
+ | % publish modified marker | ||
+ | ?- marker_publish. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Semantic Map Marker ==== | ||
+ | |||
+ | The following queries read data from a semantic map and visualize | ||
+ | |||
+ | % load and visualize semantic map | ||
+ | ?- owl_parse(' | ||
+ | ?- owl_individual_of(A, knowrob:' | ||
+ | |||
+ | % highlight all electrical household appliances | ||
+ | ?- owl_individual_of(A, | ||
+ | |||
+ | ==== Agent Marker ==== | ||
+ | |||
+ | The following queries read data from a robot description, | ||
+ | and visualize it in the browser-based visualization. | ||
+ | |||
+ | % load and visualize the pr2 robot for given timepoint T | ||
+ | ?- owl_parse(' | ||
+ | ?- mng_robot_pose_at_time(pr2:' | ||
+ | |||
+ | ==== Trajectory Marker ==== | ||
+ | |||
+ | The following queries read data from a robot description, | ||
+ | and visualize it in the browser-based visualization. | ||
+ | |||
+ | % load and visualize | ||
+ | ?- owl_parse(' | ||
+ | ?- marker_update(trajectory('/ | ||
+ | ===== Visualizing 3D object meshes ===== | ||
- | register_ros_package(knowrob_cad_models). | + | KnowRob supports the visualization of objects using 3D surface meshes in the STL or Collada file formats. These meshes can either be attached to an object instance or to an object class, in which case they are used for visualization of all of its instances. The following OWL snippet shows how an instance can be linked to its CAD model using the // |
- | Some of the objects in the demo set have CAD models attached. They are used for visualization as well as for reasoning (see below). These models are automatically used when they are specified for either a complete class of objects (using an OWL hasValue restriction) or for an object instance as shown below: | ||
<code xml> | <code xml> | ||
< | < | ||
< | < | ||
- | < | ||
- | < | ||
- | < | ||
< | < | ||
| | ||
Line 25: | Line 63: | ||
</ | </ | ||
- | The %%package://...%% identifier references files inside ROS packages. | + | The package //knowrob_cad_models// |
+ | Inside the ROS filesystem, resources such as binary files can be described using different kinds of URLs: The common file:%%//%% and http:%%//%% URLs, and the package: | ||
+ | Since the client of a webserver cannot access the whole file system, this mechanism does not work as such if requests are made from a website. The ros3djs library therefore rewrites package: | ||
+ | If you would like to visualize meshes contained in ROS packages in the browser, you have to put these meshes into the docroot of the webserver, i.e. as a subfolder of the directory ' | ||
- | ===== Example queries ===== | ||
- | |||
- | The following queries read data from the semantic map and from the logged data and visualize it in the browser-based visualization. The robot pose at time 1377780296 is read from the MongoDB using the tfMemory extension. | ||
- | |||
- | $ roslaunch knowrob_vis knowrob_vis.launch | ||
- | $ rosrun rosprolog | ||
- | | ||
- | % load packages, start marker publisher | ||
- | ?- register_ros_package(knowrob_mongo), | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | % load CRAM log file | ||
- | ?- owl_parse(' | ||
- | | ||
- | % load and visualize semantic map | ||
- | ?- owl_individual_of(A, | ||
- | | ||
- | % read start time of grasp action from MongoDB | ||
- | ?- task_goal(T, | ||
- | | ||
- | % read robot pose at this time and add to the visualization | ||
- | ?- mng_robot_pose_at_time(pr2:' | ||
- | | ||
- | | ||
- | % highlight all cameras that are part of the SRDL model of the robot | ||
- | ?- owl_individual_of(A, | ||
- | |||
- | |||
- | |||
- | The following is to be performed from the roslog_2013_08_29_1445 folder: | ||
- | |||
- | # Is some part of the right arm blocking the view on the object? | ||
- | ?- register_ros_package(mod_srdl), | ||
- | ?- mng_obj_pose_by_desig(' | ||
- | ?- sub_component(pr2: | ||
- | | ||
- | | ||
- | | ||
- | |||
- | # Is the object visible in the camera, given the camera' | ||
- | ?- obj_visible_in_camera(log:' | ||
- | | ||
- | | ||
- | true . | ||
- | | ||
===== Links ===== | ===== Links ===== |