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

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

引文研究论文

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

演示视频

公路示范

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

说明视频

快速开始

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

加载地图数据

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

GNSS定位

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

没有GNSS的本地化

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

制图

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

用SSD进行检测

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

用DPM检测

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

用欧氏距离聚类检测

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

交通灯识别

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

规划与ROSBAG

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

用wf_simulator进行规划

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

混合状态A *

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

校准工具包

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

样品数据

森山在名古屋的3D地图

森山驾驶的ROSBAG数据

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

ROSBAG数据用于校准

IROS 2016数据

名古屋驾驶的ROSBAG数据

联系

Autoware Developers([email protected]

要订阅Autoware Developers ML,

  • 如果您有Google帐户,请访问https://groups.google.com/d/forum/autoware,然后点击应用于加入群组按钮。
  • 如果您没有Google帐户,请发送电子邮件至[email protected]

----

用于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.SturmD. 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

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

先决条件

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

安装

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

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

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

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

  4. 要构建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的Most Stars开源代码汇总(自动驾驶汽车+RGBDSLAMv2+ROS2+人识别与跟踪等)_第16张图片

重要的提示

该软件是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中,可以通过从“数据”菜单中选择“保存八进制”来完成。在线八进制是可能的,但不推荐。

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

使用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和各种演示的工作的信息:

标题 类型 链接
ROS 2更新 - alpha版本总结,架构概述 ROSCon 2016演示 幻灯片 / 视频
评估ROS2通信层的弹性 ROSCon 2016演示 幻灯片 / 视频
ROS 2状态 - 演示和技术背后 ROSCon 2015演示 幻灯片 / 视频
ROS 2在“小”嵌入式系统上 ROSCon 2015演示 幻灯片 / 视频
ROS和ROS 2.0中的实时控制 ROSCon 2015演示 幻灯片 / 视频
为什么要使用ROS 2 ROSCon 2014演示 幻灯片 / 视频
下一代ROS:建立在DDS上 ROSCon 2014演示 幻灯片 / 视频

----

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

在欧盟FP7项目SPENCER的背景下,针对移动机器人开发的多模态基于ROS的人群和检测跟踪框架

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

特点一目了然

  • 多模式检测:多个RGB-D和2D激光探测器在一个通用的框架中。
  • 人员跟踪:基于最近邻数据关联的高效追踪器。
  • 社会关系:通过连贯的运动指标估计人与人之间的空间关系。
  • 群体跟踪:根据社会关系检测和跟踪群体。
  • 鲁棒性: IMM,追踪启动逻辑和高回调检测器输入等各种扩展功能使人们跟踪器即使在非常动态的环境中也能相对稳健地工作。
  • 实时:在游戏笔记本电脑上运行20-30 Hz,跟踪器本身只需要1个CPU核心的10%。
  • 可扩展和可重用:结构良好的ROS消息类型和明确定义的界面可以轻松集成自定义检测和跟踪组件。
  • 强大的可视化:一系列可重用的RViz插件,可以通过鼠标点击配置,还有用于生成动画(2D)SVG文件的脚本。
  • 评估工具:用于评估跟踪性能的指标(CLEAR-MOT,OSPA)。
  • ROS集成:所有组件都与ROS完全集成,并以C ++或Python编写。不需要Matlab。

动机

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

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

建筑

下图显示了在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显卡。
  • 一种来自PCLRGB-D检测器,其在接地面上提取候选ROI,然后应用线性HOG分类器[4]

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

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

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

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

在检测到轨道融合(目前未实现)的情况下,仍然建议对与轨道相关联的每组检测发布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
  • 当轨道被遮挡时可配置的不透明度降低
  • 跟踪历史(轨迹)显示为点或线
  • 可配置的字体大小和线宽

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

我们系统的示例屏幕截图

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

多民族人群检测 橙色:2D激光[3],青色:上身RGB-D [2],黄色:单目视觉HOG [2],灰色:融合检测(使用检测到检测融合时)。

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

人追踪。红色:通过基于图像的检测器视觉确认的轨迹

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

通过相干运动指示器特征进行组跟踪,如[1]

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

演示视频

人员检测和跟踪系统的视频可以在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
2.安装所需的依赖项

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

rosdep update
rosdep install -r --from-paths . --ignore-src
3.初始化catkin工作空间

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

cd ..
catkin config --init --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
4.构建ROS包

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

catkin build -c -s
5.采购ROS工作区

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

source devel/setup.bash
关于地面HOG探测器的CUDA SDK的特别说明

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

快速入门教程

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

演示:来自bagfile的RGB-D和2D激光的多模跟踪

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

rosrun spencer_people_tracking_launch download_example_bagfiles.sh

然后,您可以启动

roslaunch spencer_people_tracking_launch tracking_on_bagfile.launch

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

使用PCL人员检测器,而不是上身检测器

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

启用groundHOG检测器

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

教程1:使用单个RGB-D传感器进行人员/组跟踪和可视化

这是开始使用本地连接到计算机的单个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

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

故障排除

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

教程2:使用前后激光+ RGB-D传感器进行跟踪

要尝试类似于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

教程3:完全定制传感器配置
  1. 启动自己的启动文件以启动人员检测器,或使用我们提供的启动文件的组合spencer_people_tracking_launch/launch/detectors您可能需要根据需要重新输入和输出主题。
  2. 创建副本detection_to_detection_fusion_pipeline.launch及其子女,如fuse_lasers_and_rgbd.launchspencer_detected_person_association基于所提供的示例,创建自己的管道,分步地对来自不同检测器的检测进行融合。有关更多信息,请参阅相应的包。
  3. 创建freiburg_people_tracking.launch文件的副本spencer_people_tracking_launch调整它是指您自己的融合启动文件在步骤2中创建。
  4. 开始你的副本freiburg_people_tracking.launch
  5. 如果需要,通过启动组跟踪roslaunch spencer_people_tracking_launch group_tracking.launch

多模态数据集进行评估

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

信用证,许可证和如何引用

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

  • Timm Linder,社会机器人实验室,弗莱堡艾伯特 - 路德维希大学
  • 亚琛大学计算机视觉系Stefan Breuers

不同ROS包的信用量分配给相应README.mdpackage.xml文件中列出的特定作者

这项工作得到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年。

[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

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

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,所以主分支保留发布。

安装说明

内容

  1. 安装先决条件
  2. 克隆版本库
  3. 安装自动ROS依赖关系
  4. 编译/运行
  5. 生成文档
  6. 模拟测试设置

1.安装先决条件

  1. 安装Ubuntu 14.04 64位

  2. 安装所需的软件包

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

    推荐工具

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

    • FEH
    • cutecom
    • cmake的-诅咒贵
    • 香菜
    • 突触
    • Arduino的
    • 蟒蛇,termcolor
  3. 安装 ros-indigo-desktop-full

  4. 安装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.生成文档

您可以生成或运行更新代码文档doxygenautorally/

查看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_publishermotionEnabled设置为

  • 验证runstopMotionEnabled真实/chassisState话题。

7.自主驾驶模拟

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

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

启动状态估计器:

autorally_core/launch/state_estimator.launch变化InvertYInvertZ,则:

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

维护者

先阅读

在提出问题之前,请仔细阅读本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支持的库
  • libfreenect2ROS之间的桥梁
  • 图像/点云的查看器

常问问题

如果我有任何问题或某事不奏效,我该怎么办?

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

点云尚未发布?

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

它可以与OpenCV 3.0一起使用

简答:不。

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

kinect2_bridge不工作/崩溃,有什么问题?

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

执行:

  • ./Protonect gl 测试OpenGL支持。
  • ./Protonect cl 测试OpenCL支持。
  • ./Protonect cpu 测试CPU支持。

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

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

Protonect工作正常,但kinect2_bridge仍然不工作/崩溃。

如果是这样的话,你必须确保Protonect使用相同版本libfreenect2kinect2_bridge一样。要做到这一点,运行makesudo 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挂起并打印“等待客户端连接”

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

rosdep:找不到[kinect2_bridge]或[kinect2_registration]的rosdep定义

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

Protonect或kinect2_bridge输出[TransferPool :: submit]提交转移失败

这表示USB连接有问题。

我还有一个问题,该怎么办?

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

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

依赖

  • ROS Hydro / Indigo
  • OpenCV(2.4.x,推荐使用官方Ubuntu存储库)
  • PCL(1.7.x,推荐使用官方Ubuntu存储库中的一个)
  • 特征(可选,但推荐)
  • OpenCL(可选,但推荐)
  • libfreenect2(> = v0.2.0,用于稳定性检出最新的稳定版本)

安装

  1. 安装ROS Ubuntu 14.04的说明

  2. 设置您的ROS环境

  3. 安装libfreenect2

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

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

  4. 将此存储库克隆到您的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的Most Stars开源代码汇总(自动驾驶汽车+RGBDSLAMv2+ROS2+人识别与跟踪等)_第26张图片基于ROS的Most Stars开源代码汇总(自动驾驶汽车+RGBDSLAMv2+ROS2+人识别与跟踪等)_第27张图片基于ROS的Most Stars开源代码汇总(自动驾驶汽车+RGBDSLAMv2+ROS2+人识别与跟踪等)_第28张图片


----

最后列一些参考书籍:

掌握机器人编程的ROS

掌握ROS的机器人编程书籍教程源代码

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

买书

  • 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机器人项目

ROS机器人项目

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

买书

  • 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学习机器人

学习机器人使用Python书籍教程源代码

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

买书

  • 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的校准和测试

----


你可能感兴趣的:(机器人仿真,多机器人系统,课程-现代控制理论-,Ubuntu软件,课程-计算机控制技术-,GazeboSim仿真平台,课程-单片机理论与实践-,课程-机器人系统设计及控制-)