erdalpekel / panda_simulation Goto Github PK
View Code? Open in Web Editor NEWThis repository contains a sample ROS package that launches the FRANKA EMIKA Panda robot in the Gazebo simulation environment.
License: MIT License
This repository contains a sample ROS package that launches the FRANKA EMIKA Panda robot in the Gazebo simulation environment.
License: MIT License
When following your blockposts and the README to install the panda simulator I stumbled across the following issue when launching the simulator:
[FATAL] [1561640151.166516932]: Exception while loading controller manager 'moveit_simple_controller_manager/MoveItSimpleControllerManager': According to the loaded plugin descriptions the class moveit_simple_controller_manager/MoveItSimpleControllerManager with base class type moveit_controller_manager::MoveItControllerManager does not exist. Declared types are moveit_fake_controller_manager/MoveItFakeControllerManager
I fixed it by adding <depend>moveit_simple_controller_manager</depend>
to the dependencies in package.xml.
Hello @erdalpekel, I am trying to build the panda_simulation using the instruction in the read me.
I am using ubuntu 20.04.
So my build fails, the screenshot is below( also if you see top of screenshot it says Error2 and waiting for unfinished jobs)
But when I build in the beginning I also get a cmake warning regarding OpenMesh as shown in the screenshot below:
I installed OpenMesh from source and I followed the instructions here: https://www.graphics.rwth-aachen.de/media/openmesh_static/Documentations/OpenMesh-6.2-Documentation/a00030.html
Is the cmake warning related to the repository not building?
do you have any suggestions for me, how to build it?
Hi,
First off, thank you for sharing these tutorials and these files... They are a big help... :)
I had a problem... I'm not sure how i'm supposed to control the robot hand...
For example, when i try using the moveit commander command line interface, and try using either the groups 'hand' or 'panda_arm_hand', i always get the message Failed while moving to goal.
Using the group 'panda_arm' works correctly.
Hi Erdal,
unfortunately I can't make the robot to move after startup of RVIZ and Gazebo. The following errors are being printed to console:
A quick look in the log file reveals this:
I built the newest version of libfranka from source. Does it require an older version of libfranka maybe?
when I run the launch file simulation.launch the robot is moving random and I dont know how to fix the error
-- +++ processing catkin package: 'cvg_sim_gazebo'
-- ==> add_subdirectory(tum_simulator/cvg_sim_gazebo)
CMake Warning at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:76 (find_package):
Could not find a package configuration file provided by "gazebo_ros" with
any of the following names:
gazebo_rosConfig.cmake
gazebo_ros-config.cmake
Add the installation prefix of "gazebo_ros" to CMAKE_PREFIX_PATH or set
"gazebo_ros_DIR" to a directory containing one of the above files. If
"gazebo_ros" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
tum_simulator/cvg_sim_gazebo/CMakeLists.txt:7 (find_package)
-- Could not find the required component 'gazebo_ros'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "gazebo_ros" with
any of the following names:
gazebo_rosConfig.cmake
gazebo_ros-config.cmake
Add the installation prefix of "gazebo_ros" to CMAKE_PREFIX_PATH or set
"gazebo_ros_DIR" to a directory containing one of the above files. If
"gazebo_ros" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
tum_simulator/cvg_sim_gazebo/CMakeLists.txt:7 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/islamusma/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/islamusma/catkin_ws/build/CMakeFiles/CMakeError.log".
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
please help me to get rid from this problem , i look forward for your swift relply
Dear Erdal,
I followed the instructions in your readme & your blog, but unfortunately I am not able to simulate the plans created in rviz in the Gazebo-Environment. I hope you can give me a hint about what I can do to get it working. You can see all information and my log below. Thanks in advance.
My Environment:
What I already tried:
Log:
[ERROR] [1584633581.317447289, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_joint1 [ERROR] [1584633581.318023500, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_joint2 [ERROR] [1584633581.318550172, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_joint3 [ERROR] [1584633581.318997989, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_joint4 [ERROR] [1584633581.319560690, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_joint5 [ERROR] [1584633581.320012283, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_joint6 [ERROR] [1584633581.320441589, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_joint7 [ERROR] [1584633581.320937503, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_finger_joint1 [ERROR] [1584633581.321403157, 0.358000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_finger_joint2 [ INFO] [1584633581.324496048, 0.358000000]: Loaded gazebo_ros_control. [INFO] [1584633581.333322, 0.359000]: Controller Spawner: Waiting for service controller_manager/switch_controller [INFO] [1584633581.334815, 0.359000]: Controller Spawner: Waiting for service controller_manager/unload_controller [INFO] [1584633581.336450, 0.359000]: Loading controller: panda_hand_controller [ERROR] [1584633581.364777974, 0.366000000]: Could not find joint 'panda_finger_joint1' in 'hardware_interface::EffortJointInterface'. [ERROR] [1584633581.364973330, 0.366000000]: Failed to initialize the controller [ERROR] [1584633581.365025908, 0.366000000]: Initializing controller 'panda_hand_controller' failed [Err] [REST.cc:205] Error in REST request libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org' [spawn_urdf-4] process has finished cleanly log file: /home/sebastian/.ros/log/a259ca5c-69fa-11ea-8838-f875a49f9fe4/spawn_urdf-4*.log [INFO] [1584633581.605707, 0.606000]: Controller Spawner: Waiting for service controller_manager/switch_controller [INFO] [1584633581.607730, 0.608000]: Controller Spawner: Waiting for service controller_manager/unload_controller [INFO] [1584633581.609528, 0.609000]: Loading controller: joint_state_controller [INFO] [1584633581.615283, 0.616000]: Loading controller: panda_arm_controller [ERROR] [1584633581.620880308, 0.621000000]: Could not find joint 'panda_joint1' in 'hardware_interface::EffortJointInterface'. [ERROR] [1584633581.620941163, 0.621000000]: Failed to initialize the controller [ERROR] [1584633581.621004136, 0.621000000]: Initializing controller 'panda_arm_controller' failed [ERROR] [1584633582.366421, 1.357000]: Failed to load panda_hand_controller
Dear @erdalpekel,
I am now trying to create a planning scene in gazebo, but doesn't know how to publish that to Rviz. I tried it with the box you created through the box.launch file. But it doesn't show up in Rviz, I don't know if this should be the case or not.
I tried to understand the hierachy of the launch files with the rqt_graph, but didn't find it really helpful, because the "box_state_publisher" and "robot_state_publisher" seem to have the same connections from the "gazebo" node to the "move_group" node.
Can you give me some advice on how to publish the box to Rviz?
Kind regards,
Christian
Hi !
Very nice work there. I actually try to push a cube with the grippers but they are not colliding with it. The grippers go through like there was nothing there. I am sure that my cube model is okay since a different robot (iCub) manage to push it.
Best,
Quentin
The problem described in issue #20 is still present, and is caused by Gazebo not supporting mimic joints out of the box. I remediated it by deleting line 77 in hand.xacro and making the fingers independent, but I suspect this is not the best solution?
I tried to add a gazebo model plugin inside the panda.gazebo.xacro using and . However, every time I try to run it, it will generate the following error:
_[gazebo-2] process has died [pid 3515, exit code 139, cmd /home/jason4/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/gzserver -e ode worlds/empty.world __name:=gazebo _log:=/home/jason4/.ros/log/b868d85c-f63f-11ea-b153-080027b07338/gazebo-2.log].
No log file in that name (gazebo-2.log) is generated.
Hi!
Thank you a lot for this tutorial.
But i have a problem while doing:
catkin_make -j4 -DCMAKE_BUILD_TYPE=Release -DFranka_DIR:PATH=~/path/to/libfranka/build
I got an error:
CMake Error at franka_ros/franka_gripper/CMakeLists.txt:17 (find_package):
By not providing "FindFranka.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Franka", but
CMake did not find one.
Could not find a package configuration file provided by "Franka" (requested
version 0.5.0) with any of the following names:
FrankaConfig.cmake
franka-config.cmake
Add the installation prefix of "Franka" to CMAKE_PREFIX_PATH or set
"Franka_DIR" to a directory containing one of the above files. If "Franka"
provides a separate development package or SDK, be sure it has been
installed.
-- Configuring incomplete, errors occurred!
See also "/home/pdc-labor/pandanew_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/pdc-labor/pandanew_ws/build/CMakeFiles/CMakeError.log".
Makefile:3498: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
pdc-labor@pdclabor-ThinkPad-E480:~/pandanew_ws$
Why can it happen?
I followed the exact steps as suggested by you but I face this issue when I try to open the gripper in gazebo using the "panda_arm_hand" group.
I use the panda_simulation/launch/simulation.launch file from your code when I face this error.
`[ INFO] [1598501920.670434928, 22.629000000]: Constructing new MoveGroup connection for group 'panda_arm_hand' in namespace ''
[ INFO] [1598501920.760571710, 22.699000000]: Ready to take commands for planning group panda_arm_hand.
[ INFO] [1598501920.760658933, 22.699000000]: Looking around: no
[ INFO] [1598501920.760693550, 22.699000000]: Replanning: no
[ INFO] [1598501928.376091787, 29.183000000]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline.
[ INFO] [1598501928.376485151, 29.183000000]: Planning attempt 1 of at most 1
[ INFO] [1598501928.376780958, 29.183000000]: Starting state is just outside bounds (joint 'panda_finger_joint1'). Assuming within bounds.
[ INFO] [1598501928.379398700, 29.186000000]: Planner configuration 'panda_arm_hand' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1598501928.381120592, 29.188000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.381200766, 29.188000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.381370661, 29.188000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.381435984, 29.188000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.397475351, 29.203000000]: RRTConnect: Created 5 states (2 start + 3 goal)
[ INFO] [1598501928.398498527, 29.204000000]: RRTConnect: Created 4 states (2 start + 2 goal)
[ INFO] [1598501928.400501796, 29.206000000]: RRTConnect: Created 6 states (2 start + 4 goal)
[ INFO] [1598501928.407793452, 29.211000000]: RRTConnect: Created 6 states (2 start + 4 goal)
[ INFO] [1598501928.408319705, 29.212000000]: ParallelPlan::solve(): Solution found by one or more threads in 0.027791 seconds
[ INFO] [1598501928.409109733, 29.213000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.409614384, 29.213000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.409819244, 29.213000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.410176520, 29.213000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.415975635, 29.216000000]: RRTConnect: Created 5 states (2 start + 3 goal)
[ INFO] [1598501928.417308157, 29.218000000]: RRTConnect: Created 4 states (2 start + 2 goal)
[ INFO] [1598501928.418953694, 29.220000000]: RRTConnect: Created 6 states (2 start + 4 goal)
[ INFO] [1598501928.421542082, 29.221000000]: RRTConnect: Created 6 states (2 start + 4 goal)
[ INFO] [1598501928.422544058, 29.221000000]: ParallelPlan::solve(): Solution found by one or more threads in 0.013612 seconds
[ INFO] [1598501928.423268307, 29.221000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.423932299, 29.221000000]: RRTConnect: Starting planning with 1 states already in datastructure
[ INFO] [1598501928.430913479, 29.227000000]: RRTConnect: Created 5 states (2 start + 3 goal)
[ INFO] [1598501928.435351748, 29.231000000]: RRTConnect: Created 5 states (2 start + 3 goal)
[ INFO] [1598501928.435927266, 29.232000000]: ParallelPlan::solve(): Solution found by one or more threads in 0.012887 seconds
[ INFO] [1598501928.468093214, 29.260000000]: SimpleSetup: Path simplification took 0.031553 seconds and changed from 3 to 2 states
[ INFO] [1598501928.469602657, 29.260000000]: Planning adapters have added states at index positions: [ 0 ]
[ INFO] [1598501928.474335734, 29.265000000]: Disabling trajectory recording
[ERROR] [1598501928.491541561, 29.279000000]: Joints on incoming goal don't match the controller joints.
[ WARN] [1598501928.493957406, 29.281000000]: Controller panda_hand_controller failed with error INVALID_JOINTS:
[ INFO] [1598501930.607518792, 31.027000000]: Controller panda_arm_controller successfully finished
[ WARN] [1598501930.607690853, 31.027000000]: Controller handle panda_hand_controller reports status FAILED
[ INFO] [1598501930.607848520, 31.027000000]: Completed trajectory execution with status FAILED ...
[ INFO] [1598501930.629964474, 31.046000000]: ABORTED: Solution found but controller failed during execution
`
Hello @erdalpekel,
first, thanks for your great work implementing FRANKA into Gazebo.
Regarding my problem:
I'm trying for a few days now to implement your model of FRANKA into gazebo and it works more or less. I followed your tutorial and also installed libfranka from source. Worked great so far. But then I run roslaunch panda_simulation simulation.launch
.
It opens two windows: Rviz(upper picture) and Gazebo(lower picture).
As you can see FRANKA is colliding with itself and so I can't do any planning nor executing the paths in Rviz.
Here is the full output from the launch command: full_output_from_launch.txt
I'm working with Ubuntu 18.04 and ROS Melodic.
Do you have an idea what the problem could be and how to solve it?
Best regards,
Christian
Hi, thank you for your useful package to launch Panda in Gazebo.
I want to ask why you changed a gripper controller from GripperCommand
to FollowJointTrajectory
.
erdalpekel/panda_moveit_config@a8087ab
Hello @erdalpekel,
the simulation and the gazebo integration works fine now. But I am getting this error for every joint(panda_joint1, panda_joint2, etc.), that I didn't specify pid gains. Upon launching the simulation I get this error:
[ERROR] [1584377149.867905243, 0.071000000]: No p gain specified for pid. Namespace: /gazebo_ros_control/pid_gains/panda_joint1
I could of course just specify any pid gains like this thread suggests. But I'm not entirely sure if I would be doing the right thing, because I'm not an engineer and thus not having much knowledge of the parameters.
Do you also get this error? Should I just ignore it or is it important for the simulation in Gazebo?
Best regards,
Christian
Hi, I notice that you devide controller into two parts : panda_arm_controller and panda_hand_controller. I am confused that panda_hand_controller reports status FAILED when I excute the pick place task ( https://github.com/ros-planning/moveit_tutorials/tree/master/doc/pick_place ). The more information (may related) is below:
[ INFO] [1692021710.716025900, 14.892000000]: Controller 'panda_arm_controller' successfully finished
[ERROR] [1692021710.717598532, 14.894000000]: Joints on incoming goal don't match the controller joints.
[ WARN] [1692021710.722905013, 14.896000000]: Controller 'panda_hand_controller' failed with error INVALID_JOINTS:
[ WARN] [1692021710.723514930, 14.896000000]: Controller handle panda_hand_controller reports status FAILED
[ INFO] [1692021710.723870417, 14.896000000]: Completed trajectory execution with status FAILED ...
[ INFO] [1692021711.742351492, 15.789000000]: Planning attempt 1 of at most 1
[ERROR] [1692021711.742836901, 15.790000000]: Attached body 'object' not found
By the way, I check that the panda_hand_controller was loaded already. But it warns me that Group state 'ready' doesn't specify all group joints in group 'panda_arm_hand'. panda_finger_joint1 is missing. I use the noetic. Waiting for your apply!
Your description says your packages are based on ROS melodic, but actually your franka_ros package forked from franka https://github.com/erdalpekel/franka_ros seems pulled from kinetic. I wonder if there will be conflict in such way.
Another problem is, I didn't find the file franka_description/robots/panda.transmission.xacro in your franka_ros package as your description.
Hi,
I am new to ROS and I have been trying to setup the panda arm in my system and configure Gazebo panda simulation.
Although I followed all the instructions on the repo, cmake fails with the following errors:
-- +++ processing catkin package: 'panda_simulation'
-- ==> add_subdirectory(panda_simulation)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- filesystem
-- system
-- Checking for module 'jsoncpp'
-- No package 'jsoncpp' found
CMake Error at panda_simulation/CMakeLists.txt:38 (message):
message called with incorrect number of arguments
CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:166 (message):
catkin_package() DEPENDS on 'system_lib' but neither
'system_lib_INCLUDE_DIRS' nor 'system_lib_LIBRARIES' is defined.
Call Stack (most recent call first):
/opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)
panda_simulation/CMakeLists.txt:44 (catkin_package)
-- Configuring incomplete, errors occurred!
See also "/home/akilesh/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/akilesh/catkin_ws/build/CMakeFiles/CMakeError.log".
Makefile:5512: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
I checked and found that json cpp is installed. I dont understand why it doesn't pick it up. I also tried adding the path to the jsoncpp package with no success.
Any help would be much appreciated.
Hi @erdalpekel,
I tested creating a workspace with "catkin build" instead of "catkin_make". And it works fine. Is there any reason you use "catkin_make"?
I encountered 1 warnings I didn't see when building with "catkin_make":
Starting >>> franka_hw
_______________________________________________________________________________
Warnings << panda_simulation:cmake /home/chansch/catkin_ws/logs/panda_simulation/build.cmake.000.log
jsoncpp
CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:166 (message):
catkin_package() DEPENDS on 'system_lib' but neither
'system_lib_INCLUDE_DIRS' nor 'system_lib_LIBRARIES' is defined.
Call Stack (most recent call first):
/opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)
CMakeLists.txt:41 (catkin_package)
This warning I encountered with both building commands:
_______________________________________________________________________________
Warnings << panda_simulation:make /home/chansch/catkin_ws/logs/panda_simulation/build.make.000.log
In file included from /opt/ros/melodic/include/ros/ros.h:40:0,
from /opt/ros/melodic/include/urdf/model.h:50,
from /opt/ros/melodic/include/moveit/robot_model/robot_model.h:43,
from /opt/ros/melodic/include/moveit/robot_state/robot_state.h:41,
from /opt/ros/melodic/include/moveit/move_group_interface/move_group_interface.h:43,
from /home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp:2:
/home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp: In function ‘int main(int, char**)’:
/opt/ros/melodic/include/ros/console.h:348:176: warning: format ‘%s’ expects argument of type ‘char*’, but argument 8 has type ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ [-Wformat=]
::ros::console::print(filter, __rosconsole_define_location__loc.logger_, __rosconsole_define_location__loc.level_, __FILE__, __LINE__, __ROSCONSOLE_FUNCTION__, __VA_ARGS__)
^
/opt/ros/melodic/include/ros/console.h:351:5: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER’
ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER(NULL, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/ros/melodic/include/ros/console.h:387:7: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION’
ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/ros/melodic/include/ros/console.h:572:35: note: in expansion of macro ‘ROS_LOG_COND’
#define ROS_LOG(level, name, ...) ROS_LOG_COND(true, level, name, __VA_ARGS__)
^~~~~~~~~~~~
/opt/ros/melodic/include/rosconsole/macros_generated.h:110:23: note: in expansion of macro ‘ROS_LOG’
#define ROS_INFO(...) ROS_LOG(::ros::console::levels::Info, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)
^~~~~~~
/home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp:88:7: note: in expansion of macro ‘ROS_INFO’
ROS_INFO("Creating %s collision objects directory.", path);
^
/home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp:127:74: warning: passing ‘const _frame_id_type {aka const std::__cxx11::basic_string<char>}’ as ‘this’ argument discards qualifiers [-fpermissive]
collision_object.header.frame_id = move_group_arm.getPlanningFrame();
^
In file included from /usr/include/c++/7/string:52:0,
from /usr/include/jsoncpp/json/config.h:9,
from /usr/include/jsoncpp/json/autolink.h:9,
from /usr/include/jsoncpp/json/json.h:9,
from /home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp:1:
/usr/include/c++/7/bits/basic_string.h:654:7: note: in call to ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
operator=(const basic_string& __str)
^~~~~~~~
Are these warnings normal?
Best regards,
Christian
PS: And one more thing. The command line auto completion for roslaunch doesn't work anymore. I don't know why. Maybe because I got the new version, since you did the last update?
This isn't as important, just wanted to know if you're having the same issues.
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.