gepetto / gepetto-viewer Goto Github PK
View Code? Open in Web Editor NEWGraphical Interface for Pinocchio and HPP.
License: BSD 2-Clause "Simplified" License
Graphical Interface for Pinocchio and HPP.
License: BSD 2-Clause "Simplified" License
Hi guys,
It seems I have another bug.
No matter what color I provide to a mesh, the mesh is always displayed as completely white.
I don't have any color issue in pybullet, and pybullet loads the color that is specified in the material tag of urdf.
However when loading in gepetto-gui, the color doesn't seem to change.
I checked the pinocchio parser, and it is providing the good color information to gepetto-viewer. I also tried changing the color directly using the gui interface in gepetto-gui, and there is no effect.
Could you please help me figure out the issue?
when i try to build gepetto-viewer, the error raised that 'No package 'openscenegraph' found' . but i actually already installed openscenegraph. As osgversion command works well on my linux system.
Collada has a tag up_axis
. Assimp seems not to read it while OSG seems to read it.
Assimp is used to parse mesh files in ROS and in hpp-fcl.
It seems this is a bug in Assimp. However, it is not possible to solve this bug. There are too many people relying on the current behaviour of assimp.
I see several solutions to this recurrent issue:
Hi, it seems that the submodule can not be clone due to a GitHub authentication error.
tflayols@kiso:~/git$ git clone [email protected]:Gepetto/gepetto-viewer.git --recursive
Clonage dans 'gepetto-viewer'...
remote: Enumerating objects: 4354, done.
remote: Counting objects: 100% (393/393), done.
remote: Compressing objects: 100% (294/294), done.
remote: Total 4354 (delta 166), reused 206 (delta 86), pack-reused 3961
Réception d'objets: 100% (4354/4354), 2.35 Mio | 1.11 Mio/s, fait.
Résolution des deltas: 100% (2692/2692), fait.
Sous-module 'cmake' (git://github.com/jrl-umi3218/jrl-cmakemodules.git) enregistré pour le chemin 'cmake'
Clonage dans '/home/tflayols/git/gepetto-viewer/cmake'...
fatal: erreur distante :
The unauthenticated git protocol on port 9418 is no longer supported.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
fatal: le clonage de 'git://github.com/jrl-umi3218/jrl-cmakemodules.git' dans le chemin de sous-module '/home/tflayols/git/gepetto-viewer/cmake' a échoué
Impossible de cloner 'cmake'. Réessai prévu
Clonage dans '/home/tflayols/git/gepetto-viewer/cmake'...
fatal: erreur distante :
The unauthenticated git protocol on port 9418 is no longer supported.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
fatal: le clonage de 'git://github.com/jrl-umi3218/jrl-cmakemodules.git' dans le chemin de sous-module '/home/tflayols/git/gepetto-viewer/cmake' a échoué
Impossible de cloner 'cmake' pour la seconde fois, abandon
Hi, I'm having trouble building GV, when I follow the build instructions and run cmake ..
I get the following error, that I can't find openscenegraph-osgQt5
. How do I install this dependency? I also wasn't able to find it manually myself. Many thanks!
-- Package version (ROS package.xml): 4.11.0
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning at cmake/doxygen.cmake:496 (MESSAGE):
Failed to find Doxygen, documentation will not be generated.
Call Stack (most recent call first):
cmake/post-project.cmake:58 (_SETUP_PROJECT_DOCUMENTATION)
CMakeLists.txt:40 (PROJECT)
-- openscenegraph >= 3.2 is required.
-- Checking for module 'openscenegraph>=3.2'
-- Found openscenegraph, version 3.6.4
-- Pkg-config module openscenegraph v3.6.4 has been detected with success.
-- openthreads >= 2.6 is required.
-- Checking for module 'openthreads>=2.6'
-- Found openthreads, version 3.3.1
-- Pkg-config module openthreads v3.3.1 has been detected with success.
-- openscenegraph-osgQt5 is required.
-- Checking for module 'openscenegraph-osgQt5'
-- No package 'openscenegraph-osgQt5' found
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:463 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:643 (_pkg_check_modules_internal)
cmake/pkg-config.cmake:336 (PKG_CHECK_MODULES)
cmake/pkg-config.cmake:550 (ADD_DEPENDENCY)
cmake-module/osgqt.cmake:11 (ADD_REQUIRED_DEPENDENCY)
CMakeLists.txt:120 (ADD_OSGQT_DEPENDENCY)
-- Configuring incomplete, errors occurred!
See also "/home/jake/Projects/gepetto-viewer/_build/CMakeFiles/CMakeOutput.log".
Function parse in urdf-parser.h, urdf-parser.cpp parses collision and visual geometries specified in URDF file whenever linkFrame is true.
This raises an issue when the parser does not know how to parse collision file.
I have upgraded my computer to ubuntu-18.04 and the build of gepetto-viewer branch devel (just checked out) fails.
The problem seems to come from the fact that gepetto-gui is not linked to the python library. As a consequence, at linking, I get several messages like
undefined reference to `PyString_Size'
I solved the issue by adding a line in the src/CMakeLists.txt (commit f47465a) but I am surprised that nobody got the same issue.
My list of robotpkg packages looks like this but the command gepetto-gui doesn't exist on my system! How can I run gepetto-viewer?
ii robotpkg-collada-dom 2.4.0r1 amd64 C++ object representation of a COLLADA XML instance document
ii robotpkg-eigen3 3.3.0 amd64 a C++ template library for linear algebra
ii robotpkg-example-robot-data 3.12.0 amd64 Robot URDFs for benchmarking and developed examples
ii robotpkg-hpp-constraints+doc 4.12.0 amd64 Humanoid Path Planner (Define non-linear constraints on robot configurations)
ii robotpkg-hpp-core 4.12.0r1 amd64 Humanoid Path Planner (Basic classes for general path planning)
ii robotpkg-hpp-environments+doc 4.12.0 amd64 Humanoid Path Planner (Environments and robot descriptions for HPP)
ii robotpkg-hpp-fcl+doc 1.7.8 amd64 Humanoid Path Planner (collision detection and distance computations)
ii robotpkg-hpp-manipulation 4.12.0r1 amd64 Humanoid Path Planner (Manipulation problem definition and resolution)
ii robotpkg-hpp-manipulation-urdf+doc 4.12.0r1 amd64 Humanoid Path Planner (URDF/SRDF parser for the package hpp-manipulation)
ii robotpkg-hpp-pinocchio 4.12.0 amd64 Humanoid Path Planner (Wrapping of the kinematic/dynamic chain Pinocchio for HPP.)
ii robotpkg-hpp-statistics+doc 4.12.0 amd64 Humanoid Path Planner (Tools to make statistics)
ii robotpkg-hpp-template-corba+doc 4.12.0 amd64 Humanoid Path Planner (Template CORBA servers for HPP)
ii robotpkg-hpp-util+doc 4.12.0 amd64 Humanoid Path Planner (utility tools)
ii robotpkg-libccd 2.0 amd64 collision detection
ii robotpkg-octomap 1.9.6 amd64 An Efficient Probabilistic 3D Mapping Framework Based on Octrees
ii robotpkg-omniorb 4.2.4 amd64 ORB that implements the 2.6 specification of the CORBA
ii robotpkg-openscenegraph 3.6.5r3 amd64 open source high performance 3D graphics toolkit
ii robotpkg-pinocchio 2.6.4 amd64 Efficient rigid body dynamics
ii robotpkg-py36-crocoddyl 1.8.1 amd64 Optimal control library for robot under contact sequence
ii robotpkg-py36-eigenpy 2.6.9 amd64 Eigen bindings to python
ii robotpkg-py36-example-robot-data 3.12.0 amd64 Robot URDFs for benchmarking and developed examples
ii robotpkg-py36-hpp-corbaserver 4.12.0r1 amd64 Humanoid Path Planner (Corba server for Humanoid Path Planner)
ii robotpkg-py36-hpp-fcl 1.7.8 amd64 Humanoid Path Planner (collision detection and distance computations (python bindingss))
ii robotpkg-py36-hpp-manipulation-corba 4.12.0r1 amd64 Humanoid Path Planner (CORBA interface for hpp-manipulation)
ii robotpkg-py36-omniorbpy 4.2.4 amd64 Robust high-performance CORBA ORB for Python
ii robotpkg-py36-pinocchio 2.6.4 amd64 Efficient rigid body dynamics (python bindings)
ii robotpkg-py36-qt5-gepetto-viewer+doc 4.12.1 amd64 Humanoid Path Planner (Simple viewer based on OpenSceneGraph)
ii robotpkg-py36-qt5-gepetto-viewer-corba+doc 5.6.0 amd64 Humanoid Path Planner (Corba server for gepetto-viewer)
ii robotpkg-py36-qt5-hpp-gepetto-viewer+doc 4.12.0 amd64 Humanoid Path Planner (Bridge between hpp-corbaserver and gepetto-viewer-corba)
ii robotpkg-py36-qt5-hpp-gui+doc 4.12.0 amd64 Humanoid Path Planner (Graphical interface for HPP)
ii robotpkg-py36-qt5-hpp-plot+doc 4.12.0 amd64 Humanoid Path Planner (Plotting tools for hpp)
ii robotpkg-qpoases+doc 3.2.1r1 amd64 C++ implementation of the online active set strategy
ii robotpkg-qt5-osgqt 3.5.7r3 amd64 open source high performance 3D graphics toolkit
ii robotpkg-qt5-qgv 1.3.2 amd64 Interactive Qt graphViz display
ii robotpkg-urdfdom 1.0.3 amd64 The URDF (U-Robot Description Format) library
ii robotpkg-urdfdom-headers 1.0.4 amd64 The URDF (U-Robot Description Format) headers
I am trying to install the master branch on Mac OS 10.13. I encountered 3 types of errors while compiling urdf-parser.cpp, and each occurred multiple times.
Since I don't use the URDF parser in my project, is it easy to just remove that functionality while installing? Thanks in advance.
1. no viable overloaded
/Users/zml/gepetto-viewer/src/urdf-parser.cpp:105:18: error: no viable overloaded '='
visual = link->visual_array[index];
~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/smart_ptr/shared_ptr.hpp:524:18: note: candidate function not viable: no known conversion from 'value_type' (aka 'std::__1::shared_ptrurdf::Visual') to 'const boost::shared_ptrurdf::Visual' for 1st argument
shared_ptr & operator=( shared_ptr const & r ) BOOST_NOEXCEPT
^
/usr/local/include/boost/smart_ptr/shared_ptr.hpp:533:18: note: candidate template ignored: could not match 'boost::shared_ptr' against 'std::__1::shared_ptr'
shared_ptr & operator=(shared_ptr const & r) BOOST_NOEXCEPT
^
/usr/local/include/boost/smart_ptr/shared_ptr.hpp:544:18: note: candidate template ignored: could not match 'auto_ptr' against 'shared_ptr'
shared_ptr & operator=( std::auto_ptr & r )
^
/usr/local/include/boost/smart_ptr/shared_ptr.hpp:562:77: note: candidate template ignored: substitution failure [with Ap = std::__1::shared_ptrurdf::Visual]: no type named 'type' in 'boost::detail::sp_enable_if_auto_ptr<std::__1::shared_ptrurdf::Visual,
boost::shared_ptrurdf::Visual &>'
typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r )
~~~~ ^
/usr/local/include/boost/smart_ptr/shared_ptr.hpp:584:18: note: candidate template ignored: could not match 'unique_ptr' against 'shared_ptr'
shared_ptr & operator=( boost::movelib::unique_ptr<Y, D> r )
2. no matching function for call to 'static_pointer_cast'
/Users/zml/gepetto-viewer/src/urdf-parser.cpp:147:20: error: no matching function for call to 'static_pointer_cast'
mesh_shared_ptr = boost::static_pointer_cast< ::urdf::Mesh >
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/smart_ptr/shared_ptr.hpp:845:42: note: candidate template ignored: could not match 'boost::shared_ptr' against 'std::__1::shared_ptr'
template<class T, class U> shared_ptr static_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT
3. use of overloaded operator '!=' is ambiguous
/Users/zml/gepetto-viewer/src/urdf-parser.cpp:172:62: error: use of overloaded operator '!=' is ambiguous (with operand types 'MaterialSharedPtr' (aka 'shared_ptrurdf::Material') and 'long')
if (visual && urdfLink->visual_array [j]->material != NULL) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~
We should do a new release, now that the convention for quaternions has changed.
Hi,
When a dependency of this package tries to import config-osg.h
, it fails on the following line:
/opt/openrobots/include/gepetto/viewer/config-osg.h:13:21: fatal error: QMetaType: No such file or directory
So I think we should add a Cflags
with -I${QT_QTCORE_INCLUDE_DIR}
in the .pc.
(I still have to check if this is the same for Qt5)
@nim65s Why release version has made such big jump?
Upon loading of a urdf, the simple geometry are not parse properly. The viewer creates the nodes but do not display anything. I think this has to do with the urdfdom compatilibity.
Hi,
I am new with gepetto-viewer. I am trying to visualize collisions of an object I placed inside the gui with the robot. what is the optimal way of doing so? Are there some tutorials/examples I can look into? Thanks in advance.
Hi,
I've been trying out pinocchio
but it doesn't seem to notice my gepetto-viewer
install (https://anaconda.org/conda-forge/gepetto-viewer).
Both are installed with conda in the same environment.
I launch the viewer with gepetto-gui
and then my pinocchio script throws (the viewer examples throws the same error):
$ python inverse-kinematics.py
inverse-kinematics.py:53: UserWarning: Error while importing the viewer client.
Check whether gepetto-viewer is properly installed
viz.initViewer()
inverse-kinematics.py:53: UserWarning: Error while starting the viewer client.
Check whether gepetto-viewer is properly started
viz.initViewer()
Error while loading the viewer model. It seems you should start gepetto-viewer
'GepettoVisualizer' object has no attribute 'viewer'
Would it be possible to make a new release of gepetto-viewer to 1.1.0 ?
A test with robotpkg on a 14.04 LTS seems to be compiling.
Best,
Olivier.
When adding color to one object (i.e. an sphere using addSphere) in the viewer, all my meshes take this color.
When adding more than one colored object (each object has a different color), the meshes take these colors and the color change when moving the camera .
the error returned
gepetto-viewer/src/window-manager.cpp:420:12: error: no member named 'get' in 'osg::Matrixd'
matrix.get(rot);
QTemporaryDir is not available in Qt4.
Hello,
Is there a python example on how to parametrize the 3D scene appearance (ground, background,...) and load objects in the scene ?
Best
Vincent
Hi,
I tried to install gepetto-viewer from source (with a recent installation of OpenSceneGraph 3.6) but the cmake fails. Which dependency am I missing? Could you please provide me a link?
thank you
Niels
ndehio@ndehio-5540:~/src/gepetto-viewer/build$ cmake ..
-- Package version (ROS package.xml): 4.11.0
-- CMake versions older than 3.12 may warn when looking to Boost components. Custom macros are used to find it.
-- openscenegraph >= 3.2 is required.
-- Checking for module 'openscenegraph>=3.2'
-- Found openscenegraph, version 3.6.5
-- Pkg-config module openscenegraph v3.6.5 has been detected with success.
-- openthreads >= 2.6 is required.
-- Checking for module 'openthreads>=2.6'
-- Found openthreads, version 3.3.1
-- Pkg-config module openthreads v3.3.1 has been detected with success.
-- openscenegraph-osgQt5 is required.
-- Checking for module 'openscenegraph-osgQt5'
-- No package 'openscenegraph-osgQt5' found
CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:415 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:593 (_pkg_check_modules_internal)
cmake/pkg-config.cmake:336 (PKG_CHECK_MODULES)
cmake/pkg-config.cmake:550 (ADD_DEPENDENCY)
cmake-module/osgqt.cmake:11 (ADD_REQUIRED_DEPENDENCY)
CMakeLists.txt:120 (ADD_OSGQT_DEPENDENCY)
In robotpkg it seems that the dependance of this package to robotpkg-omniorbpy is not set properly.
It looks like one have to install it separately to make the viewer work.
Dear @jmirabel,
Since the latest release of Gepetto-gui, I realized that a lot of CPU resources are used by gepetto-gui. Do you have any idea which change is at the origin of this downgrade?
Hi guys,
When setting the radius of a cylinder through the gepetto-gui API, I noticed some weird behaviour. When I press "del" or "backspace" to delete the existing values, the tail end of the value keeps filling up with what I think is garbage. I attach a video to show what I observed
I am currently on the commit 11d71fb in the devel branch.
Setup:
Ubuntu14.04
robotpkg standard+wip with binary installation
example of problems with urdf:
<link name="L_HAND">
<visual>
<!-- <geometry>
<box size=".06 .06 .06"/>
</geometry> -->
<geometry>
<mesh filename="package://robot_properties_athena/meshes/stl/athena_hand.stl"
scale="0.001 0.001 0.001"/>
</geometry>
<origin rpy="0 0 0" xyz="0 0 0"/>
<material name="grey">
<color rgba=".7 .7 .7 1.0"/>
</material>
</visual>
</link>
Hello,
I'm using gepette-gui to visualize robot trajectories and physical quantities like CoM/CoP/DCM...
The issue I'm facing is that when displaying a transparent robot and a sphere representing the CoP, that sphere disappears behind the transparent robot, while the floor is clearly visible behind the robot.
Below is the core code that I use for displaying the scene.
Am I missing something or is that a bug/shortcoming?
from pinocchio.robot_wrapper import RobotWrapper
robot = RobotWrapper()
colorized_urdf = get_colorized_urdf(urdf_path, (1,1,1,0.7))
robot.initFromURDF(colorized_urdf, [root_path], pinocchio.JointModelFreeFlyer())
robot.initDisplay()
robot.viewer.gui.addFloor('hpp-gui/floor')
robot.loadDisplayModel('my_robot')
robot.display(utils.array_to_matrix(model_positions[:, 0]))
robot.viewer.gui.addSphere('current_CoP', 0.02, [1, 0, 0, 1])
robot.viewer.gui.addLine('current_CoP_line', [0.0, .0, 0.0], [0.0, 0.0, 0.3], [1, 0, 0, 1])
robot.viewer.gui.addToGroup('current_CoP', 'world')
robot.viewer.gui.addToGroup('current_CoP_line', 'world')
wait_for_start()
for i in range(len(times) - 1):
robot.display(utils.array_to_matrix(model_positions[:, i]))
dt = (times[i + 1] - times[i]) / speed
if dt > 0.:
time.sleep(dt)
robot.viewer.gui.applyConfiguration('current_CoP', (cop[:, i].tolist() + [0.0, 0.0, 0.0, 1.0]))
robot.viewer.gui.applyConfiguration('current_CoP_line', (cop[:, i].tolist() + [0.0, 0.0, 0.0, 1.0]))
robot.display(utils.array_to_matrix(model_positions[:, -1]))
Hi,
Since #77, I can't build devel:
/local/users/gsaurel/gepetto/gepetto-viewer/src/leaf-node-collada.cpp: In member function ‘void graphics::LeafNodeCollada::init()’:
/local/users/gsaurel/gepetto/gepetto-viewer/src/leaf-node-collada.cpp:59:27: error: ‘ObjectCache’ is not a member of ‘osgDB’
static osg::ref_ptr<osgDB::ObjectCache> object_cache (new osgDB::ObjectCache);
^
This error could have been prevented by checking the CI:
https://gepgitlab.laas.fr/gepetto/gepetto-viewer/pipelines/3113/builds
This error prevents the CI of hpp-doc to pass: https://gepgitlab.laas.fr/gsaurel/hpp-doc/-/jobs/12087.
To display an octree, I create an obj file that I then load through CORBA by calling method WindowsManager::addMesh
.
This function calls LeafNodeCollada::create
that calls LeafNodeCollada::init
.
After this line,
gepetto-viewer/src/leaf-node-collada.cpp
Line 110 in 7e420b7
referenceCount
of collada_ptr_
is 2 although I expect it to be 1.gepetto-viewer/src/leaf-node-collada.cpp
Line 439 in 7e420b7
I tried to add a method to explicitely remove the object from the cache when deleting the node, but it does not solve the problem.
I also tried to decrement manually the counter by adding
collada_ptr_->unref()
after line 110 above, but I got a segmentation fault.
Does anyone know whether it is normal that the reference count is equal to 2 just after creating the object ?
Hi @nim65s,
Could you update gepetto-viewer binaries on robotpkg:
cmake -DBUILD_PY_QCUSTOM_PLOT=ON
should be sufficient) andoxygen-icon-theme
as an apt dependency ?For the record, QCustomPlot license is GPL and it is included in gepetto-viewer as a plugin. It does not change the license of gepetto-viewer. It implies that Python plugins based on QCustomPlot are GPL.
Dear all,
Will you be ok with merging devel into master,
and thinking about a release (the tag for v1.0.0 is 03/2015...)
Best,
Olivier.
Hi Guys,
OpenGL proposes the following lighting parameters for rendering objects: ambient, diffuse, specular and emissive. These are explained in http://www.glprogramming.com/red/chapter05.html
Allowing this in gepetto-viewer should be possible with the current API.
This is a tracker issue, meant to keep this development in check.
Best,
Rohan
Hi,
In recent developments, the osgQt project removed everything related to osgQt (they just kept the name of the project) and switched to the new Qt5 preffered way and use QOpenGL:
@jmirabel : could you evaluate the difficulty for us to move to the new interface ? Depending on the required work to make the switch, we can either do it, or I can finish my packaging with an older version of osgQt.
Hi,
I've been trying to compile gepetto-viewer on a Ubuntu distribution.
When I run cmake
, however, I get the following error message.
-- openscenegraph >= 3.2 is required.
-- Checking for module 'openscenegraph >= 3.2'
--
CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:367 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:532 (_pkg_check_modules_internal)
cmake/pkg-config.cmake:288 (PKG_CHECK_MODULES)
cmake/pkg-config.cmake:459 (ADD_DEPENDENCY)
CMakeLists.txt:75 (ADD_REQUIRED_DEPENDENCY)
The issue seems to be related to the ADD_REQUIRED_DEPENDENCY
macro in cmake/pkg-config.cmake
failing to find openscenegraph
.
openscenegraph
is installed in /usr/local/lib64/
; I tried both compiling and installing with apt-get install
and it does not seem to make a difference.
I'm not used to the macro system being used for adding libraries to this project.
Any suggestion on how to fix/troubleshoot the issue?
Hi guys,
I'm following the devel branch in gepetto-viewer and gepetto-viewer-corba.
For the simple script below:
from example_robot_data import loadTalos
r = loadTalos()
r.initViewer(loadModel=True)
I get the following error:
omniORB: From endpoint: giop:tcp:[::1]:12321. Detected GIOP 1.0 protocol error in input message. giopImpl10.cc:438. Connection is closed.
omniORB: To endpoint: giop:tcp:[::1]:12321. Send GIOP 1.0 MessageError because a protocol error has been detected. Connection is closed.
/local/rbudhira/devel/install/sot/lib/python2.7/dist-packages/pinocchio/robot_wrapper.py:238: UserWarning: Error while starting the viewer client.
Check whether gepetto-viewer is properly started
self.viz.initViewer(*args, **kwargs)
I'm not sure why the connection gets closed. I've tried reinstalling gepetto-viewer, and I've tried restarting omni-nameserver by sudo systemctl restart omniorb4-nameserver
I have the following warning messages in the shell running gepetto-gui
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'Highlight/State')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'LightingMode')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'Visibility')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'WireframeMode')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'Highlight/State')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'LightingMode')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'Visibility')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'WireframeMode')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'Highlight/State')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'LightingMode')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'Visibility')
Object::connect: No such signal QComboBox::currentTextChanged(QString)
Object::connect: (receiver name: 'WireframeMode')
omniORB: From endpoint: giop:tcp:[::1]:46208. Detected GIOP 1.0 protocol error in input message. giopImpl10.cc:590. Connection is closed.
omniORB: To endpoint: giop:tcp:[::1]:46208. Send GIOP 1.0 MessageError because a protocol error has been detected. Connection is closed.
I'm using python2.7, and Ubuntu16.04. Any help would be welcome,
Best
Rohan
I can not figure out why I am not able to compile the package. I got the following error:
error: ‘void QAbstractButton::clicked(bool)’ is protected within this context
QObject::connect(button, &QAbstractButton::clicked, [this]() { get(); });
^~~~~~~
In file included from /usr/include/qt4/QtGui/qcheckbox.h:45:0,
from /usr/include/qt4/QtGui/QCheckBox:1,
from /home/amosca/gepetto-viewer/src/node-property.cpp:21:
/usr/include/qt4/QtGui/qabstractbutton.h:127:10: note: declared protected here
void clicked(bool checked = false);
^~~~~~~
/home/amosca/gepetto-viewer/src/node-property.cpp:158:76: error: no matching function for call to ‘gepetto::viewer::VoidProperty::connect(QPushButton*&, void (QAbstractButton::*)(bool), gepetto::viewer::VoidProperty::guiEditor()::<lambda()>)’
QObject::connect(button, &QAbstractButton::clicked, [this]() { get(); });
^
In file included from /usr/include/qt4/QtCore/QObject:1:0,
from /home/amosca/gepetto-viewer/include/gepetto/viewer/node-property.h:29,
from /home/amosca/gepetto-viewer/src/node-property.cpp:17:
/usr/include/qt4/QtCore/qobject.h:204:17: note: candidate: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
static bool connect(const QObject *sender, const char *signal,
^~~~~~~
/usr/include/qt4/QtCore/qobject.h:204:17: note: candidate expects 5 arguments, 3 provided
/usr/include/qt4/QtCore/qobject.h:217:17: note: candidate: static bool QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)
static bool connect(const QObject *sender, const QMetaMethod &signal,
^~~~~~~
/usr/include/qt4/QtCore/qobject.h:217:17: note: candidate expects 5 arguments, 3 provided
/usr/include/qt4/QtCore/qobject.h:337:13: note: candidate: bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
inline bool QObject::connect(const QObject *asender, const char *asignal,
^~~~~~~
/usr/include/qt4/QtCore/qobject.h:337:13: note: no known conversion for argument 2 from ‘void (QAbstractButton::*)(bool)’ to ‘const char*’
src/CMakeFiles/gepetto-viewer.dir/build.make:611: recipe for target 'src/CMakeFiles/gepetto-viewer.dir/node-property.cpp.o' failed
make[2]: *** [src/CMakeFiles/gepetto-viewer.dir/node-property.cpp.o] Error 1
make[2]: uscita dalla directory "/home/amosca/gepetto-viewer/build"
CMakeFiles/Makefile2:1471: recipe for target 'src/CMakeFiles/gepetto-viewer.dir/all' failed
make[1]: *** [src/CMakeFiles/gepetto-viewer.dir/all] Error 2
make[1]: uscita dalla directory "/home/amosca/gepetto-viewer/build"
Makefile:143: recipe for target 'all' failed
make: *** [all] Error 2
The output of the cmake is the following:
-- Package version (ROS package.xml): 4.12.1
-- CMake versions older than 3.12 may warn when looking to Boost components. Custom macros are used to find it.
-- The CXX compiler identification is GNU 7.5.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Performing Test R-pedantic
-- Performing Test R-pedantic - Success
-- Performing Test R-Wno-long-long
-- Performing Test R-Wno-long-long - Success
-- Performing Test R-Wall
-- Performing Test R-Wall - Success
-- Performing Test R-Wextra
-- Performing Test R-Wextra - Success
-- Performing Test R-Wcast-align
-- Performing Test R-Wcast-align - Success
-- Performing Test R-Wcast-qual
-- Performing Test R-Wcast-qual - Success
-- Performing Test R-Wformat
-- Performing Test R-Wformat - Success
-- Performing Test R-Wwrite-strings
-- Performing Test R-Wwrite-strings - Success
-- Performing Test R-Wconversion
-- Performing Test R-Wconversion - Success
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning at cmake/doxygen.cmake:496 (MESSAGE):
Failed to find Doxygen, documentation will not be generated.
Call Stack (most recent call first):
cmake/post-project.cmake:59 (_SETUP_PROJECT_DOCUMENTATION)
CMakeLists.txt:41 (PROJECT)
-- Default C++ standard: 201402
-- Minimal C++ standard upgraded to 11
-- C++ standard sufficient: Minimal required 11, currently defined: 14
-- openscenegraph >= 3.2 is required.
-- Checking for module 'openscenegraph>=3.2'
-- Found openscenegraph, version 3.2.3
-- Pkg-config module openscenegraph v3.2.3 has been detected with success.
-- openthreads >= 2.6 is required.
-- Checking for module 'openthreads>=2.6'
-- Found openthreads, version 3.3.1
-- Pkg-config module openthreads v3.3.1 has been detected with success.
-- openscenegraph-osgQt is required.
-- Checking for module 'openscenegraph-osgQt'
-- Found openscenegraph-osgQt, version 3.2.3
-- Pkg-config module openscenegraph-osgQt v3.2.3 has been detected with success.
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake-qt4 (found version "4.8.7")
-- qgv is optional.
-- Checking for module 'qgv'
-- No package 'qgv' found
-- Found PythonInterp: /usr/bin/python (found version "2.7.17")
-- PythonInterp: /usr/bin/python
-- PYTHON_INCLUDE_DIRS:/usr/include/python2.7
-- PYTHON_INCLUDE_DIR:/usr/include/python2.7
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found version "2.7.17")
-- PythonLibraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so
-- PythonLibraryDirs: /usr/lib/x86_64-linux-gnu
-- PythonLibVersionString: 2.7.17
-- Python site lib: lib/python2.7/dist-packages
-- Could NOT find PythonQt (missing: PYTHONQT_LIBRARY PYTHONQT_INCLUDE_DIR QtAll)
-- Boost version: 1.65.1
-- Found the following Boost libraries:
-- unit_test_framework
-- Boost version: 1.65.1
-- Found the following Boost libraries:
-- python27
-- Boost_PYTHON_LIBRARY: /usr/lib/x86_64-linux-gnu/libboost_python-py27.so
CMake Warning (dev) in CMakeLists.txt:
A logical block opening on the line
/home/amosca/gepetto-viewer/CMakeLists.txt:160 (IF)
closes on the line
/home/amosca/gepetto-viewer/CMakeLists.txt:168 (ENDIF)
with mis-matching arguments.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning at CMakeLists.txt:163 (MESSAGE):
neither ffmpeg nor avconv have been found.
-- Skipping PythonQt settings
-- Configuring done
CMake Warning (dev) in src/CMakeLists.txt:
Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files.
Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
For compatibility, CMake is excluding the GENERATED source file(s):
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_action-search-bar.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_bodytreewidget.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/dialog/moc_configuration.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/dialog/moc_dialogloadenvironment.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/dialog/moc_dialogloadrobot.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/dialog/moc_pluginmanagerdialog.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_ledindicator.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_mainwindow.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_node-action.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_osgwidget.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_selection-event.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_selection-handler.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_shortcut-factory.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_tree-item.cxx"
"/home/amosca/gepetto-viewer/build/src/__/include/gepetto/gui/moc_windows-manager.cxx"
"/home/amosca/gepetto-viewer/build/src/qrc_images.cxx"
from processing by AUTOMOC and AUTOUIC. If any of the files should be
processed, set CMP0071 to NEW. If any of the files should not be
processed, explicitly exclude them by setting the source file property
SKIP_AUTOGEN:
set_property(SOURCE file.h PROPERTY SKIP_AUTOGEN ON)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Generating done
-- Build files have been written to: /home/amosca/gepetto-viewer/build
what am i doing wrong?
Follows discussion in stack-of-tasks/pinocchio#1068
The implementation (418fb8f) is very simple and being tested.
With the new fixes, I would need to make a new release of Gepetto-viewer. @jmirabel Is it fine for you?
As found by @bmelya, <link name="DFKI_Motor_0/axis">
doesn't work.
Hi,
I am trying to install gepetto-viewer using robotpkg, which seems to be configured correctly because I am able to install and use other packages (e.g., pinocchio). However, when trying to install gepetto-viewer I get the following error
The following packages have unmet dependencies:
robotpkg-gepetto-viewer : Depends: robotpkg-urdfdom-headers (= 0.3.0) but 1.0.4 is to be installed
Depends: robotpkg-urdfdom (= 0.3.0r2) but 1.0.3 is to be installed
E: Unable to correct problems, you have held broken packages.
olli@oberon:~/Documents/PhD/devel/projects/consim/script$
I am working on Linux Mint 19.2, which is based on Ubuntu 18.04. I have tried to clean my system by uninstalling most robotpkg packages, so that now I have only the following packages:
$ dpkg -l | grep robotpkg
ii robotpkg-eigen3 3.3.0 amd64 a C++ template library for linear algebra
ii robotpkg-hpp-fcl+doc 1.2.0 amd64 Humanoid Path Planner (collision detection and distance computations)
ii robotpkg-libccd 2.0 amd64 collision detection
ii robotpkg-octomap 1.9.0 amd64 An Efficient Probabilistic 3D Mapping Framework Based on Octrees
ii robotpkg-py36-eigenpy 1.6.9 amd64 Eigen bindings to python
Can anybody help me figure out why it doesn' t work? Thanks in advance for your help.
I try to recompile HPP with the latest releases to update the installation instruction.
When linking gepetto-gui
I have many undefined symbols and I notice that the link command does not contain -lpython
. Looking at the CMakeLists below,
gepetto-viewer/src/CMakeLists.txt
Line 147 in f7b4a44
TARGET_LINK_LIBRARY(${LIBRARY_NAME} python)
I do not understand either why
${PROJECT_QT_LIBS}
${PYTHONQT_LIBRARIES})
is not inside the test
IF(GEPETTO_GUI_HAS_PYTHONQT)
The linking command line:
[ 91%] Linking CXX executable gepetto-gui
cd /home/florent/devel/test/src/gepetto-viewer/build-rel/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/gepetto-gui.dir/link.txt --verbose=1
/usr/lib/ccache/g++ -pedantic -Wno-long-long -Wall -Wextra -Wcast-align -Wcast-qual -Wformat -Wwrite-strings -Wconversion -O3 -DNDEBUG -rdynamic -losg -losgDB -losgFX -losgGA -losgParticle -losgSim -losgText -losgUtil -losgTerrain -losgManipulator -losgViewer -losgWidget -losgShadow -losgAnimation -losgVolume -lOpenThreads CMakeFiles/gepetto-gui.dir/gui/main.cc.o CMakeFiles/gepetto-gui.dir/gepetto-gui_autogen/mocs_compilation.cpp.o -o gepetto-gui -Wl,-rpath,/home/florent/devel/test/src/gepetto-viewer/build-rel/src:/home/florent/devel/test/install/lib: -losg -losgDB -losgFX -losgGA -losgParticle -losgSim -losgText -losgUtil -losgTerrain -losgManipulator -losgViewer -losgWidget -losgShadow -losgAnimation -losgVolume -lOpenThreads libgepetto-viewer.so -losgQt -losg -losgDB -losgFX -losgGA -losgParticle -losgSim -losgText -losgUtil -losgTerrain -losgManipulator -losgViewer -losgWidget -losgShadow -losgAnimation -losgVolume -lOpenThreads -lboost_unit_test_framework -lboost_system -lSM -lICE -lX11 -lXext -lGL -lGLU /usr/lib/x86_64-linux-gnu/libQtOpenGL.so /usr/lib/x86_64-linux-gnu/libQtGui.so /usr/lib/x86_64-linux-gnu/libQtNetwork.so /usr/lib/x86_64-linux-gnu/libQtXml.so /usr/lib/x86_64-linux-gnu/libQtCore.so /home/florent/devel/test/install/lib/libPythonQt.so -lboost_python
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyUnicodeUCS4_FromEncodedObject'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyNumber_InPlaceDivide'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyString_Size'
libgepetto-viewer.so: undefined reference to `PyString_FromStringAndSize'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyString_InternFromString'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyInt_AsLong'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyUnicodeUCS4_AsWideChar'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyString_AsString'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyString_FromFormat'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyClass_Type'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyString_FromString'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyFile_AsFile'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `Py_InitModule4_64'
libgepetto-viewer.so: undefined reference to `PyInt_Type'
libgepetto-viewer.so: undefined reference to `PyInt_FromLong'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyFile_FromString'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to `PyNumber_Divide'
libgepetto-viewer.so: undefined reference to `PyString_Type'
collect2: error: ld returned 1 exit status
Hi,
Running gepetto-gui
, with gepetto-viewer & gepetto-viewer-corba raised the following errors:
"omniorbserver.so" : "The shared library was not found."
Plugin "omniorbserver.so" not loaded: "The shared library was not found."
This .so is available at /usr/lib/gepetto-gui-plugins
, so setting QT_PLUGIN_PATH
to this path fixed the issue for me.
But depending on how I build GV & GV-corba, this is sometimes required and sometimes not.
Without this QT_PLUGIN_PATH
, how is the plugin system able to find the plugins ?
Hi guys,
at Wandercraft we are using Gepetto Viewer for visualizing the robot movements. We are mentioning this in a paper and we would like to properly cite your work. However, I could not think of any good reference, nor I could find one by searching online.
As far as I remember there isn't any, but I still prefer to double-check with you: what's the most appropriate way to cite Gepetto Viewer? Should we just use a generic citation to the website?
@jmirabel, what do you recommend?
Hi all,
I was wondering whether there is a way to automatically record and save videos?
Hi,
I am trying to setup in my Ubuntu 18.04. When cmake ..
in my build folder, I am getting the following error:
CMake Error at CMakeLists.txt:31 (INCLUDE):
INCLUDE could not find load file:
cmake/base.cmake
CMake Error at CMakeLists.txt:32 (INCLUDE):
INCLUDE could not find load file:
cmake/boost.cmake
CMake Error at CMakeLists.txt:33 (INCLUDE):
INCLUDE could not find load file:
cmake/ide.cmake
CMake Error at CMakeLists.txt:34 (INCLUDE):
INCLUDE could not find load file:
cmake/apple.cmake
CMake Error at CMakeLists.txt:35 (INCLUDE):
INCLUDE could not find load file:
cmake/python.cmake
CMake Error at CMakeLists.txt:36 (INCLUDE):
INCLUDE could not find load file:
cmake/cxx-standard.cmake
CMake Error at CMakeLists.txt:40 (COMPUTE_PROJECT_ARGS):
Unknown CMake command "COMPUTE_PROJECT_ARGS".
-- Configuring incomplete, errors occurred!
I checked the folder /my_workspace/src/gepetto-viewer/cmake
and it is empty.
Thank you.
I can get the Talos robot to load fine. I've created my own urdf and srdf that loads in RViz2 fine but in Gepetto it's a jumble of links. It does load the links, but I have to zoom out as the model is about 40x or more larger than the talos model. In Blender the Talos STL and my STL/DAE models import as similar size so the models do not seem to be so different. Possibly the urdfdom is not respecting the STL units? (...but I dont really know what I'm talking about.)
The joint angles are also random. Possibly this will correct itself once the scale issue is resolved.
P.S. I looked on github, stackoverflow and looked for gepetto forum...is this the wrong place to post?
Hi,
I have installed gepetto-viewer and I can successfully use it as follows:
gepetto-gui
on a terminalcrocoddyl
either from terminal with python -m crocoddyl.examples.quadrupedal_gaits "display" "plot" # enable display and plot
or from a python IDE within a venv.As a result I can see the motion generated by the solvers.
However, when trying to run examples of crocoddyl
in jupyter notebooks (while gepetto-gui
is running on a terminal) gepetto-viewer
is not working (like if the notebook cannot find the running gepetto-gui
). E.g. when running the bipedal_walking.ipynb I get the following error:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-9-8f57f921a9fe> in <module>()
37
38 # Using the meshcat displayer, you could enable gepetto viewer for nicer view
---> 39 display = crocoddyl.GepettoDisplay(talos_legs, 4, 4, frameNames=[rightFoot, leftFoot])
40 # display = crocoddyl.MeshcatDisplay(talos_legs, 4, 4, False)
41 ddp.setCallbacks([crocoddyl.CallbackLogger(),
/opt/openrobots/lib/python2.7/site-packages/crocoddyl/__init__.pyc in __init__(self, robot, rate, freq, cameraTF, floor, frameNames, visibility)
98 self.frameTrajColor[fr] = list(np.hstack([np.random.choice(range(256), size=3) / 256., 1.]))
99
--> 100 self._addRobot()
101 self._setBackground()
102 if cameraTF is not None:
/opt/openrobots/lib/python2.7/site-packages/crocoddyl/__init__.pyc in _addRobot(self)
237 # Spawn robot model
238 self.robot.initViewer(windowName="crocoddyl", loadModel=False)
--> 239 self.robot.loadViewerModel(rootNodeName="robot")
240
241 def _setBackground(self):
/opt/openrobots/lib/python2.7/site-packages/pinocchio/robot_wrapper.pyc in loadViewerModel(self, *args, **kwargs)
292 def loadViewerModel(self, *args, **kwargs):
293 """Create the scene displaying the robot meshes in gepetto-viewer"""
--> 294 self.viz.loadViewerModel(*args, **kwargs)
295
296 @deprecated("Use loadViewerModel")
/opt/openrobots/lib/python2.7/site-packages/pinocchio/visualize/gepetto_visualizer.pyc in loadViewerModel(self, rootNodeName)
135
136 # Start a new "scene" in this window, named "world", with just a floor.
--> 137 gui = self.viewer.gui
138 self.viewerRootNodeName = self.sceneName + "/" + rootNodeName
139
AttributeError: 'GepettoVisualizer' object has no attribute 'viewer'
I have installed jupyter from Anaconda for python 2.7 in my Ubuntu 18.04. I have installed gepetto-viewer with robotpkg-py27-qt5-gepetto-viewer-corba
.
Any idea how to fix this?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.