介绍

介绍

CARLA是一个开源的自动驾驶模拟器。它是从零开始构建的,作为一个模块化和灵活的API来解决一系列涉及到自动驾驶问题的任务。carla的主要目标之一是帮助实现自主驾驶研发的灵活化,作为一种用户可以方便地访问和定制的工具。为此,模拟器必须满足一般驾驶问题中不同用例的要求(例如学习驾驶策略、训练感知算法等)。CARLA以Unreal Engine为基础来运行模拟,并使用OpenDRIVE标准(1.4与今天一样)来定义道路和城市设置。模拟的控制权是通过Python和C语言处理的API授予的,该API随着项目的发展而不断增长。(这里有疑问:C语言的api是指ROS briage吗?)

为了使驱动系统的开发、培训和验证过程更加顺利,CARLA逐渐发展成为一个项目生态系统,由社区围绕主平台构建。在这种情况下,重要的是要了解卡拉是如何工作的,以便充分理解它的能力。

模拟器

CARLA模拟器由可扩展的客户机-服务器体系结构组成。
服务器负责与模拟本身相关的一切:传感器渲染、物理计算、世界状态及其参与者的更新等等。由于它的目标是获得实际的结果,最好的方法是使用专用的GPU运行服务器,尤其是在处理机器学习时。
客户机侧的控制场景由客户机和控制场景的逻辑组成。这是通过利用carlaapi(在Python或C中)来实现的,carla api是一个在服务器和客户机之间进行中介的层,它不断发展以提供新的功能。

总结了模拟器的基本结构。不过,了解卡拉远不止这些,因为许多不同的特性和元素共存于其中。下面列出了其中一些,以了解卡拉的能力。

  • 交通管理  除了用于学习的系统外,还控制车辆的内置系统。它是卡拉提供的一个指挥家,用现实的行为再现城市般的环境。(本文作者提醒:这个功能可以用来控制多个车危险驾驶行为模拟)
  • 传感器车辆依靠它们来传递周围环境的信息。在carla,他们是一种特殊类型的演员附加在车辆上,他们收到的数据可以检索和存储,以简化过程。目前该项目支持不同类型的设备,从摄像机到雷达,激光雷达等等。
  • 录制:此功能用于为世界上的每个参与者逐步重新模拟模拟。它允许在世界任何地方访问时间轴中的任何时刻,这是一个很好的跟踪工具。
  • ROS briage和Autoware实现。作为一个普遍化的问题,卡拉项目联系起来,并致力于将模拟器集成到其他学习环境中。
  • 开放素材    CARLA为城市环境提供了不同的地图,可以控制天气状况,还提供了一个包含大量参与者的蓝图库。但是,这些元素可以定制,并且可以按照简单的指导原则生成新的元素。
  • Scenario runner    为了简化车辆的学习过程,CARLA提供了一系列描述不同情况的路径来进行迭代。

quick start

  • 服务器端   最低4GB的GPU将需要运行一个高度现实的环境。对于机器学习,强烈建议使用专用GPU。
  • 客户端 python API。此外,一个良好的互联网连接和两个TCP端口(默认为2000和2001)。
  • 系统要求 Ubuntu18.4。
  • 其他要求   两个Python模块:Pygame直接使用Python创建图形,以及Numpy公司伟大的微积分。

安装过程略,请查看官网。这里简单写一下。

pip install --user pygame numpy

添加carla 源。

sudo apt-get update

sudo apt-get install carla-simulator

cd /opt/carla-simulator

下载地图,因为默认地图少,所以需要另外下载导入。

> cd ~/carla

> ./ImportAssets.sh

然后就可以启动了。

# Linux: > ./CarlaUE4.sh

说是应该出现观众视野的俯视图,但是我的是鼠标轻微动一动就晃了地图。不知道怎么回事。

下面是启动carla时候有用的命令

  • -carla-rpc-port=N 监听客户端端口N
  • -carla-streaming-port=N    指定端口N给传感器数据流用 。0代表任意不使用的端口。
  • -quality-level={Low,Epic}
  • Full list of UE4 command-line arguments. There is a lot of options provided by UE. However, not all of these will be available in CARLA.

linux build

因为有时候有提交bug,所以需要下载更新patch编译。

https://carla.readthedocs.io/en/latest/build_linux/

If UE has already been built, install the patch and make the build again.

UE4需要编译;

./Setup.sh && ./GenerateProjectFiles.sh && make

carla也需要编译;

carla编译时候,需要更新素材再编译。

./Update.sh

设置环境变量

export UE4_ROOT=~/UnrealEngine_4.24

Make sure to run make launch to prepare the server and make PythonAPI for the client. Alternatively make LibCarla will prepare the CARLA library to be imported anywhere.

make launch 编译服务端模拟器,启动UE. Press Play to start the spectator view and close the editor window to exit. Camera can be moved with WASD keys and rotated by clicking the scene while moving the mouse around.

make PythonAPI 编译客户端api, necessary to grant control over the simulation. It is only needed the first time. Remember to run it again when updating CARLA. Scripts will be able to run after this command is executed. The following example will spawn some life into the town.

make help Prints all available commands.
make launch Launches CARLA server in Editor window.
make PythonAPI Builds the CARLA client.
make package Builds CARLA and creates a packaged version for distribution.
make clean Deletes all the binaries and temporals generated by the build system.
make rebuild make clean and make launch both in one command.

Build system

安装过程中最具挑战性的部分是编译所有依赖项和模块,以便与a)服务器端的Unreal引擎和b)客户端中的Python兼容。

目标是能够从一个单独的Python进程调用Unreal引擎的函数。

下面这个图很好的表现了python C++ carla之间的联系。很重要。

这样主要讲 pythonapi   LibCarla CarlaUE4 and Carla plugin 编译的。

略。

Running CARLA in a Docker

  • Docker installation

    • Docker CE
    • NVIDIA-Docker2
  • Running CARLA container

Docker CE   NVIDIA-Docker2 这两个安装过程略。

Running CARLA container

docker pull carlasim/carla:0.8.2

carla是有docker镜像的。拉下来即可。

docker run -p 2000-2002:2000-2002 --runtime=nvidia --gpus all carlasim/carla:0.8.4

这样就启动了。

核心概念

本页介绍CARLA的主要功能和模块。不同主题的详细说明可以在相应的页面上找到。

为了了解API中不同的类和方法,请看一下Python API参考. 再说,那个代码配方引用包含一些常见的代码块,在第一步中特别有用。

  • 第一步

    • 第一世界和客户
    • 第二——演员和蓝图
    • 第三,地图和导航
    • 第四-传感器和数据
  • 高级步骤

重要的


第一步

第一世界和客户

客户是用户运行以请求模拟中的信息或更改的模块。客户端使用IP和特定端口运行。它通过终端与服务器通信。可以有多个客户机同时运行。高级多客户机管理需要对CARLA和同步 .

世界表示模拟的对象。它作为一个抽象层,包含了产生演员、改变天气、获得当前世界状态等的主要方法。每个模拟只有一个世界。当地图被改变时,它将被销毁并替换成一个新的。

第二——演员和蓝图

演员是在模拟中扮演角色的任何东西。

  • 车辆
  • 步行者
  • 传感器
  • 旁观者
  • 交通信号灯

蓝图已经生成生成演员所必需的演员布局。基本上,模型带有动画和一组属性。其中一些属性可以由用户自定义,其他属性则不能蓝图库包含所有可用的蓝图以及相关信息。

第三,地图和导航

地图主要是代表模拟世界的物体,城镇。有八张地图。它们都使用opendrive1.4标准来描述道路。

道路、车道和交叉口由Python API从客户端访问。它们与航路点类为车辆提供导航路径。

交通标志交通信号灯可作为卡拉,地标对象,这些对象包含有关其OpenDRIVE定义的信息。此外,模拟器在运行时使用OpenDRIVE文件上的信息自动生成站点、产量和红绿灯对象。这些有边界框放置在道路上。一旦进入边界框,车辆就会意识到它们。

第四-传感器和数据

传感器等待某个事件发生,然后从模拟中收集数据。它们需要一个定义如何管理数据的函数。根据具体情况,传感器检索不同类型的传感器数据 .

传感器是连接到母车上的一个参与者。它跟踪周围的车辆,收集周围环境的信息。可用的传感器由其在蓝图库 .

  • 摄像机(RGB、深度和语义分割)。
  • 碰撞探测器
  • Gnss传感器
  • IMU传感器
  • Lidar raycast.
  • 车道入侵探测器
  • 障碍物探测器
  • 雷达
  • RSS

高级步骤

CARLA提供了一系列功能,这些功能超出了模拟器介绍的范围。这里列出了一些最引人注目的。但是,我们强烈建议您阅读全文第一步部分,然后开始执行高级步骤。

  • OpenDRIVE独立模式. 仅使用OpenDRIVE文件生成道路网格。允许将任何OpenDRIVE地图加载到CARLA中,而无需创建资产。
  • PTV-Vissim协同仿真. 在CARLA和PTV Vissim交通模拟器之间运行同步模拟。
  • 录音机. 保存仿真状态的快照,以便精确地重新输入仿真。
  • 渲染选项. 无渲染模式,无渲染质量设置。
  • RSS. 集成C责任敏感安全库通过安全检查来改变车辆的轨迹。
  • 仿真时间和同步性. 关于模拟时间和服务器-客户机通信的一切。
  • 模拟相扑. 在卡拉和相扑交通模拟器之间运行同步模拟。
  • 交通管理员. 该模块负责每辆设置为自动驾驶模式的车辆。它模拟城市中的交通,使模拟看起来像真实的城市环境。

一、世界与客户

客户和世界是卡拉的两个基本要素,是操作模拟及其参与者所必需的抽象。

本教程从定义这些元素的基础和创建到描述它们的可能性。如果在阅读过程中出现任何疑问或问题卡拉论坛有没有办法解决这些问题。

  • 客户

    • 客户端创建
    • 世界联系
    • 其他客户端实用程序
  • 世界
    • 演员
    • 天气
    • 调试
    • 世界快照
    • 世界设置

客户

客户机是卡拉体系结构的主要元素之一。它们连接到服务器、检索信息和命令更改。这是通过脚本完成的。客户端识别自己,并连接到世界,然后使用模拟进行操作。

除此之外,客户机还可以访问高级CARLA模块、特性和应用命令批处理。本节只讨论命令批处理。这些对于基本的事情是有用的,比如产生大量的演员。其余的特性更复杂,它们将在高级步骤 .

看看卡拉,客户在PythonAPI参考中学习关于类的特定方法和变量。

客户端创建

需要两件事。这个IP地址地址识别,以及两个TCP端口与服务器通信。第三个可选参数设置工作线程的数量。默认设置为“全部”( zero ).这个代码配方演示如何在运行脚本时将这些参数解析为参数。

client = carla.Client('本地主机' , two thousand )

默认情况下,CARLA使用本地主机IP和端口2000进行连接,但可以随意更改。第二个端口总是n 1号,2001年

创建客户机后,将其超时. 这限制了所有的网络操作,这样就不会永远阻塞客户端。如果连接失败,将返回一个错误。

client.set_超时( ten )#秒

可以连接多个客户端,因为一次运行多个脚本是很常见的。使用具有高级CARLA功能的多客户机方案(如traffic manager),必然会使通信更加复杂。

注意

客户端和服务器具有不同的libcarla模块。如果版本不同,可能会出现问题。可以使用获取客户端版本()获取服务器版本()方法

世界联系

客户机可以相当容易地连接和检索当前世界。

world = client.get_world()The client can also get a list of available maps to change the current one. This will destroy the current world和create a new one.```pyprint(client.get_available_maps())...world = client.load_world('汤01' )#reload_world()使用相同的映射创建世界的新实例。

每个世界对象都有身份证件或者插曲。每次客户要求加载世界()重新加载世界()前一个被摧毁了。一个新的一集是从零开始的。虚幻引擎在此过程中未重新启动。

使用命令

命令是一些最常见的CARLA方法的改编,可以批量应用。例如命令集自动驾驶仪相当于车辆。设置自动驾驶仪(),启用车辆的自动驾驶仪。但是,使用这些方法Client.apply_批处理或Client.apply\u batch\u sync(),可以在单个仿真步骤中应用命令列表。这对于通常应用于数百个元素的方法非常有用。

下面的示例使用批处理一次销毁所有车辆的列表。

client.apply_批处理([carla.command.DestroyActor(x)对于十在里面车辆清单])

中列出了所有可用的命令最新章节PythonAPI参考。

其他客户端实用程序

client对象的主要用途是获取或更改世界,并应用命令。但是,它还提供了对一些附加功能的访问。

  • 交通经理该模块负责每辆设置为自动驾驶仪的车辆,以再现城市交通。
  • 录音机 .允许重新模拟以前的模拟。使用快照总结每帧的模拟状态

世界

模拟的主要规则。它的实例应该由客户端检索。它不包含世界本身的模型,这是地图班级。相反,大多数信息和常规设置都可以从这个类访问。

  • 模拟中的演员和观众
  • 蓝图库
  • 地图
  • 模拟设置
  • 快照
  • 天气和灯光经理

一些最重要的方法是吸气剂,精确地检索这些元素的信息或实例。看看卡拉。世界去了解更多

演员

世界上有不同的方法与参与者相关,允许不同的功能。

  • 产生演员(但不是摧毁他们)。
  • 把每个演员都带到现场,或者找一个特别的演员。
  • 图书馆访问蓝图
  • 进入观众演员,模拟的观点。
  • 检索适合生成演员的随机位置。

产卵将在中解释第二。演员和蓝图. 它需要对blueprint库、属性等有一定的了解。

天气

天气不是一个单独的类,而是一组可以从世界上访问的参数。参数化包括太阳方向、云量、风、雾等。helper类Carla.用于定义自定义天气

weather = carla.WeatherParameters(    cloudiness= eighty,    precipitation= thirty,    sun_altitude_angle= seventy)world.set_weather(weather)打印(world.get_weather())

有一些天气预设可以直接应用于世界。这些列在Carla.并作为枚举访问

World.Set U Weather(Carla.Wetcloudysunset)

天气的变化不会影响物理学。它们只是摄像机传感器能捕捉到的视觉效果。

Night mode starts when sun_altitude_angle < 0,被认为是日落。这是灯光变得特别相关的时候。

  • 路灯模拟进入夜间模式时自动启用。这些灯光由地图的开发人员放置,并且可以作为卡拉。轻物体。颜色和强度等属性可以随意更改。变量光照状态类型Carla Lightstate允许在一个调用中设置所有这些。
    路灯使用其属性进行分类光照灯组,类型carla.LightGroup. 这样就可以将灯光分类为路灯、建筑灯。。。一个实例carla.LightManager可以检索以在一个调用中处理多组灯光。
#获取灯光管理器和灯光lmanager = world.get_light_manager()mylights = lmanager.get_all_lights()#自定义特定灯光light01 = mylights[ zero]light01。打开灯()light01。设置亮度( one hundred)state01 = carla.LightState( two hundred,瑞德,卡拉。莱特集团。大楼,是的)light01。设置灯状态(state01)#一组自定义灯光my_lights = lmanager.get_light_group(carla.LightGroup.Building)lmanager.turn_on(my_lights)lmanager.set_color(my_lights,carla.Color( two hundred and fifty-five , zero , zero))经理。设置亮度(我的灯,列出亮度)
  • 车辆灯必须由用户打开/关闭。每辆车上都有一组灯Carla.. 到目前为止,并不是所有的车辆都集成了车灯。以下是在撰写本文时可以使用的列表。

    • 自行车它们都有前后位置灯
    • 摩托车雅马哈和哈雷戴维森模型。
    • 汽车奥迪TT,雪佛兰,道奇(警车),Etron,Lincoln,Mustang,Tesla 3S,Wolkswagen T2和新来卡拉的客人。

使用这些方法可以随时检索和更新车辆的灯光卡拉。车。去轻丘州和carla.Vehicle.set_light_状态. 它们使用二进制操作来自定义灯光设置。

#打开位置灯current_lights = carla.VehicleLightState.NONEcurrent_lights |= carla.VehicleLightState.Positionvehicle.set_light_state(current_lights)

调试

世界对象具有carla.DebugHelper对象作为公共属性。模拟过程中可以绘制不同的形状。这些是用来跟踪事件发生的。下面的示例将在演员的位置和旋转位置绘制一个红色框。

debug = world.debugdebug.draw_box(carla.BoundingBox(actor_snapshot.get_transform().location,carla.Vector3D( zero point five , zero point five , two)),actor_snapshot.get_transform().rotation, zero point zero five,卡拉。颜色( two hundred and fifty-five , zero , zero , zero ), zero )

此示例在代码配方为世界快照中的每个演员绘制方框。

世界快照

在模拟的每一帧中包含一个参与者。一种带有时间参考的静止世界图像。信息来自同一个模拟步骤,即使是在异步模式下。

#在当前帧检索世界的快照。world_snapshot = world.get_snapshot()

A卡拉世界快照包含卡拉。时间戳还有一份清单carla.ActorSnapshot. 可以使用身份证件一个演员。快照将列出身份证件在里面出现的演员

timestamp = world_snapshot.timestamp#获取时间参考对于演员镜头在里面世界快照:#获取参与者和快照信息actual_actor = world.get_actor(actor_snapshot.id)    actor_snapshot.get_transform()    actor_snapshot.get_velocity()    actor_snapshot.get_angular_velocity()    actor_snapshot.get_acceleration()  actor_snapshot = world_snapshot.find(actual_actor.id)#得到演员的快照

世界设置

世界上有一些先进的模拟配置。它们决定了渲染条件、模拟时间点以及客户端和服务器之间的同步性。它们可以从helper类访问carla.WorldSettings .

目前,默认的CARLA以最佳的图形质量、可变的时间步长和异步方式运行。要进一步深入了解这个问题,请看高级步骤第节。关于同步与时间步长,和渲染选项可能是个很好的起点

3.地图和导航

在讨论了世界和它的参与者之后,现在是时候把一切都安排好,理解地图,以及参与者如何驾驭它。

  • 地图

    • 改变地图
    • 地标
    • 车道
    • 交叉点
    • 路点
  • 卡拉导航
    • 通过航路点导航
    • 生成地图导航
  • 卡拉地图

地图

地图包括城镇的三维模型及其道路定义。每一张地图都基于一个OpenDRIVE文件,该文件描述了完整注释的道路布局。这条路OpenDRIVE标准1.4定义道路、车道、交叉口等非常重要。它决定了API的可能性和所做决策背后的推理。

pythonapi提供了一个高级查询系统来导航这些道路。它在不断发展,以提供更广泛的工具集。

改变地图

要改变地图,世界也必须改变. 一切都将重新启动并从头开始创建,除了不真实的编辑器本身。有两种方法可以做到这一点。

  • 重新加载世界()使用相同的地图创建世界的新实例。
  • 加载世界()更改当前地图并创建新世界。
world = client.load_world('汤01')

客户端可以获得可用映射的列表。每张地图都有名称与当前加载城市的名称匹配的属性,例如。汤01.

打印(client.get_available_maps())

地标

OpenDRIVE文件中定义的交通标志被转换为CARLA,作为可以从API查询的地标对象。为了便于操作,对其进行了一些补充。

  • 卡拉,地标对象表示OpenDRIVE信号。属性和方法描述了地标,以及它在哪里有效。

    • 卡拉。地标定位根据道路几何定义,说明地标的方向。
    • 卡拉。地标类型包含一些常见的地标类型,以便于转换为OpenDRIVE类型。
  • A卡拉。航路点可以在它前面一定距离处找到地标。可以指定地标的类型。
  • 这个卡拉。地图检索一组地标。它可以返回地图中的所有地标,或者具有相同ID、类型或组的地标。
  • 这个卡拉。世界作为地标之间的中介卡拉交通标志卡拉。交通灯在模拟中体现了它们
我的航路点。找到地标(200,是的)

车道

由定义的车道类型OpenDRIVE标准1.4转换为中的API卡拉·拉内蒂作为一系列枚举值

车道周围的车道标线可以通过卡拉·拉内马尔. 它们由一系列变量定义。

  • 卡拉·拉内马克类型是符合OpenDRIVE标准的枚举值。
  • 卡拉·拉内马克彩色是用于确定标记颜色的枚举值。
  • 宽度说明标记的厚度
  • 卡拉·拉尼昌声明执行车道更改的权限。

航路点使用这些来确认交通许可。

#获取航路点所在的车道类型。lane_type = waypoint.lane_type#找到左边的车道标记类型。left_lanemarking_type = waypoint.left_lane_marking.type()#获取此航路点的可用车道更改。lane_change = waypoint.lane_change

交叉点

A卡拉路口表示OpenDRIVE连接。该类提供了一个边界框来声明,而车道或车辆在其内部。

此类中最显著的方法是返回交叉口内每条车道的一对航路点。每对位于连接边界的起点和终点。

waypoints_junc = my_junction.get_waypoints()

路点

A卡拉。航路点是三维定向点。它们准备在世界和openDRIVE定义的道路之间进行调解。

每个航路点包含卡拉。转变. 这说明了它在地图上的位置以及包含它的车道的方向。变量道路编号,截面图id,车道编号s将此转换转换转换为OpenDRIVE道路。这些结合在一起,创造了身份证件航路点

注意

由于粒度原因,航路点比同一条路内2cm共享相同的身份证件.

航路点还包含有关车道控制住它。特别是它的左右两侧车道标线,以及一个布尔值来确定它是否在连接内。

#访问车道信息的航路点示例inside_junction = waypoint.is_junction()width = waypoint.lane_widthright_lm_color = waypoint.right_lane_marking.color

卡拉导航

通过航路点导航

航路点有一组方法来连接其他点并创建道路流。所有这些方法都遵循交通规则来确定车辆可以去的地方。

  • 下一个(d)创建大致距离的航路点列表d在车道的方向. 该列表包含每个可能偏差的一个航路点。
  • 上一个(d)创建一个大致距离的航路点-航路点列表d在车道的相反方向. 该列表包含每个可能偏差的一个航路点。
  • 下一个直到车道尽头(d)上一次直到车道开始(d)返回一个距离的航路点列表d分开。列表分别从当前航路点到其车道的终点和起点。
  • 右转车道()离开车道()返回相邻车道上的等效航路点(如有)。可通过找到右/左车道上的下一个航路点并移动到该航路点来进行变道机动。
#禁用物理,在这个例子中,车辆被传送。vehicle.set_模拟_物理(假)虽然是的:#在前方2米处找到下一个航路点。waypoint = random.choice(waypoint.next(2))#传送车辆车辆.集合变换(航路点.变换)

生成地图导航

地图的实例由世界提供。这将有助于创建路线,使车辆在城市中漫游并到达目标目的地。

map = world.get_map()
  • 获取车辆的推荐生成点开发商指出。不能保证这些地方是免费的。
spawn_points = world.get_map().get_spawn_points()
  • 找到最近的航路点到一个特定的地方或某个地方道路编号,车道编号s在OpenDRIVE中。
#行驶车道或人行道中心上最近的航路点。waypoint01 = map.get_waypoint(vehicle.get_location(),project_to_road=是的, lane_type=(carla.LaneType.Driving | carla.LaneType.Sidewalk))#最近的航路点,但指定了OpenDRIVE参数。waypoint02 = map.get_waypoint_xodr(road_id,lane_id,s)
  • 生成航路点集合想象城市里的小巷。在地图上为每个道路和车道创建路线点。它们之间的距离大约是一段距离。
waypoint_list = map.generate_waypoints(2)
  • 生成道路拓扑. 返回分段点对(元组)的列表。对于每对车道,第一个元素与第二个元素连接,两者都定义了地图中每条车道的起点和终点。
waypoint_tuple_list = map.get_topology()
  • 将模拟点转换为地理坐标。将某个位置转换为卡拉地理定位具有纬度和经度值
my_geolocation = map.transform_to_geolocation(vehicle.transform)
  • 保存道路信息将道路信息转换为OpenDRIVE格式,并将其保存到磁盘。
info_map = map.to_opendrive()

卡拉地图

到目前为止,有七种不同的地图可用。每一个都有其独特的功能,并有不同的用途。下面是对它们的简要总结。

注意

用户可以自定义地图甚至是创建新地图用于卡拉

城镇 摘要
汤01 一个有所有“丁字路口”的基本城镇布局。
城镇02 类似汤01,但更小
汤03 最复杂的城镇,有5车道交叉口、环形交叉口、凹凸不平、隧道等等。基本上是一场混战。
汤04 有一条高速公路和一个小镇的无限环路。
汤05 有交叉路口和一座桥的方形网格城镇。每个方向都有多条车道。用于执行车道更改。
汤06 有许多高速公路入口和出口的长公路。它还有一个密歇根左.
汤07 一个乡村环境,道路狭窄,几乎没有红绿灯和谷仓。
城镇10 具有不同环境的城市环境,如大街或长廊,以及更真实的纹理。

carla官方文档笔记1相关推荐

  1. 【goldengate】官方文档笔记三 Oracle GoldenGate 实时报表

    这篇文档循序渐进的讲述了OGG在适时复制的几种配置方案.从最基本的配置开始讲起,逐渐加入新的进程,加入新的策略,配置也随之改变.下面从最基础的配置说起. 报表配置 一对一复制是OGG最基本的配置方案: ...

  2. 【goldengate】官方文档笔记四 Oracle GoldenGate实时数据分布

    数据分布配置是一对多得配置方案.OGG支持将源库同步到多个目标系统. 数据分布配置需要注意事项: 如果数据传输过程中,投递进程(data pump)发现目标库网络连接出现故障,捕获到得数据会继续像其它 ...

  3. Unity官方文档笔记(一)在Unity中操作

    前言:本系列文档基于Unity 2019.4版本进行整理 一 系统要求 1.1 Unity Editor Windows 需要Win7(SP1+)及以上系统,仅限64位版本:CPU要求X64架构:GP ...

  4. Xamarin 总结 (官方文档笔记)

    1. ContentDescription 一个 属性,供屏幕读取 API 使用,以提供控件用途的可访问说明. <ImageButtonandroid:id=@+id/saveButton&qu ...

  5. jQuery-select2 官方文档笔记(一)——基础应用

    select2官网:https://select2.org/ 文章目录 一.上手 1. CDN 2. 单选select 3. 多选select 4. 禁用状态 5. 宽度(width) 6. 关于选项 ...

  6. jQuery-select2 官方文档笔记(二)——较高级应用

    select2官网:https://select2.org/ 一.Search 1. matcher 2. 分组matcher 3. 设置最短最长搜索词组长度(minimumInputLength & ...

  7. python3 scrapy中文文档_Scrapy官方文档笔记

    1.创建Scrapy项目 首先用cmd命令行去操作,输入 scrapy startproject 项目名 #这里输入的项目名,就是在你输入的目录它会建立一个新的文件夹,这个文件夹里面还是同样名字的一个 ...

  8. python 笔记 :Gym库 (官方文档笔记)

    Gym是一个开发和比较强化学习算法的工具箱.它不依赖强化学习算法结构,并且可以使用很多方法对它进行调用. 1 Gym环境 这是一个让某种小游戏运行的简单例子. 这将运行 CartPole-v0 环境实 ...

  9. Spring Framework Integration 官方文档笔记

    Integration Message Conversion WebMvcConfigurationSupport 内含默认的 Converter BufferedImageHttpMessageCo ...

最新文章

  1. mysql高可用+keepalived
  2. error: ‘to_string’ is not a member of ‘std’———已解决
  3. CMake基础 第1节 初识CMake
  4. AESNI/XData勒索病毒来袭 目前主要在乌克兰传播 它居然还能使用硬件加速加密过程...
  5. Java多线程之并发容器(五)
  6. python基础(part16)--生成器
  7. Java多线程面试问题
  8. axios 注册拦截器 cdn引用_PicGo+jsDelivr+GitHub搭建免费cdn加速的图床
  9. 【Elasticsearch】Elasticsearch 基于scoll技术滚动搜索大量数据
  10. python2.7安装教程win7_win7 64位环境下,为python2.7 安装pip
  11. Lazarus 1.6 增加了新的窗体编辑器——Sparta_DockedFormEditor.ipk
  12. vite+vue3 整合vue-router4和vuex4
  13. freebsd安装linux网卡驱动,FreeBSD安装后的网卡配置
  14. java velocity 语法_Velocity的基本语法
  15. win11电脑开机密码忘记了怎么办?
  16. easyui filebox文件大小校验
  17. CTSCAPIOTHUPC2018颓废记
  18. 关于移动互联网运营的分享总结
  19. java基础 equals与hashCode
  20. 如何绘制业务架构图 — 1. 概述

热门文章

  1. 网页html游戏添加
  2. Matplotlib-01-matplotlib画图方式|图形结构
  3. 基于STM32的温控风扇的设计程序
  4. Hydroxyl-PEG2000-NHS,HO-PEG2000-NHS,SHN-PEG2000-Hydroxyl
  5. CAD数字求和lisp
  6. 关于vue ant design vue 与谷歌浏览器最新版table表格超出长度错位的问题
  7. WPS 2007艺术字实用操作技巧
  8. 转贴:网友windy.杜^ 影音之实现中英文字幕之我的解决方案
  9. 纯css3流星雨js特效代码
  10. Window 由于未经处理的异常,进程终止。