Code Monkey home page Code Monkey logo

fast-racing's Introduction

Fast-Racing

An Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing

0. Overview

Fast-Racing is a strong baseline that focuses on high-quality and extremely aggressive SE(3) trajectory generation.

The back-end optimization is a parallel extension of GCOPTER for drone racing, also powered by MINCO.

Related Paper:

Please cite BOTH papers below if this repo helps you.

Video Links: youtube or bilibili.

1. Setup

All the tests are conducted in the Linux environment on a computer equipped with an Intel Core i7-10700 CPU and a GeForce RTX 2060 GPU.

Moreover, Our software is developed and tested in Ubuntu 18.04, 20.04 with ROS installed.

ROS can be installed here: ROS Installation.

Also, we need to install gcc>=8.0.0 and Eigen>=3.3.0.

(Notion: if you are using Ubuntu 20.04, just ignore this step because higher version of gcc and Eigen have been installed while you are installing ROS; but if you are using Ubuntu18.04, you need to update these versions.)

Install gcc>=8.0.0:

  1. Type the following command to install it.

    sudo apt-get install gcc-8 g++-8
    
  2. Verify installation by:

    gcc-8 --version
    

Install Eigen>=3.3.0

You can download the source code package from Eigen Installation.

Please make sure to install the correct version.

Your can run the following command to check Eigen version.

sudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h

2. Download Track Binaries

  1. Download the settings.json and move it to~/Documents/AirSim/settings.json.

  2. Download any one of the tracks such as Zhangjiajie.zip, and unzip it.

  3. Test it. Take Zhangjiajie as an example. Open a terminal window, cd to Zhangjiajie/directory. and type the following command:

    ./run.sh -windowed
    

3. Build on ROS

  1. Install the dependence.

    sudo apt-get install libarmadillo-dev
    sudo apt-get install ros-${ROS_VERSION_NAME}-octomap*
    sudo apt-get install ros-${ROS_VERSION_NAME}-tf2-sensor-msgs ros-${ROS_VERSION_NAME}-tf2-geometry-msgs ros-${ROS_VERSION_NAME}-mavros*
    

    where ${ROS_VERSION_NAME} is the name of your ROS release.

  2. Create an empty new workspace and clone this repository to your workspace:

    cd ~/your_catkin_ws/src
    git clone https://github.com/ZJU-FAST-Lab/Fast-Racing
    cd ..
    
  3. Compile it.

    If your default gcc isn't 8 or greater (check using gcc --version), then compilation will fail. In that case, use gcc-8 explicitly as follows.

    catkin_make -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 
    

4. Run the Simulation

  1. Run the track binary.

    Before the simulation racing, you need to run the rack binary.

    Open a terminal window, cd to Zhangjiajie/, Urbancity/ or Moderncity/ directory. and type the following command:

    ./run.sh -windowed
    
    1. Run the planner.

    Open a new terminal window, cd to ~/your_catkin_ws/ and type:

    source devel/setup.bash
    

    Then, run the script corresponding to the track. Take Zhangjiajie as the example:

    ./zhangjiajie.sh 
    

    After the global map is set up, you can use the 3D Nav Goal in RVIZ to trigger the planning.

Here is an example:

5. Use GPU or Not

Packages in this repo, plan_manage have GPU, CPU two different versions. By default, they are in CPU version for better compatibility. By changing

set(ENABLE_CUDA false)

in the CMakeList.txt in plan_manage packages, to

set(ENABLE_CUDA true)

CUDA will be turned-on to use the parallel architecture to speed up the computation of the optimization.

Please remember to also change the 'arch' and 'code' flags in the line of

    set(CUDA_NVCC_FLAGS 
      -gencode arch=compute_70,code=sm_70;
    ) 

in CMakeList.txt, if you encounter compiling error due to different Nvidia graphics card you use. You can check the right code here.

Don't forget to re-compile the code!

For installation of CUDA, please go to CUDA ToolKit

6. Licence

The source code is released under GPLv3 license.

7. Maintaince

For any technical issue, please contact Zhichao HAN ([email protected]) or Zhepei WANG ([email protected]).

For commercial inquiries, please contact Fei GAO ([email protected]).

fast-racing's People

Contributors

han-sin avatar petertheprocess avatar zhepeiwang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fast-racing's Issues

Error about the simulator

When I run ./run.sh -windowed, even if the simulation can be turned on normally, but there are errors:
[2021.11.06-03.01.44:335][ 0]LogActor: Warning: BP_CameraDirector_C /Game/ZhangJiajieMountain/Maps/Demonstration.Demonstration:PersistentLevel.CameraDirector has natively added scene component(s), but none of them were set as the actor's RootComponent - picking one arbitrarily [2021.11.06-03.01.44:436][ 0]LogStreaming: Error: Couldn't find file for package /AirSim/Weather/WeatherFX/WeatherActor requested by async loading code. NameToLoad: /AirSim/Weather/WeatherFX/WeatherActor [2021.11.06-03.01.44:436][ 0]LogStreaming: Error: Found 0 dependent packages... [2021.11.06-03.01.44:437][ 0]LogTemp: Warning: Warning, WeatherAPI got invalid weather actor class! [2021.11.06-03.01.44:437][ 0]LogStreaming: Error: Couldn't find file for package /AirSim/Weather/UI/MenuActor requested by async loading code. NameToLoad: /AirSim/Weather/UI/MenuActor [2021.11.06-03.01.44:437][ 0]LogStreaming: Error: Found 0 dependent packages... [2021.11.06-03.01.44:437][ 0]LogTemp: Warning: Warning, WeatherAPI got invalid menu actor class!

And when I run./zhangjiajie.sh, rviz can be opened and the planning is nice, but the simulator can't go on. And there are errors:

Exception raised by the API:
rpclib: function 'simGetGroundTruthEnvironment' (called with 1 arg(s)) threw an exception. The exception is not derived from std::exception. No further information available.

How can I deal? Thanks!

The Drone Loses Control

The Drone Loses Control

Hello, thanks for sharing your great work!

Currently, I encountered the same problem as #11, but I can not solve by his way.

Platform

Ubuntu 20, ROS Noetic.

Screenshots

Screenshot from 2023-05-05 14-41-31

Screenshot from 2023-05-05 14-42-34

Sorry to bother you.

How can I run this project in the other scenes of UE4?

How can I run this code in the default “Blocks” scene of airsim?
"[ WARN] [1646829103.736563994]: Nothing to publish, octree is empty" and "rpclib: client error C0002: Function 'simGetImages' was called with an invalid number of arguments. will appear", when I run the command roslaunch plan_manage zhangjiajie.launch.
Do I need to modify the source code of the airsim plug-in?

Rviz will crash after i use 3d Nav Goal.

rviZ will crash, after i use 3D Nav Goal.

[ INFO] [1651493818.239098900]: Begin to optimize the traj~
rviz: /usr/local/include/eigen3/Eigen/src/SVD/SVDBase.h:101: const MatrixVType& Eigen::SVDBase::matrixV() const [with Derived = Eigen::JacobiSVD<Eigen::Matrix<double, 2, 3, 0, 2, 3>, 2>; Eigen::SVDBase::MatrixVType = Eigen::Matrix<double, 3, 3>; typename Eigen::internal::traits::MatrixType::Scalar = double]: Assertion `m_isInitialized && "SVD is not initialized."' failed.
[rviz-1] process has died [pid 5130, exit code -6, cmd /home/cheng/catkin_ws/devel/lib/rviz/rviz -d /home/cheng/Fast_catkin_ws/src/Fast-Racing/src/plan_manage/launch/map_se3.rviz __name:=rviz __log:=/home/cheng/.ros/log/9fd63378-ca11-11ec-a66e-502f9bcf7948/rviz-1.log].
log file: /home/cheng/.ros/log/9fd63378-ca11-11ec-a66e-502f9bcf7948/rviz-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Although planning is still working, and simulator is working too.But I can also not see the trajectory in my Rviz, and Rviz just crashes.
I work on ubuntu18.04, melodic, unreal4.25, eigen3.3.0, gcc-8.4.0.
How can I solve this problem? Thank you!

How to tune the PID parameter?

How to adjust the PID parameter of the multirotor? I only get the drone's trajectory but can't control it smoothly. BTW, could you mind pointing me how to determine the value of the map/x_size of MAP?

RVIZ has blank display

Hi,

I followed your instruction and tested with the Zhangjiajie environment. It work - at least with the AirSim environment (finished all the gates successfully. However, Rviz has one issues. it is blank (no map is displayed)

and I get this warning:
[ WARN] [1630074867.684464842]: Invalid argument "/world_enu" passed to canTransform argument source_frame in tf2 frame_ids cannot start with a '/' like:

Could you please check if tf2 frames is setup correctly?

Best regards,

Some questions about controller

  1. What's the difference between using desired roll,pitch and using desired body rate to control FCU?
  2. Are there any tips for helping tune PID?
  3. In Airsim, it's simple flight mode without FCU SITL and just using pv controller. Do you want to use real FCU in SITL or HITL for se3 controller in the future?

CMake Error at utils/uav_simulator/Utils/uav_utils

When compiling the repo, I encounter an error, such as

CMake Error at utils/uav_simulator/Utils/uav_utils/CMakeLists.txt:31 (find_package):
By not providing "FindEigen.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Eigen", but
CMake did not find one.

Could not find a package configuration file provided by "Eigen" with any of
the following names:

EigenConfig.cmake
eigen-config.cmake

But I type sudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h in the terminal, and find the version is 3.3.4.

Meanwhile, I find the ego-planner repo also has a file uav_utils/CMakeLists.txt same to Fast-Racing, and I can successfully compile ego-planner, but Fast-Racing not.
I need help. Thanks!

failed to compile package "plan_manage"

Hi there! I got into some trouble when compiling the code.

My env

  • ROS noetic with Ubuntu 20.04
  • gcc and g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
  • clang version 10.0.0-4ubuntu1

Problem

I followed the instructions and everything went fine until I tried to compile the source code in step 3.
When I ran catkin build, 20 of 21 packages succeeded but the package plan_manage failed.
Some of the error messages are presented below:

In file included from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack/object_fwd.hpp:17,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack/v1/adaptor/adaptor_base_decl.hpp:14,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack/adaptor/adaptor_base_decl.hpp:13,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack/adaptor/adaptor_base.hpp:13,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack/v1/object_decl.hpp:16,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack/object_decl.hpp:14,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack/object.hpp:13,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack.hpp:23,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/detail/server_session.h:11,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/lib/rpc/detail/server_session.cc:1:
/home/chen/ros_ws/Fast-Racing/src/thirdparty/external/rpclib/rpclib-2.2.1/include/rpc/msgpack/v2/object_fwd.hpp:23:8: note: ‘struct clmdep_msgpack::v2::object’ declared here
   23 | struct object : v1::object {
      |        ^~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/AirLib/src/common/common_utils/FileSystem.cpp: In static member function ‘static std::string common_utils::FileSystem::getExecutableFolder()’:
/home/chen/ros_ws/Fast-Racing/src/thirdparty/AirLib/src/common/common_utils/FileSystem.cpp:128:13: warning: ignoring return value of ‘ssize_t readlink(const char*, char*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
  128 |     readlink("/proc/self/exe", szPath, sizeof(szPath));
      |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.cpp:15:22: error: ‘filesystem’ is not a namespace-name
   15 | using namespace std::filesystem;
      |                      ^~~~~~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.cpp: In member function ‘virtual void DumpLogCommandsCommand::Execute(std::shared_ptr<mavlinkcom::MavLinkVehicle>)’:
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.cpp:462:5: error: ‘path’ was not declared in this scope
  462 |     path dirPath(log_folder_);
      |     ^~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.cpp:464:10: error: ‘directory_iterator’ was not declared in this scope
  464 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |          ^~~~~~~~~~~~~~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.cpp:464:49: error: ‘next’ was not declared in this scope; did you mean ‘std::next’?
  464 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |                                                 ^~~~
      |                                                 std::next
In file included from /usr/include/c++/9/bits/stl_algobase.h:66,
                 from /usr/include/c++/9/memory:62,
                 from /home/chen/ros_ws/Fast-Racing/src/plan_manage/../thirdparty/MavLinkCom/include/MavLinkNode.hpp:7,
                 from /home/chen/ros_ws/Fast-Racing/src/plan_manage/../thirdparty/MavLinkCom/include/MavLinkVehicle.hpp:7,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.h:7,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.cpp:4:
/usr/include/c++/9/bits/stl_iterator_base_funcs.h:213:5: note: ‘std::next’ declared here
  213 |     next(_InputIterator __x, typename
      |     ^~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.cpp:464:57: error: ‘end’ was not declared in this scope; did you mean ‘std::end’?
  464 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |                                                         ^~~
      |                                                         std::end
In file included from /home/chen/ros_ws/Fast-Racing/src/plan_manage/../thirdparty/MavLinkCom/common_utils/type_utils.hpp:8,
                 from /home/chen/ros_ws/Fast-Racing/src/plan_manage/../thirdparty/MavLinkCom/common_utils/Utils.hpp:24,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.h:11,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/Commands.cpp:4:
/usr/include/c++/9/valarray:1244:5: note: ‘std::end’ declared here
 1244 |     end(const valarray<_Tp>& __va)
      |     ^~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:26:22: error: ‘filesystem’ is not a namespace-name
   26 | using namespace std::filesystem;
      |                      ^~~~~~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp: In function ‘void ConvertLogFileToJson(std::string)’:
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:163:9: error: ‘path’ was not declared in this scope
  163 |         path jsonPath(logFile);
      |         ^~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:164:9: error: ‘jsonPath’ was not declared in this scope
  164 |         jsonPath.replace_extension(".json");
      |         ^~~~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp: In function ‘void ConvertLogFileToCsv(std::string, int)’:
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:229:9: error: ‘path’ was not declared in this scope
  229 |         path jsonPath(logFile);
      |         ^~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:230:9: error: ‘jsonPath’ was not declared in this scope
  230 |         jsonPath.replace_extension(".csv");
      |         ^~~~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp: In function ‘void ConvertLogFilesToJson(std::string)’:
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:343:5: error: ‘path’ was not declared in this scope
  343 |     path dirPath(fullPath);
      |     ^~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:345:10: error: ‘directory_iterator’ was not declared in this scope
  345 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |          ^~~~~~~~~~~~~~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:345:49: error: ‘next’ was not declared in this scope; did you mean ‘std::next’?
  345 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |                                                 ^~~~
      |                                                 std::next
In file included from /usr/include/c++/9/bits/stl_algobase.h:66,
                 from /usr/include/c++/9/memory:62,
                 from /usr/include/c++/9/thread:39,
                 from /home/chen/ros_ws/Fast-Racing/src/plan_manage/../thirdparty/MavLinkCom/common_utils/Utils.hpp:9,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:6:
/usr/include/c++/9/bits/stl_iterator_base_funcs.h:213:5: note: ‘std::next’ declared here
  213 |     next(_InputIterator __x, typename
      |     ^~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:345:57: error: ‘end’ was not declared in this scope; did you mean ‘std::end’?
  345 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |                                                         ^~~
      |                                                         std::end
In file included from /home/chen/ros_ws/Fast-Racing/src/plan_manage/../thirdparty/MavLinkCom/common_utils/type_utils.hpp:8,
                 from /home/chen/ros_ws/Fast-Racing/src/plan_manage/../thirdparty/MavLinkCom/common_utils/Utils.hpp:24,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:6:
/usr/include/c++/9/valarray:1244:5: note: ‘std::end’ declared here
 1244 |     end(const valarray<_Tp>& __va)
      |     ^~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp: In function ‘void ConvertLogFilesToCsv(std::string)’:
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:373:5: error: ‘path’ was not declared in this scope
  373 |     path dirPath(fullPath);
      |     ^~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:375:10: error: ‘directory_iterator’ was not declared in this scope
  375 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |          ^~~~~~~~~~~~~~~~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:375:49: error: ‘next’ was not declared in this scope; did you mean ‘std::next’?
  375 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |                                                 ^~~~
      |                                                 std::next
In file included from /usr/include/c++/9/bits/stl_algobase.h:66,
                 from /usr/include/c++/9/memory:62,
                 from /usr/include/c++/9/thread:39,
                 from /home/chen/ros_ws/Fast-Racing/src/plan_manage/../thirdparty/MavLinkCom/common_utils/Utils.hpp:9,
                 from /home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:6:
/usr/include/c++/9/bits/stl_iterator_base_funcs.h:213:5: note: ‘std::next’ declared here
  213 |     next(_InputIterator __x, typename
      |     ^~~~
/home/chen/ros_ws/Fast-Racing/src/thirdparty/MavLinkCom/MavLinkTest/main.cpp:375:57: error: ‘end’ was not declared in this scope; did you mean ‘std::end’?
  375 |     for (directory_iterator next(dirPath), end; next != end; ++next) {
      |                                                         ^~~
      |                                                         std::end

Sincerely appreciate any possible help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.