← 开源
erdos-project

pylot

Modular autonomous driving platform running on the CARLA simulator and real-world vehicles.

ApplicationsSpecialistsPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
535
Star
139
Fork
+1
本周
12
贡献者
创建于 2019-06-04 · 更新于 2026-10-10 · 今日第 17520 名
主要开发者

erdos-project/pylot 排名第 17,520,有 535 个星标。

同类别比较

erdos-project/pylot 排名第 17,520,此处有 8 个同类条目;codota/tabnine-intellij 排名第 17,518。

同类别比较
名称排名指标
Davronov-Alimardon/canva-clone17,489
语言:
TypeScript
星标数:
536
分叉数:
265
简介:
A production-ready graphic design SaaS platform with an intuitive drag-and-drop editor, AI-powered features, and complete subscription management. Built with Next.js 14, Fabric.js canvas engine, Replicate AI, and Stripe payments.
jhj0517/AdvancedLivePortrait-WebUI17,493
语言:
Python
星标数:
536
分叉数:
52
简介:
gradio WebUI for AdvancedLivePortrait
HenryXiaoYang/XYBot17,507
语言:
Python
星标数:
535
分叉数:
68
简介:
XYBot是一个可运行于Linux和Windows的基于Hook的微信机器人🤖️!✅高度可自定义! ✅支持自我编写插件!非常多的功能:天气🌤️、获取新闻📰、ChatGPT聊天🗣️、Hypixel玩家查询🎮、随机图片📷、随机链接🔗、随机群成员👥、五子棋♟️、签到✅、查询积分📊、积分榜🏆、积分转送💰、积分抽奖🎁、积分红包🧧等
codota/tabnine-intellij17,518
语言:
Kotlin
星标数:
535
分叉数:
73
简介:
Jetbrains IDEs client for TabNine. Compatible with all IntelliJ-based IDEs. https://plugins.jetbrains.com/plugin/12798-tabnine
jaketae/storyteller17,524
语言:
Python
星标数:
535
分叉数:
69
简介:
Multimodal AI Story Teller, built with Stable Diffusion, GPT, and neural text-to-speech
ModelDepot/tfjs-yolo-tiny17,534
语言:
JavaScript
星标数:
534
分叉数:
88
简介:
In-Browser Object Detection using Tiny YOLO on Tensorflow.js
S-Trespassing/claw-in-chrome17,535
语言:
JavaScript
星标数:
534
分叉数:
84
简介:
这是一个放在 Chrome 侧边栏里的助手扩展。解除了Claude in Chrome的登录限制和套餐限制,支持自定义模型供应商,并且支持编辑原插件不支持编辑的参数,让您的大模型在该插件中有更好的表现!
clawwork-ai/ClawWork17,542
语言:
TypeScript
星标数:
534
分叉数:
72
关键参数与规格
关键参数与规格
参数值
语言Python
类别Applications
子类别Specialists
关键词Autonomous vehicles
星标数535
分叉数139
贡献者12
创建日期2019-06-04
更新日期2026-10-10
1 天星标数0
7 天星标数1
排名17,520
上次排名17,306
排名变化-214
7 天星标排名11,453
上次 7 天星标排名11,515
7 天星标排名变化62
总星标排名18,359
上次总星标排名18,334
总星标排名变化-25
README 摘录

Pylot is an autonomous vehicle platform for developing and testing autonomous vehicle components (e. , perception, prediction, planning) on the CARLA simulator and real-world cars. **Setup instructions** **Documentation** **Pylot components** **Data collection** **Build Docker image** **CARLA autonomous driving challenge** **Getting involved** Setup instructions Deploy using Docker The easiest way to get Pylot running is to use our Docker image. Please ensure you have on your machine before you start installing Pylot. In case you do not have please run We

provide a Docker image with both Pylot and CARLA already setup. Following, start the simulator in the container: Finally, start Pylot in the container: Visualizing components In case you desire to visualize outputs of different components (e. , bounding boxes), you have to forward X from the container. First, add your public ssh key to the in the container: Finally, ssh into the container with X forwarding: If everything worked ok, you should be able to see a visualization like the

one below: Manual installation instructions Alternatively, you can install Pylot on your base system by executing the following steps: Next, start the simulator: In a different terminal, setup the paths: Finally, run Pylot: Pylot components Pylot comprises of several components: obstacle detection, traffic light detection, lane detection, obstacle tracking, localization, segmentation, fusion, prediction, planners, and control. Each component is implemented using one or more ERDOS operators and can be executed in isolation or with the entire Pylot application. Please read

the **Documentation** for a more in depth description. Run the following command to see a demo of all the components, and the Pylot driving policy: The demo will execute: obstacle detection, traffic light detection, segmentation, prediction, planning, and the driving policy. *** You can also run components in isolation: Obstacle detection Pylot supports three object detection models: , and . The following command runs a detector in isolation: In case you want to evaluate the detector (i. , compute mAP), you can run: In

case you are not satisfied with the accuracy of our obstacle detector, you can run a perfect version of it: If the detector does not run at your desired frequency, or if you want to track obstacles across frames, you can use a mix of detector plus tracker by running: Traffic light detection Pylot has uses a separate component for traffic light detection and classification. The following command runs the component in isolation: In case you require higher accuracy, you

can run perfect traffic light detection by passing the flag. Lane detection Obstacle tracking Segmentation In order to run Pylot's segmentation component in isolation execute the following command: Similarly, pass if you desire ideal pixel semantic segmentation. Prediction Pylot offers a simple linear prediction component: Planning The planning component provides two planning options, which can be specified using the flag: 1. : a simple planner that follows predefined waypoints. These waypoints can either be either pre-specified or computed using the

A-star planner part of the CARLA simulator map. The planner ensures that the ego-vehicle respects traffic lights, stops

常见问题

记录了多少星标和分叉?

erdos-project/pylot 有 535 个星标和 139 个分叉。

仓库排名是多少?

erdos-project/pylot 排名第 17,520。

记录的语言和类别是什么?

erdos-project/pylot 有 535 个星标,语言为 Python,类别为 Applications。

哪个仓库排名最接近?

erdos-project/pylot 与 codota/tabnine-intellij 比较,后者排名第 17,518,有 535 个星标。

README

Pylot is an autonomous vehicle platform for developing and testing autonomous vehicle components (e.g., perception, prediction, planning) on the CARLA simulator and real-world cars.

Setup instructions

Deploy using Docker

The easiest way to get Pylot running is to use our Docker image. Please ensure you have nvidia-docker on your machine before you start installing Pylot. In case you do not have nvidia-docker please run ./scripts/install-nvidia-docker.sh

We provide a Docker image with both Pylot and CARLA already setup.

docker pull erdosproject/pylot
nvidia-docker run -itd --name pylot -p 20022:22 erdosproject/pylot /bin/bash

Following, start the simulator in the container:

nvidia-docker exec -i -t pylot /home/erdos/workspace/pylot/scripts/run_simulator.sh

Finally, start Pylot in the container:

nvidia-docker exec -i -t pylot /bin/bash
cd ~/workspace/pylot/
python3 pylot.py --flagfile=configs/detection.conf

Visualizing components

In case you desire to visualize outputs of different components (e.g., bounding boxes), you have to forward X from the container. First, add your public ssh key to the ~/.ssh/authorized_keys in the container:

nvidia-docker cp ~/.ssh/id_rsa.pub pylot:/home/erdos/.ssh/authorized_keys
nvidia-docker exec -i -t pylot sudo chown erdos /home/erdos/.ssh/authorized_keys
nvidia-docker exec -i -t pylot sudo service ssh start

Finally, ssh into the container with X forwarding:

ssh -p 20022 -X erdos@localhost
cd /home/erdos/workspace/pylot/
python3 pylot.py --flagfile=configs/detection.conf --visualize_detected_obstacles

If everything worked ok, you should be able to see a visualization like the one below:

Manual installation instructions

Alternatively, you can install Pylot on your base system by executing the following steps:

./install.sh
pip install -e ./

Next, start the simulator:

export CARLA_HOME=$PYLOT_HOME/dependencies/CARLA_0.9.10.1/
./scripts/run_simulator.sh

In a different terminal, setup the paths:

export CARLA_HOME=$PYLOT_HOME/dependencies/CARLA_0.9.10.1/
cd $PYLOT_HOME/scripts/
source ./set_pythonpath.sh

Finally, run Pylot:

cd  $PYLOT_HOME/
python3 pylot.py --flagfile=configs/detection.conf

Pylot components

Pylot comprises of several components: obstacle detection, traffic light detection, lane detection, obstacle tracking, localization, segmentation, fusion, prediction, planners, and control. Each component is implemented using one or more ERDOS operators and can be executed in isolation or with the entire Pylot application. Please read the Documentation for a more in depth description.

Run the following command to see a demo of all the components, and the Pylot driving policy:

python3 pylot.py --flagfile=configs/demo.conf

The demo will execute: obstacle detection, traffic light detection, segmentation, prediction, planning, and the driving policy.


You can also run components in isolation:

Obstacle detection

Pylot supports three object detection models: frcnn_resnet101, ssd-mobilenet-fpn-640 and ssdlite-mobilenet-v2. The following command runs a detector in isolation:

python3 pylot.py --flagfile=configs/detection.conf

In case you want to evaluate the detector (i.e., compute mAP), you can run:

python3 pylot.py --flagfile=configs/detection.conf --evaluate_obstacle_detection

In case you are not satisfied with the accuracy of our obstacle detector, you can run a perfect version of it:

python3 pylot.py --flagfile=configs/perfect_detection.conf

If the detector does not run at your desired frequency, or if you want to track obstacles across frames, you can use a mix of detector plus tracker by running:

python3 pylot.py --flagfile=configs/tracking.conf

Traffic light detection

Pylot has uses a separate component for traffic light detection and classification. The following command runs the component in isolation:

python3 pylot.py --flagfile=configs/traffic_light.conf

In case you require higher accuracy, you can run perfect traffic light detection by passing the --perfect_traffic_light_detection flag.

Lane detection

python3 pylot.py --flagfile=configs/lane_detection.conf

Obstacle tracking

python3 pylot.py --flagfile=configs/tracking.conf

Segmentation

In order to run Pylot's segmentation component in isolation execute the following command:

python3 pylot.py --flagfile=configs/segmentation.conf

Similarly, pass --perfect_segmentation if you desire ideal pixel semantic segmentation.

Prediction

Pylot offers a simple linear prediction component:

python3 pylot.py --flagfile=configs/prediction.conf

Planning

The planning component provides two planning options, which can be specified using the --planning_type flag:

  1. waypoint: a simple planner that follows predefined waypoints. These waypoints can either be either pre-specified or computed using the A-star planner part of the CARLA simulator map. The planner ensures that the ego-vehicle respects traffic lights, stops whenever there are obstacles in its path, but does not implement obstacle avoidance.
  2. frenet_optimal_trajectory: a Frenet Optimal Trajectory planner.
  3. rrt_star: a Rapidly-explory Random Tree planner.
  4. hybrid_astar: a Hybrid A* planner.
# To run the Frenet Optimal Trajectory planner.
python3 pylot.py --flagfile=configs/frenet_optimal_trajectory_planner.conf

# To run the RRT* planner.
python3 pylot.py --flagfile=configs/rrt_star_planner.conf

# To run the Hybrid A* planner.
python3 pylot.py --flagfile=configs/hybrid_astar_planner.conf

Control

Pylot supports three controllers, which can be specified using the control flag:

  1. pid: follows the waypoints computed by the planning component using a PID controller.
  2. mpc: uses model predictive control for speed and waypoint following.
  3. simulator_auto_pilot: uses the simulator auto pilot to drive on predefined routes. This controller drives independent of the output of the other components.

You can run all the components, together with one of the two policies by executing:

# Runs all components using the algorithms we implemented and the models we trained:
python3 pylot.py --flagfile=configs/e2e.conf
# Runs the MPC
python3 pylot.py --flagfile=configs/mpc.conf
# Runs the simulator auto pilot.
python3 pylot.py --control=simulator_auto_pilot

Debug logs

In case you want to debug the application, you can active additional logging by passing: --log_file_name=pylot.log --v=1 to your command.

Data collection

Pylot also provides a script for collecting CARLA data such as: RGB images, segmented images, obstacle 2D bounding boxes, depth frames, point clouds, traffic lights, obstacle trajectories, and data in Chauffeur format.

Run python3 data_gatherer.py --help to see what data you can collect. Alternatively, you can inspect this configuration for an example of a data collection setup.

Build your own Docker image

In case you want to build your own images from the latest code, you can execute:

cd docker
./build_images.sh

The script creates two Docker images: one that contains the CARLA simulator and another one that contains ERDOS and Pylot.

CARLA autonomous driving challenge

Pylot can also be used as a baseline for executing on the CARLA Leaderboard routes. We provide an agent that offers reference implementations for perception (i.e., detection, tracking), localization (Extended Kalman filter), prediction, planning (e.g., waypoint follower, Frenet optimal trajectory, RRT*, Hybrid A*), and control.

To test this agent you can pull our image which has all the necessary software already installed.

docker pull erdosproject/pylot-carla-challenge
nvidia-docker run -itd --name pylot-challenge -p 20022:22 erdosproject/pylot-carla-challenge /bin/bash

Alternatively, you can manually install the dependencies on your machine by following the instructions provided below:

mkdir challenge
export CHALLENGE_ROOT=`pwd`
# Clone the challenge leaderboard repository.
git clone -b stable --single-branch https://github.com/carla-simulator/leaderboard.git
export LEADERBOARD_ROOT=${CHALLENGE_ROOT}/leaderboard/
cd ${LEADERBOARD_ROOT} ; pip3 install -r requirements.txt ; cd ${CHALLENGE_ROOT}
# Clone the CARLA scenario runner repository. This is used by the leaderboard.
git clone -b leaderboard --single-branch https://github.com/carla-simulator/scenario_runner.git
export SCENARIO_RUNNER_ROOT=${CHALLENGE_ROOT}/scenario_runner/
cd ${SCENARIO_RUNNER_ROOT} ; pip3 install -r requirements.txt ; cd ${CHALLENGE_ROOT}
# Checkout the CARLA challenge branch.
cd ${PYLOT_HOME} ; git checkout -b challenge origin/challenge
export CARLA_ROOT=Path to CARLA 0.9.10.1.
cd ${CHALLENGE_ROOT}
export TEAM_CODE_ROOT=${PYLOT_HOME} ; ${LEADERBOARD_ROOT}/scripts/make_docker.sh

Notes on the Pylot CARLA challenge agent

Similar to regular Pylot, the Challenge agent not only connects different reference implementation, but also provides the option of testing them in different configurations (e.g., test prediction, planning and control with perfect perception). This can be done by changing the flags in the challenge configuration according to the specification from the Pylot documentation.

More Information

To read more about the ideas behind Pylot, refer to our paper, Pylot: A Modular Platform for Exploring Latency-Accuracy Tradeoffs in Autonomous Vehicles (IEEE) (arXiv). If you find Pylot useful to your work, please cite our paper as follows:

@inproceedings{gog2021pylot,
  title={Pylot: A modular platform for exploring latency-accuracy tradeoffs in autonomous vehicles},
  author={Gog, Ionel and Kalra, Sukrit and Schafhalter, Peter and Wright, Matthew A and Gonzalez, Joseph E and Stoica, Ion},
  booktitle={2021 IEEE International Conference on Robotics and Automation (ICRA)},
  pages={8806--8813},
  year={2021},
  organization={IEEE}
}

Getting Involved

  • Community on Slack: Join our community on Slack for discussions about development, questions about usage, and feature requests.
  • Github Issues: For reporting bugs.
排名相邻
同类项目