基于ROS的Most Stars开源代码汇总(自动驾驶汽车+RGBDSLAMv2+ROS2+人识别与跟踪等)

网友投稿 1525 2022-05-30

Star 200+

https://github.com/CPFL/Autoware

用于城市自主驾驶的开源软件。 http://www.tier4.jp/

Autoware

用于城市自主驾驶的集成开源软件,由第四层维护。支持以下功能:

3D本地化

3D映射

路径规划

路径跟随

加速/制动/转向控制

数据记录

汽车/行人/物体检测

交通信号检测

交通灯识别

车道检测

对象跟踪

传感器校准

传感器融合

面向云的地图

连接自动化

智能手机导航

软件仿真

虚拟现实

Autoware受BSD许可证保护。请自行负责使用。为了安全使用,我们为不拥有真正自主车辆的人提供基于ROSBAG的仿真方法。如果您使用Autoware与真正的自主车辆,请在现场测试之前制定安全措施和风险评估。

执照

新的BSD许可证

参见许可证

规格推荐

的CPU内核:8

RAM大小:32GB

存储大小:30GB

要求

ROS靛蓝(Ubuntu 14.04)或ROS玉(Ubuntu 15.04)

OpenCV 2.4.10或更高版本注意:截至2016年8月,Autoware不支持OpenCV 3或更高版本。请使用OpenCV 2

Qt 5.2.1或更高

CUDA(可选)

FlyCapture2(可选)

犰狳

如果在ROS Hydro或Ubuntu 13.04,13.10上使用Autoware,请在2015 / OCT / 21之前使用结帐修订。

安装Ubuntu 14.04靛蓝的依赖

% sudo apt-get install ros-indigo-desktop-full ros-indigo-nmea-msgs ros-indigo-nmea-navsat-driver ros-indigo-sound-play ros-indigo-jsk-visualization ros-indigo-grid-map

% sudo apt-get install ros-indigo-controller-manager ros-indigo-ros-control ros-indigo-ros-controllers ros-indigo-gazebo-ros-control ros-indigo-sicktoolbox ros-indigo-sicktoolbox-wrapper ros-indigo-joystick-drivers ros-indigo-novatel-span-driver

% sudo apt-get install libnlopt-dev freeglut3-dev qtbase5-dev libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev gksu libgl1-mesa-dev

注意:请勿安装ros-indigo-velodyne-pointcloud软件包。如果您已经安装,请卸载它。

安装Ubuntu 15.04玉器的依赖项

% sudo apt-get install ros-jade-desktop-full ros-jade-nmea-msgs ros-jade-nmea-navsat-driver ros-jade-sound-play

% sudo apt-get install ros-jade-controller-manager ros-jade-ros-control ros-jade-ros-controllers ros-jade-gazebo-ros-control ros-jade-sicktoolbox ros-jade-sicktoolbox-wrapper ros-jade-joystick-drivers ros-jade-novatel-span-driver

% sudo apt-get install libnlopt-dev freeglut3-dev qt5-default libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev gksu libgl1-mesa-dev

注意:在Ubuntu15.04 Jade中没有提供jsk_visualization和grid_map。请从以下存储库下载并自行构建。https://github.com/jsk-ros-pkg/jsk_visualization https://github.com/ethz-asl/grid_map

如何构建

$ cd $HOME

$ git clone https://github.com/CPFL/Autoware.git

$ cd ~/Autoware/ros/src

$ catkin_init_workspace

$ cd ../

$ ./catkin_make_release

###基于Caffe的对象检测器基于CV的检测器RCNN和SSD节点不会自动构建。

要构建这些节点,请遵循相应节点的README SSD RCNN

如何开始

$ cd $HOME/Autoware/ros

$ ./run

对于开发人员

小心更改下面的文件ros/src/sensing/drivers/lidar/packages/velodyne。有子树。原始存储库在这里。如果从这个存储库更改这些文件,您必须使用git子树推送。(如果您不明白,请不要更改并推送代码 git subtree)。

GitFlow,git分支模型,在Autoware仓库中引入。

添加新功能时,您可以从中分支功能分支develop。

您可以使用以下命令。

$ git checkout -b feature/[your_branch_name] develop

当您在master分支中发现错误时,可以从您的修补程序分支中分离出来master。

您可以使用以下命令。

$ git checkout -b hotfix/[your_branch_name] master

更多细节在这里

文件

请参阅Autoware / docs。截至2015年8月,我们仅提供日本文件。英文文本将会加入。

主要包装

本土化

ndt_localizer

icp_localizer

发现

lidar_tracker

cv_tracker

road_wizard

使命(全球)规划

lane_planner

way_planner

freespace_planner

运动(本地)规划

astar_planner

lattice_planner

dp_planner

车辆控制

waypoint_follower

waypoint_maker

引文研究论文

S.加藤,Takeuchi,Y. Ishiguro,Y.Ninomiya,K.Takeda和T. Hamada。“开放式自动车辆方法”,IEEE Micro,Vol。35,No. 6,pp。60-69,2015。

演示视频

公路示范

说明视频

快速开始

加载地图数据

GNSS定位

没有GNSS的本地化

制图

用SSD进行检测

用DPM检测

用欧氏距离聚类检测

交通灯识别

规划与ROSBAG

用wf_simulator进行规划

混合状态A *

校准工具包

样品数据

森山在名古屋的3D地图

森山驾驶的ROSBAG数据

用于生成森山的演示启动文件的脚本

ROSBAG数据用于校准

IROS 2016数据

名古屋驾驶的ROSBAG数据

联系

Autoware Developers(autoware@googlegroups.com)

要订阅Autoware Developers ML,

如果您有Google帐户,请访问https://groups.google.com/d/forum/autoware,然后点击应用于加入群组按钮。

如果您没有Google帐户,请发送电子邮件至autoware+subscribe@googlegroups.com。

----

用于ROS的RGB-D SLAM

https://github.com/felixendres/rgbdslam_v2

RGBDSLAM v2

...是用于RGB-D相机的最先进的SLAM系统,例如Microsoft Kinect或Asus Xtion Pro Live。您可以使用它来创建3D点云或OctoMaps。

RGBDSLAMv2是基于开源项目,ROS,OpenCV,OpenGL,PCL,OctoMap,SiftGPU,g2o等等 - 谢谢!

具有系统描述和性能评估的期刊文章可以在以下出版物中找到:

“3D Mapping with a RGB-D Camera”,

F. Endres,J.Hess,J.Sturm,D. Cremers,W.Burgard,

IEEE Transactions on Robotics,2014。

更多的信息可以在我的博士论文中找到

其他信息可以在这里找到:

www.informatik.uni-freiburg.de/~endres

http://www.ros.org/wiki/rgbdslam

http://answers.ros.org/questions/tags:rgbdslam

先决条件

Ubuntu 16.04

ROS动力学

Amd64处理器(ARM已知有问题,主要与qt和opengl相关)其他版本可能会工作,但未经测试。如果您使用其他版本,请报告成功。

安装

这是一个规范的方式,如果你知道你在做什么,随时适应。

将RGBDSLAMv2放在catkin工作区中:有关 详细信息,请参阅catkin 教程。使用git将此存储库克隆到工作区的“src /”目录中。或下载RGBDSLAMv2作为存档,并将其解压缩到“src /”。

下载我的[g2o fork | https://github.com/felixendres/g2o ],将其放在其他目录中。构建并安装。将环境变量导出$G2O_DIR到安装目录,让rgbdslam_v2知道在哪里找到它(请参阅从Scratch安装一个示例)。

使用rosdep(即“rosdep install rgbdslam”)安装缺少的依赖项。详情请见http://wiki.ros.org/ROS/Tutorials/rosdep

要构建RGBDSLAMv2去你的catkin工作区并执行“catkin_make”。如果您收到有关缺少siftgpu库的错误信息,请再次执行“catkin_make”。

##从Scratch ########################################### ########现在有一个install.sh脚本,可以执行(bash install.sh)。它安装在〜/ Code之下所需的一切(您可以在脚本中更改位置)。

脚本简短而且不复杂,因此您也可以将其用作手册。

如果要使用安装脚本,则直接下载就足够了 。没有必要克隆这个存储库,因为脚本会为你做这个。

如果您拥有4GB或更多内存的多核机器,则可以通过将“-j2”的两次发生增加到例如“-j4”来加快编译速度。

安装完成 下一步是什么?

有关使用情况的详细信息,请参阅以下部分。但是,让您快速开始这里是最重要的指标:

如果要使用RGBDSLAMv2与RGB-D摄像机,您可能必须安装openni(sudo apt-get install ros-kinetic-openni-launch)或类似的东西

查看“launch /”中的启动文件的示例和具体用例。roslaunch rgbdslam openni + rgbdslam.launch是实时映射的良好起点。

您可能需要根据摄像机驱动程序节点调整输入主题的参数。

查看“test /”中的README,用于在Juergen Sturm的RGB-D SLAM数据集和基准测试中运行,测试和评估RGBDSLAMv2:http : //vision.in.tum.de/data/datasets/rgbd-dataset 您需要cython for评估脚本(sudo apt-get install cython)。

如果要使用SURF或SIFT,则需要从源代码构建OpenCV,包括非免费模块(这不包括已包含的SIFTGPU,但需要在CMakeLists.txt中启用)。在RGBDSLAMv2的CMakeLists.txt中,您可以设置OpenCV的构建目录,并启用非免费功能。请注意,SIFT和SURF不是最佳选择。由于RGBDSLAMv2中的新(软件)功能,ORB优于两者。

重要的提示

该软件是ROS Fuerte版本的RGBDSLAM的更新。然而,很多事情都发生了变化,所以下面的一些文档可能会被淘汰。请报告文档的问题。谢谢。

组态

有几个示例启动文件在某些 用例中设置了RGB-D SLAM的参数。有关所有设置的明确列表及其默认设置,请参阅GUI菜单设置 - >查看当前设置中的src / parameter_server.cpp或(当前设置而不是默认设置)中可读取的定义。

各种用例启动文件可能无法正常工作,因为它们没有经常测试。你应该让他们跑步,如果你提到的主题(“rostopic列表”和“rosnode信息”将帮助你“rqt_graph”也是太好了)。

用法

大多数人似乎想要注册点云。当您命令RGB-D SLAM执行此操作时,默认情况下会发送到/ rgbdslam / batch_clouds上(见下文)。发送的云实际上与以前一样,但是/从/映射到/ openni_camera的默认转换是在/ tf发送的。

octoMap库被编译到rgbdslam节点。这允许直接创建octomap。在GUI中,可以通过从“数据”菜单中选择“保存八进制”来完成。在线八进制是可能的,但不推荐。

使用GUI

要启动RGBDSLAMv2启动,例如$ roslaunch rgbdslam openni + rgbdslam.launch

或者,您可以单独启动openni节点和RGBDSLAMv2,例如:roslaunch openni_camera openni_node.launch roslaunch rgbdslam rgbdslam.launch

要捕获模型,请按空格开始录制连续流,或按回车记录单帧。为了减少数据冗余,从(几乎)相同位置的顺序帧不包括在最终模型中。

参数RGBDSLAMv2可以通过参数进行定制。这些应该在启动文件中设置。可以在GUI操作期间更改参数,但是,从GUI更改可能对许多参数没有影响。

可视化3D可视化显示全局优化模型(您可能需要点击它才能在优化后更新视图)。除了缺少值和深度跳跃之外,相邻点可以进行三角测量。使用快捷方式“t”,可以切换三角测量。由于原始点的渲染速度稍微加快,参数“cloud_display_type”控制是否在收到云时完全计算三角测量。参数“gl_point_size”对大多数用户可能是有用的。

使用无GUI

RosUI可以替代Grapical_UI来运行rgbdslam headless,例如在PR2上。然后可以通过服务调用使用rgbdslam。可能的电话是:

/ rgbdslam / ros_ui {reset,quick_save,send_all,delete_frame,optimize,reload_config,save_trajectory}

/ rgbdslam / ros_ui_b {pause,record} {true,false}

/ rgbdslam / ros_ui_f {set_max} {float}

/ rgbdslam / ros_ui_s {save_octomap,save_cloud,save_g2o_graph,save_trajectory,save_features,save_individual} {filename}

要启动rgbdslam headless使用headless.launch:$ roslaunch rgbdslam headless.launch

通过以下方式捕获单个帧:$ rosservice call / rgbdslam / ros_ui frame

捕获数据流:$ rosservice call / rgbdslam / ros_ui_b pause false

使用计算转换发送点云(例如,到rviz或octomap_server):$ rosservice call / rgbdslam / ros_ui send_all

使用以下之一保存数据:

一个文件中的所有点云在rgbdslam / bin目录中的quicksave.pcd:$ rosservice call / rgbdslam / ros_ui_s save_cloud

在rgbdslam / bin目录中的自己文件中的每个点云:$ rosservice call / rgbdslam / ros_ui save_individual

/ rgbdslam / ros_ui:

复位“”重置图形,删除所有节点(仅在捕获新图像时刷新)“

帧“从传感器捕获一帧”

优化“触发器图优化器”

reload_config“从ROS参数服务器重新加载参数”

quick_save“将所有点云保存在一个文件中,在rgbdslam / bin目录中的”quicksave.pcd“

send_all''将所有点云发送到/ rgbdslam / converted_cloud(可以使用rviz进行可视化)''

delete_frame''从图形中删除最后一帧(仅在捕获新图像时刷新)''

/ rgbdslam / ros_ui_b:

暂停“暂停或恢复图像的捕获”

记录“暂停或停止记录袋文件,可以在rgbdslam / bin目录中找到”

/ rgbdslam / ros_ui_f:

set_max“过滤出比此值更远的所有数据点(以cm为单位,仅用于保存到文件中)

/ rgbdslam / ros_ui_s:

save_features'将特征位置和描述符保存在具有给定文件名的“yaml”文件中

save_cloud“将云保存到给定的文件名(应以.ply或.pcd结尾)”

save_individual'将每个扫描保存在自己的文件中(在给定的前缀中添加一个后缀)''

save_octomap“将云保存到给定的文件名”

save_trajectory'将传感器轨迹保存到文件_estimate.txt''

进一步帮助

编译可能需要很多内存,特别是如果设置了环境变量$ ROS_PARALLEL_JOBS。

如果您位于德国,并将保存的文件夹加载到meshlab中,请尝试切换到US语言环境,或用.use文件中的逗号替换小数点。

如果您对RGBDSLAM的安装或使用有任何疑问,请参阅http://answers.ros.org/questions/?tags=RGBDSLAM如需进一步的问题,建议,修改本自述文件或提交修补程序,请联系Felix Endres(endres @ informatik.uni-freiburg.de)。

除了本手册,可以使用rosdoc(“rosrun rosdoc rosdoc rgbdslam”)创建代码文档,该文件将在当前目录中创建一个“doc”文件夹。

GICP和SIFTGPU

如果与GICP或SIFTGPU的编译或链接有关的问题,可以在CMakeLists.txt的顶部停用这些功能。您可能会获得更快的GPU功能设置参数“siftgpu_with_cuda”,但您将需要安装可能需要NVidia GPU的专有CUDA驱动程序(请参阅http://www.nvidia.com/object/cuda_gpus.html)。要安装开发驱动程序和CUDA SDK,您可以使用以下教程:http ://sublimated.wordpress.com/2011/03/25/installing-cuda-4-0-rc-on-ubuntu-10-10- 64位/ ubuntu 10.04:http : //ubuntuforums.org/showthread.php?t=1625433(在Ubuntu 10.04 x64上测试)要使用SiftGPU,您应该安装“libdevil-dev”。

可以在external / siftgpu / linux / makefile中更改其他编译信息。

如果您收到siftgpu库找不到的错误,请在目录external / siftgpu /并重新运行catkin_make中手动执行“make”。

GICP广泛的ICP可以(de)激活,以完善注册。有关更多信息,请参阅http://stanford.edu/~avsegal/generalized_icp.html

许可信息

这个软件是分发的,希望它是有用的,但没有任何保证; 甚至没有适销性或适用于特定用途的默示保证。

RGBDSLAM是根据GPL v.3授权的。请参阅随附的文件“复制”。

----

ROS2:https://github.com/ros2/ros2/wiki

ROS 2

机器人操作系统(ROS)是一组可帮助您构建机器人应用程序的软件库和工具。从驱动程序到最先进的算法,以及强大的开发人员工具,ROS具有您下一个机器人项目所需的功能。这都是开源的。

在这里,您将找到有关如何安装和使用ROS 2软件的文档,ROS 2是一个正在大力开发的新版本的ROS。有关ROS 2的更多信息,请参见下文。

如果您正在寻找有关ROS 1的信息(即ROS,因为它已经存在了好几年,现在您可能正在使用),请查看ROS网站或文档维基。

在继续之前,请阅读功能页面了解当前ROS 2版本中的内容。

安装

请参阅安装页面。

教程

ROS 2正在大力发展,所有版本目前都是“alpha”-prefixed。您不应该期望今天从ROS 1切换到ROS 2,但您可以查看教程页面,以查看系统在当前状态下可以执行的操作的一系列示例。

特约

有关如何为ROS 2开发做出贡献的详细信息,请参阅贡献页面和开发人员指南。

报告问题和提问

请参阅联系页面。

关于ROS 2

自从ROS于2007年启动以来,机器人和ROS社区发生了很大变化。ROS 2项目的目标是适应这些变化,利用ROS 1的优势,改善不了的。有一个关于ROS 2的动机完整的文章在这里。

当前状态

ROS 2的Alpha版本目前正在进行约6周的节奏,让社区成员有机会对系统提供反馈。在高层次上,ROS 2的发展广泛侧重于为支持多个DDS中间件实施,多个操作系统,多种编程语言以及与运行ROS 1的系统共存的基础奠定基础。有关当前功能的详细信息,请参阅功能。

有什么事情

有关ROS 2的即将推出的功能的详细信息,请参阅路线图。

在哪里可以找到更多信息

有关ROS 2设计的各种文章在design.ros2.org,如:为什么选择ROS 2.0?,DDS上的ROS以及ROS 1和ROS 2之间的变化。

ROS 2的代码是开源的,分为各种存储库。您可以在ros2 github组织上找到大多数存储库的代码。

以下是关于ROS 2的ROSCon会谈,并提供有关ROS 2和各种演示的工作的信息:

----

SPENCER多模态人员检测和跟踪框架

多模式检测:多个RGB-D和2D激光探测器在一个通用的框架中。

人员跟踪:基于最近邻数据关联的高效追踪器。

社会关系:通过连贯的运动指标估计人与人之间的空间关系。

群体跟踪:根据社会关系检测和跟踪群体。

鲁棒性: IMM,追踪启动逻辑和高回调检测器输入等各种扩展功能使人们-即使在非常动态的环境中也能相对稳健地工作。

实时:在游戏笔记本电脑上运行20-30 Hz,-本身只需要1个CPU核心的10%。

可扩展和可重用:结构良好的ROS消息类型和明确定义的界面可以轻松集成自定义检测和跟踪组件。

强大的可视化:一系列可重用的RViz插件,可以通过鼠标点击配置,还有用于生成动画(2D)SVG文件的脚本。

评估工具:用于评估跟踪性能的指标(CLEAR-MOT,OSPA)。

ROS集成:所有组件都与ROS完全集成,并以C ++或Python编写。不需要Matlab。

欧盟FP7研究项目SPENCER的目标是为服务机器人开发算法,可以通过高度动态和拥挤的行人环境(如机场或购物中心)来指导群体,同时以符合社会的方式行事,例如不跨越家庭或夫妇 这样的机器人可以遇到的示例性情况在右侧的下图中可视化。为此,需要开发出在机器人环境中对于人类感知的强大和计算效率高的组件。

下图显示了在SPENCER项目背景下开发的实时人员和组检测和跟踪管道:

我们管道的不同阶段之间的整个沟通通过ROS消息发生,这些消息鼓励在自定义设置中重用我们的组件。模块化架构允许在管道的所有阶段中各个组件的简单互换性。

我们提供一套可重复使用的ROS消息类型定义,我们已经通过不同的传感器模式和跟踪方法成功地应用于各种人员检测和跟踪场景。可以在spencer_tracking_msgs包中找到最相关的消息。

我们高度鼓励重用这些消息,以从我们丰富的检测,跟踪,过滤和可视化组件的基础设施中获益!现有的检测和跟踪算法通常可以通过以我们的格式发布附加消息,或通过编写一个简单的C ++或Python节点来转换消息格式,来容易地集成。

我们集成了以下人员检测模块:

基于Arras等人的方法,重新实现了增强的2D激光分段分类器。[3]

在[2]中更仔细地描述了一种RGB-D上身检测器,其在深度图像中的ROI上滑动归一化深度模板

基于给定地面估计的单目视觉全身HOG检测器(groundHOG) [2]确定了可以预期行人的图像走廊。该检测器使用CUDA进行GPU加速。包含的cudaHOG库需要手动编译和最新的CUDA SDK以及nVidia显卡。

一种来自PCL的RGB-D检测器,其在接地面上提取候选ROI,然后应用线性HOG分类器[4]

输出geometry_msgs/PoseArray或people_msgs/PositionMeasurementArray消息的其他外部检测器可以使用此包中的脚本轻松地集成到我们的框架中。这种检测器的实例包括:

在基于激光的腿探测器从WG-感知,这可能如果传感器非常靠近地面比我们自己的激光探测器更好地工作。请参阅我们的包装包和leg_detectors.launch(替换laser_detectors.launch)。

对于检测到检测融合,我们实现了一系列节点,可以通过roslaunch XML文件灵活地组合融合流水线。详细信息可以在spencer_detected_person_association包中找到。下图显示了在SPENCER实验期间使用的示例配置:

在检测到轨道融合(目前未实现)的情况下,仍然建议对与轨道相关联的每组检测发布CompositeDetectedPerson消息(通过CompositeDetectedPersons),以便稍后可以返回到来自轨道的原始检测,以及通过相关联的检测标识查找关联图像边界框等。

对于个人和组跟踪,我们目前提供基于最近邻标准过滤器数据关联的示例性代码,其在大多数使用情况下足够强大(特别是如果正在使用多模态检测器)。的人跟踪已增强与轨道起始的逻辑和4不同的基于IMM-运动模型(恒速低过程噪声,高过程噪声,协调转弯和布朗运动),以使跟踪更加健壮。

该组-依赖于社会/空间关系经由如在[1]中所述的相同相干运动指示器特征来确定。

在内部,我们已经集成了更先进的方法,包括轨迹导向多假设人物-[2],以及假设为导向的多模型多假设人和组-[1]。这些组件使用完全相同的ROS消息定义,但是它们尚未公开。这里提供的组件最初作为比较的基准方法实现。

所述spencer_tracking_utils包包含许多独立的ROS的节点,可以过滤传入组TrackedPerson基于不同标准的消息,例如,到传感器/机器人的距离,仅在视觉上确认轨道等

在spencer_tracking_metrics中,我们已经公开了不同跟踪指标的实现,例如CLEAR-MOT和OSPA,以便它们与我们的消息定义兼容。这些可用于评估给定的基准线的跟踪性能。

该srl_tracking_logfile_import包提供了进口的卡门格式旧的2D激光扫描日志文件已经标注了真实状况的人曲目,如Python脚本,这些数据集。

所述srl_tracking_exporter包中包含用于从2D自上而下的角度为可伸缩矢量图形(SVGs)渲染轨道轨迹,检测和机器人测距法的有用Python脚本。这些可以选择性地动画化以便可视化一个或多个轨道随着时间的演变。

我们的框架的一个主要亮点是可重用和高度可配置的定制RViz插件,用于可视化:

检测人员

跟踪人员(包括闭塞状态,相关检测ID和协方差椭圆)

社会关系

跟踪组

作为示例,跟踪人员的一些功能显示为:

不同的视觉风格:3D边框,圆柱,动画人网

着色:6种不同的调色板

显示速度箭头

可视化的99%协方差椭圆

显示轨迹ID,状态(匹配,遮挡),相关检测ID

当轨道被遮挡时可配置的不透明度降低

跟踪历史(轨迹)显示为点或线

可配置的字体大小和线宽

以下所有屏幕截图都是使用这些插件生成的。

以下屏幕截图显示我们的系统正在运行,同时从拥挤的机场环境播放记录的数据:

人员检测和跟踪系统的视频可以在SPENCER YouTube频道上找到:

拥挤的机场环境中的实时多模态人物跟踪(RGB-D和2D激光)

单人指导场景原型(仅限2D激光)

组指导情景原型(仅限2D激光)

在配有前后RGB-D传感器(Asus Xtion Pro Live)和两台SICK LMS500激光扫描仪的SPENCER机器人平台上,我们通过两台高端游戏笔记本电脑(Intel Core i7-4700MQ,nVidia GeForce 765M)。用于正面传感器的检测器与检测融合管线一起在一台笔记本电脑上执行。背面传感器和人员和组跟踪模块的检测器在第二台笔记本电脑上执行。两台笔记本电脑通过千兆以太网互相连接,平台的其余部分相互连接。

通过这种配置,组件可以实时运行在20-25 Hz(可视化卸载到单独的计算机上),即使在拥挤的环境中也可以看到30多个人。

在Ubuntu 14.04 / ROS Indigo和Ubuntu 16.04 / ROS Kinetic上测试了人员和组检测和跟踪框架。有关机器人操作系统(ROS)的更多信息,请参阅ros.org。

注意:整个框架仅适用于64位系统。在32位系统上,您将遇到Eigen相关的对齐问题(失败的断言)。参见问题#1

由于我们目前还没有提供任何预先构建的Debian软件包,因此您必须从源代码构建我们的框架。作为第一步,创建一个新的catkin工作区的文件夹,并将GitHub存储库克隆到子文件夹中src:

cd ~/Code

mkdir -p spencer-people-tracking-ws/src

cd spencer-people-tracking-ws/src

git clone https://github.com/spencer-project/spencer_people_tracking.git

假设您已经安装了ROS Indigo或ROS Kinetic,我们建议您通过以下方式安装我们的框架所需的依赖关系:

rosdep update

rosdep install -r --from-paths . --ignore-src

接下来,我们建议使用catkin(可通过sudo apt-get install python-catkin-tools)设置工作区:

cd ..

catkin config --init --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo

最后,通过以下方式构建所有包:

catkin build -c -s

构建工作区后,通过以下方式提供:

source devel/setup.bash

使用的cudaHOG库rwth_ground_hog需要使用nVidia显卡和已安装的CUDA SDK(推荐版本为6.5)。由于安装CUDA(特别是在使用Optimus / Bumblebee的笔记本电脑上)并且编译库并不简单,因此在此提供了安装说明。一旦遵循了这些说明,rwth_ground_hog需要使用catkin 重建包。如果没有安装CUDA SDK,则ROS程序包仍将编译,但不会提供任何功能。

以下演示和三个教程可帮助您轻松开始使用我们的框架。

可以通过运行下载具有2D激光和RGB-D传感器数据来测试我们框架的简短示例性袋子文件

rosrun spencer_people_tracking_launch download_example_bagfiles.sh

然后,您可以启动

roslaunch spencer_people_tracking_launch tracking_on_bagfile.launch

这将开始播放一个bagfile(一旦按SPACE下来取消暂停)并运行Rviz进行可视化。

作为基于深度模板的上身检测器的替代方案,您可以选择从点云库中使用我们稍微修改的人物检测器版本。在使用HOG SVM验证候选ROI之前,该检测器首先执行欧氏距离聚类和头次集群提取。要这样做,传递use_pcl_detector:=true到启动文件。

如果您已经编译了cudaHOG库(参见上面的说明),您可以选择通过传送use_hog_detector:=true到启动文件来启用groundHOG检测器。检测到检测融合流水线将自动融合来自两个检测器的检测。

这是开始使用本地连接到计算机的单个RGB-D传感器的最简单方法。将您的Asus Xtion Pro Live传感器水平放置在平面上,并将其连接到计算机(或播放下面进一步链接的示例袋子文件)。然后从您的人员跟踪工作区中运行以下启动文件(确保您已经提供了它,例如source devel/setup.bash):

roslaunch spencer_people_tracking_launch tracking_single_rgbd_sensor.launch height_above_ground:=1.6

这将执行以下操作:

启动OpenNi2驱动程序(Asus Xtion Pro),并在/spencer/sensors/rgbd_front_top/相机命名空间中发布RGB-D点云

运行上身RGB-D探测器,假设在传感器下方1.6米处有一个水平地平面。其他高度也可以工作,但检测器已经在大约这个高度被训练。

运行一个简单的检测到检测融合流水线

运行srl_nearest_neighbor_tracker,它将订阅/spencer/perception/detected_persons和发布轨道/spencer/perception/tracked_persons

使用预定义的配置运行RViz,该配置显示点云,传感器的视图平截头体以及检测到和跟踪的人员(使用我们的定制RViz插件)。

原始的MS Kinect v1传感器不支持OpenNi2。在这种情况下,请附加use_openni1:=true到上述命令行的启动文件以备份到OpenNi1。

如果您看不到任何检测边界框,请先检查点云是否正确显示在RViz中。如果没有,您的RGB-D传感器可能有问题(USB或OpenNi问题)。

要尝试类似于SPENCER机器人平台的传感器配置,请运行:

roslaunch spencer_people_tracking_launch tracking_on_robot.launch

这假设RGB-D传感器水平安装在地面以上约1.6m处,传感器数据将在以下主题上公布:

/spencer/sensors/laser_front/echo0 [sensor_msgs/LaserScan]

/spencer/sensors/laser_rear/echo0 [sensor_msgs/LaserScan]

/spencer/sensors/rgbd_front_top/{rgb/image_raw,depth/image_rect} [sensor_msgs/Image]

/spencer/sensors/rgbd_front_top/{rgb/camera_info} [sensor_msgs/CameraInfo]

/spencer/sensors/rgbd_rear_top/{rgb/image_raw,depth/image_rect} [sensor_msgs/Image]

/spencer/sensors/rgbd_rear_top/{rgb/camera_info} [sensor_msgs/CameraInfo]

启动文件启动一个类似于教程1(上图)的管道,但是包括用于后部传感器的第二组RGB-D探测器,以及两个2D激光扫描仪的人员探测器。发布上述RGB-D和激光数据的传感器驱动程序不会由此启动文件自动启动。此外,您手动必须启动Rviz。

请注意,如果只有人检测器的一部分运行,则融合管线会自动重新配置。如果你没有后面的RGB-D传感器,只需注释掉包含rear_rgbd_detectors.launch在里面的行tracking_on_robot.launch。

启动自己的启动文件以启动人员检测器,或使用我们提供的启动文件的组合spencer_people_tracking_launch/launch/detectors。您可能需要根据需要重新输入和输出主题。

创建副本detection_to_detection_fusion_pipeline.launch及其子女,如fuse_lasers_and_rgbd.launch在spencer_detected_person_association。基于所提供的示例,创建自己的管道,分步地对来自不同检测器的检测进行融合。有关更多信息,请参阅相应的包。

创建freiburg_people_tracking.launch文件的副本spencer_people_tracking_launch。调整它是指您自己的融合启动文件在步骤2中创建。

开始你的副本freiburg_people_tracking.launch。

如果需要,通过启动组跟踪roslaunch spencer_people_tracking_launch group_tracking.launch。

我们的ICRA 2016论文的多模态“运动捕捉”序列可根据要求提供,让您在我们的数据集上评估自己的检测/跟踪算法。为了公平的比较,请尽可能使用此存储库中包含的CLEAR-MOT指标实现。由于隐私原因,机场序列的原始数据不能共享,尽管我们可能会在稍后提供提取的检测。

该存储库中的软件由以下机构维护:

Timm Linder,社会机器人实验室,弗莱堡艾伯特 - 路德维希大学

亚琛大学计算机视觉系Stefan Breuers

这项工作得到EC根据合同号FP7-ICT-600877(SPENCER)的支持。如果您使用此存储库中包含的软件进行研究,请引用以下出版物:

关于在非常拥挤和动态环境中的移动平台的多模态人员跟踪

Linder,T.,Breuers,S.,Leibe,B.,Arras,KO

IEEE国际机器人与自动化大会(ICRA)2016

也可以:

人机检测,跟踪和可视化使用ROS在移动服务机器人

Linder,T.和Arras,KO

机器人操作系统(ROS):完整参考(第1卷)。

Springer系统,决策和控制研究,2016年

该存储库中的大多数软件都是根据BSD许可证发布的。但是,有关详细信息,请查看各个ROS包。

[1] Linder T.和Arras KO 多模型假设跟踪RGB-D数据中的人群。IEEE Int。会议信息融合(FUSION'14),萨拉曼卡,西班牙,2014年。

基于ROS的Most Stars开源代码汇总(自动驾驶汽车+RGBDSLAMv2+ROS2+人识别与跟踪等)

[2] Jafari O. Hosseini和Mitzel D.和Leibe B。基于移动机器人和头戴式相机的实时RGB-D人检测和跟踪。IEEE国际机器人与自动化大会(ICRA'14),2014年。

[3] Arras KO和Martinez Mozos O.和Burgard W .. 使用增强特征来检测2D范围数据中的人。IEEE国际机器人与自动化大会(ICRA'07),意大利罗马2007年。

[4] Munaro M.和Menegatti E. 快速RGB-D人跟踪服务机器人。自主机器人,第37卷第3期,第227-242页,Springer,2014。

----

制图ROS集成

目的

制图师是一种在多平台和传感器配置中在2D和3D 中提供实时同时定位和映射(SLAM)的系统。该项目提供制图工具的ROS整合。

入门

在我们阅读文档网站时学习使用制图师与ROS 。

请加入邮件列表并提出问题。

特约

您可以在我们的贡献页面上找到有关制图师ROS整合的信息。

----

AutoRally

AutoRally研究平台软件。

自动平台网站

AutoRally Youtube频道

研究页面AutoRally与:

http://rehg.org/autorally

http://dcsl.gatech.edu/research-muri-nascar.html

http://acds-lab.gatech.edu/Research.html

特约

我们欢迎错误修复,增强功能,新功能和反馈!

请将提交请求提交给符合ROS C ++样式指南的devel分支。我们使用Gitflow,所以主分支保留发布。

安装说明

内容

安装先决条件

克隆版本库

安装自动ROS依赖关系

编译/运行

生成文档

模拟测试设置

1.安装先决条件

安装Ubuntu 14.04 64位

安装所需的软件包

sudo apt-get install git doxygen openssh-server libusb-dev texinfo

推荐工具

以下工具对于该项目是有用的,但不是必需的。

FEH

cutecom

cmake的-诅咒贵

香菜

突触

Arduino的

蟒蛇,termcolor

安装 ros-indigo-desktop-full

安装gtsam

按照gtsam 快速入门指南,克隆并安装gtsam 的开发分支。

而不是cmake ..使用:

cmake -DGTSAM_INSTALL_GEOGRAPHICLIB=ON -DGTSAM_WITH_EIGEN_MKL=OFF ..

一旦安装完成,确保linux可以看到共享库:

sudo ldconfig

克隆或叉库

在catkin工作空间中获取自动存储库。建议的位置是~/catkin_ws/src/,但任何有效的catkin worskspace源文件夹将工作。如果您正在使用代码,我们建议先分一批。

要直接从AutoRally回购克隆:

git clone https://github.com/AutoRally/autorally.git

还将IMU代码克隆到同一个catkin工作空间中:

git clone https://github.com/AutoRally/imu_3dm_gx4.git

3.安装自动ROS依赖关系

在catkin工作区文件夹中,运行此命令来安装该项目依赖的包。

rosdep install --from-path src --ignore-src -y

编译运行

catkin_make从catkin工作空间文件夹编译并安装运行。

由于ROS分布式发射系统的额外要求,您必须运行

source src/autorally/autorally_util/setupEnvLocal.sh

之前使用任何AutoRally组件。有关如何为您的车辆平台上的分布式发射设置此系统的更多信息,请参阅维基。

注意:如果您不熟悉catkin,请知道您必须运行source catkin_ws/devel/setup.sh,ROS将能够找到自动包。这行可以添加到你的〜/ .bashrc文件。

5.生成文档

您可以生成或运行更新代码文档doxygen在autorally/。

查看autorally/doc/html/index.html在Web浏览器中打开的代码文档。

6.启动AutoRally Simulation以测试配置

roslaunch autorally_gazebo autoRallyTrackGazeboSim.launch

您可以使用USB手柄来驱动模拟平台。在启动时,节点发布的runstop消息joystick是假的。按右键(通常标记为X,Y,A,B或正方形,三角形,X,圆圈)的任何按钮可切换发布的值。

通过查看主题中的runstopMotionEnabled参数来验证运行状态运动是否启用/chassisState。

如果您没有使用游戏手柄,则必须为平台移动配置另一个runstop信息源:

评论第93行 autorally_gazebo/launch/autoRallyTrackGazeboSim.launch

rosrun rqt_publisher rqt_publisher

和rqt_publisher配置来发布消息主题/runstop类型的autorally_msgs/runstop在1Hz与sender设置为rqt_publisher和motionEnabled设置为真。

验证runstopMotionEnabled是真实的/chassisState话题。

7.自主驾驶模拟

在本节结尾,机器人将使用可用的控制器在模拟中自主驾驶autorally_control。

将机器人定位在与模拟开始时相同的位置,并确保启动运行停止运动(设置为true)。

在autorally_core/launch/state_estimator.launch变化InvertY和InvertZ对假,则:

rosparam set /gps_imu/FixedInitialPose true

roslaunch autorally_core state_estimator.launch

roslaunch autorally_control waypointFollower.launch

roslaunch autorally_control constantSpeedController.launch

rosrun rqt_publisher rqt_publisher

配置发布商constantSpeedController/speedCommand的类型std_msgs/Float64为10的价格为3(您可以调整他的价值一旦一切正在运行)。该值是以m / s为单位的目标速度,只要您执行此操作,平台应在移动启用时移动。

如果机器人转动并击中障碍物,可能是因为状态估计器没有收敛,所以它的方向估计是不正确的。只需选择轨道障碍并将其移动以允许机器人继续驾驶,并且估计器应该收敛,并且车辆将返回到障碍物内。

下一步是什么

有关控制器和状态估计器的更详细的解释可以在wiki上找到:

状态估计器

航点跟随者

恒速控制器

控制AutoRally平台是您自己的控制器如何控制AutoRally平台(在模拟或硬件上)的教程。

如果您正在配置物理AutoRally平台,则下一步是配置计算框,所有外设和启动系统。这些说明在“ 平台配置说明”中找到。

----

IAI Kinect2

维护者

Thiemo Wiedemeyer < wiedemeyer@cs.uni-bremen.de >,不莱梅大学人工智能研究所

先阅读

在提出问题之前,请仔细阅读本README和各个组件的内容。我们得到很多重复的问题,所以当你有问题时,我们敦促大家检查github问题(包括关闭的)。你的问题很可能已经在讨论过了。

该项目的目标是给您一个驱动程序和从Kinect-2传感器接收数据所需的工具,以一种有用的机器人技术。您仍然需要知道如何使用ROS来使用它。请遵循ROS教程。您还需要学习如何使用点云,深度云或图像(计算机视觉)来处理数据。

注意: 有关 iai_kinect2软件包及其组件的 问题,请使用GitHub问题。不要写邮件

目录

描述

常问问题

依赖

安装

GPU加速

OpenCL与AMD

OpenCL / CUDA与Nvidia

OpenCL与Intel

引文

截图

描述

这是用于Kinect One(Kinect v2)的ROS接口的工具和库的集合。

它包含:

用于将Kinect One的红外传感器校准到RGB传感器的校准工具和深度测量

一个用于深入注册OpenCL支持的库

libfreenect2和ROS之间的桥梁

图像/点云的查看器

常问问题

首先你应该看看这个FAQ和libfreenect2的FAQ。其次,从libfreenect2的问题页面和iai_kinect2的问题页面看类似的问题和解决方案。

点云仅在使用启动文件时发布。确保启动kinect2_bridge roslaunch kinect2_bridge kinect2_bridge.launch。

简答:不。

长的答案:是的,可以使用OpenCV 3.0编译这个包,但是它不会工作。这是因为使用了cv_bridge,它本身在ROS Indigo / Jade中使用OpenCV 2.4.x进行编译,并且无法与OpenCV版本进行链接。OpenCV 3.0的工作支持可能会带来未来的ROS版本。

有很多原因kinect2_bridge可能不工作。首先要找出问题是否与kinect2_bridge或libfreenect2。一个很好的测试工具是Protonect它位于的二进制文件libfreenect2/build/bin/Protonect。它直接使用libfreenect2,对其他库的依赖性最小,因此它是第一个测试的好工具。

执行:

./Protonect gl 测试OpenGL支持。

./Protonect cl 测试OpenCL支持。

./Protonect cpu 测试CPU支持。

运行前kinect2_bridge请确保Protonect正在工作,并显示颜色,深度和图像。如果其中有些是黑色的,那么有一个与此无关的问题kinect2_bridge,您应该从libfreenect2 GitHub页面中查看有关帮助的问题。

如果其中一人的作品,尝试与工作的一个kinect2_bridge:rosrun kinect2_bridge kinect2_bridge _depth_method:=。您也可以使用更改注册方法_reg_method:=

如果是这样的话,你必须确保Protonect使用相同版本libfreenect2的kinect2_bridge一样。要做到这一点,运行make和sudo make install再次build文件夹中。再试kinect2_bridge一次。

cd libfreenect2/build

make & sudo make install

还要确保你没有使用OpenCV 3.0。

如果仍然崩溃,请在调试中编译并运行gdb:

cd

catkin_make -DCMAKE_BUILD_TYPE="Debug"

cd devel/lib/kinect2_bridge

gdb kinect2_bridge

// inside gdb: run until it crashes and do a backtrace

run

bt

quit

打开一个问题,并发布问题描述和backtrace(bt)的输出。

这是正常的行为。'kinect2_bridge'仅在客户端连接时处理数据(ROS节点至少听到一个主题)。这样可以节省CPU和GPU资源。一旦开始kinect_viewer或rostopic hz其中一个主题,处理应该开始。

rosdep将输出错误无法找到[kinect2_bridge]和[kinect2_registration]。这很好,因为它们都是iai_kinect2包的一部分,rosdep不知道这些包。

这表示USB连接有问题。

首先,检查GitHub上的问题页面是否有类似的问题,因为它们可能包含它们的解决方案。默认情况下,您只会看到公开的问题,但是如果您点击,closed您将会解决这些问题。还有一个搜索字段帮助找到类似的问题。

如果您没有发现问题的解决方案,请随时为您的问题开辟新的问题。请详细说明您的问题,并提供错误信息和日志输出。

依赖

ROS Hydro / Indigo

OpenCV(2.4.x,推荐使用官方Ubuntu存储库)

PCL(1.7.x,推荐使用官方Ubuntu存储库中的一个)

特征(可选,但推荐)

OpenCL(可选,但推荐)

libfreenect2(> = v0.2.0,用于稳定性检出最新的稳定版本)

安装

安装ROS Ubuntu 14.04的说明

设置您的ROS环境

安装libfreenect2:

按照说明操作,并使用C ++ 11 cmake .. -DENABLE_CXX11=ON代替cmake ..

如果某些事情不起作用,请查看最新的稳定版本git checkout v0.2.0。

将此存储库克隆到您的catkin工作空间中,安装依赖项并构建它:

cd〜/ catkin_ws / src / git clone https://github.com/code-iai/iai_kinect2.git cd iai_kinect2 rosdep install -r --from-paths。cd〜/ catkin_ws catkin_make -DCMAKE_BUILD_TYPE =“Release”

*Note: `rosdep` will output errors on not being able to locate `[kinect2_bridge]` and `[depth_registration]`.

That is fine because they are all part of the iai_kinect2 package and `rosdep` does not know these packages.*

*Note: If you installed libfreenect2 somewhere else than in `$HOME/freenect2` or a standard location like `/usr/local`

you have to specify the path to it by adding `-Dfreenect2_DIR=path_to_freenect2/lib/cmake/freenect2` to `catkin_make`.*

5. Connect your sensor and run `kinect2_bridge`:

roslaunch kinect2_bridge kinect2_bridge.launch

6. Calibrate your sensor using the `kinect2_calibration`. [Further details](kinect2_calibration#calibrating-the-kinect-one)

7. Add the calibration files to the `kinect2_bridge/data/` folder. [Further details](kinect2_bridge#first-steps)

8. Restart `kinect2_bridge` and view the results using `rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud`.

## GPU acceleration

### OpenCL with AMD

Install the latest version of the AMD Catalyst drivers from https://support.amd.com and follow the instructions. Also install `opencl-headers`.

sudo apt-get install opencl-headers

### OpenCL/CUDA with Nvidia

Go to [developer.nvidia.com/cuda-downloads](https://developer.nvidia.com/cuda-downloads) and select `linux`, `x86_64`, `Ubuntu`, `14.04`, `deb(network)`.

Download the file and follow the instructions. Also install `nvidia-modprobe` and `opencl-headers`.

sudo apt-get install nvidia-modprobe opencl-headers

You also need to add CUDA paths to the system environment, add these lines to you `~/.bashrc`:

export LD_LIBRARY_PATH =“/ usr / local / cuda / lib64:$ {LD_LIBRARY_PATH}”export PATH =“/ usr / local / cuda / bin:$ {PATH}”

A system-wide configuration of the libary path can be created with the following commands:

echo“/ usr / local / cuda / lib64”| sudo tee /etc/ld.so.conf.d/cuda.conf sudo ldconfig

### OpenCL with Intel

You can either install a binary package from a PPA like [ppa:floe/beignet](https://launchpad.net/~floe/+archive/ubuntu/beignet), or build beignet yourself.

It's recommended to use the binary from the PPA.

sudo add-apt-repository ppa:floe / beignet && sudo apt-get update sudo apt-get install beignet beignet-dev opencl-headers

## Citation

If you used `iai_kinect2` for your work, please cite it.

```tex

@misc{iai_kinect2,

author = {Wiedemeyer, Thiemo},

title = {{IAI Kinect2}},

organization = {Institute for Artificial Intelligence},

address = {University Bremen},

year = {2014 -- 2015},

howpublished = {\url{https://github.com/code-iai/iai\_kinect2}},

note = {Accessed June 12, 2015}

}

结果应该与此类似(可能取决于所使用的参考书目风格):

T. Wiedemeyer, “IAI Kinect2,” https://github.com/code-iai/iai_kinect2,

Institute for Artificial Intelligence, University Bremen, 2014 – 2015,

accessed June 12, 2015.

截图

以下是我们的工具包的截图:

----

最后列一些参考书籍:

掌握机器人编程的ROS

买书

PACKT

Amazon.com

Amazon.in

Lentin约瑟夫

安装

该代码可与ROS Jade和ROS Indigo相兼容。本书提到了每个包的详细安装说明

教程

第1章: ROS及其软件包管理简介

第2章:在ROS中使用3D机器人建模

第3章:使用ROS和凉亭模拟机器人

第4章:使用ROS MoveIt!和导航堆栈

第5章:使用Pluginlib,Node和Gazebo插件

第6章:编写ROS控制器和可视化插件

第7章:将I / O板,传感器和执行器连接到ROS

第8章:使用ROS,Open-CV和PCL编程视觉传感器

第9章:构建和接口ROS中的差分驱动器移动机器人硬件

第10章:探索ROS-MoveIt的高级功能!

第11章:工业机器人的ROS

第12章:ROS中的故障排除和最佳实践

ROS机器人项目

买书

PACKT

Amazon.com

Amazon.in

Lentin约瑟夫

安装

该代码可与ROS Kinetic和ROS Indigo合作。本书提到了每个包的详细安装说明

教程

第1章: ROS Robotics应用开发入门

第2章:使用ROS,OpenCV和Dynamixel Servos进行人脸检测和跟踪

第3章:在ROS中构建一个Siri-like Chatbot

第4章:使用ROS控制嵌入式电路板

第5章:使用手势远程操作机器人

第6章:对象检测和识别

第7章:使用ROS和TensorFlow深入学习

第8章:MATLAB和Android上的ROS

第9章:构建自主移动机器人

第10章:使用ROS创建自驾车!

第11章:使用VR耳机和跳跃运动的远程操作机器人

第12章:通过网络控制机器人

使用Python学习机器人

买书

PACKT

Amazon.com

Amazon.in

Lentin约瑟夫

安装

该代码可与ROS Jade和ROS Indigo相兼容。本书提到了每个包的详细安装说明

教程

第1章:机器人介绍

第2章:机器人的机械设计

第3章:使用ROS和凉亭进行机器人模拟

第4章:设计Chefbot硬件

第5章:使用机器人执行器和车轮编码器

第6章:使用机器人传感器

第7章:使用Python和ROS编程视觉传感器

第8章:使用Python和ROS进行语音识别和综合

第9章:使用Python将人工智能应用于Chefbot

第10章:使用Python来整合Chefbot硬件并将其与ROS进行连接

第11章:使用QT和Python为机器人设计GUI

第12章:Chefbot的校准和测试

----

交通智能体 华为开源镜像站 Mirrors 自动驾驶

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:管理信息系统需求调研分析指南
下一篇:地表最强数据包工具--Scapy基础篇
相关文章