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 [2013/11/20 07:39] – [Example queries] 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:// |
- | An example can be seen here (only from the local network): http:// | + | ===== Usage ===== |
- | **This module is currently under development | + | First, setup the rosbridge communication interface |
+ | $ roslaunch rosbridge_server rosbridge_websocket.launch | ||
+ | $ rosrun rosprolog | ||
+ | | ||
+ | Markers must be explicitly published by the user with following query ([[http:// | ||
- | ===== System overview ===== | + | % publish modified marker |
- | {{ :doc:web-visualization-architecture.png?nolink |}} | + | ?- marker_publish. |
- | **Note:** Though the visualization looks much like a standard web page, it's more similar to a web-based rviz. This means that there is still a single ROS graph and a single KnowRob instance in the background that is shared among all website visitors. | ||
- | ===== Installation | + | ==== Semantic Map Marker |
- | Setting up your computer as server for the web-based marker visualization involves a few steps to make everything work properly: | + | |
- | * Install a web server, e.g. apache2 by '' | + | |
- | * [[http:// | + | |
- | * Put the contents of the [[https:// | + | |
- | * To use CAD models for visualization, | + | |
- | ===== Example | + | The following |
- | 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 and visualize semantic map | % load and visualize semantic map | ||
- | ?- owl_individual_of(A, | + | |
+ | | ||
| | ||
- | % read robot pose at time 1377766521 from MongoDB | + | % highlight all electrical household appliances |
- | ?- mng_robot_pose_at_time(pr2:' | + | ?- owl_individual_of(A, |
- | + | ||
- | % add robot to the visualization | + | ==== Agent Marker ==== |
- | ?- add_object_with_children(pr2:' | + | |
- | + | The following queries | |
- | % highlight all cameras that are part of the SRDL model of the robot | + | and visualize it in the browser-based visualization. |
- | ?- owl_individual_of(A, srdl2comp:'Camera' | + | |
+ | % 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 ===== | ||
+ | |||
+ | 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 // | ||
+ | |||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | The package // | ||
+ | |||
+ | 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 ' | ||
- | 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 ===== | ||
* [[http:// | * [[http:// |