Star 200+
https://github.com/CPFL/Autoware
用于城市自主驾驶的开源软件。 http://www.tier4.jp/
用于城市自主驾驶的集成开源软件,由第四层维护。支持以下功能:
Autoware受BSD许可证保护。请自行负责使用。为了安全使用,我们为不拥有真正自主车辆的人提供基于ROSBAG的仿真方法。如果您使用Autoware与真正的自主车辆,请在现场测试之前制定安全措施和风险评估。
如果在ROS Hydro或Ubuntu 13.04,13.10上使用Autoware,请在2015 / OCT / 21之前使用结帐修订。
% 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软件包。如果您已经安装,请卸载它。
% 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月,我们仅提供日本文件。英文文本将会加入。
森山在名古屋的3D地图
森山驾驶的ROSBAG数据
用于生成森山的演示启动文件的脚本
ROSBAG数据用于校准
名古屋驾驶的ROSBAG数据
Autoware Developers([email protected])
要订阅Autoware Developers ML,
----
用于ROS的RGB-D SLAM
https://github.com/felixendres/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。
更多的信息可以在我的博士论文中找到
其他信息可以在这里找到:
这是一个规范的方式,如果你知道你在做什么,随时适应。
将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中,可以通过从“数据”菜单中选择“保存八进制”来完成。在线八进制是可能的,但不推荐。
要启动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”对大多数用户可能是有用的。
RosUI可以替代Grapical_UI来运行rgbdslam headless,例如在PR2上。然后可以通过服务调用使用rgbdslam。可能的电话是:
要启动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:
/ rgbdslam / ros_ui_b:
/ rgbdslam / ros_ui_f:
/ rgbdslam / ros_ui_s:
编译可能需要很多内存,特别是如果设置了环境变量$ 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的编译或链接有关的问题,可以在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)是一组可帮助您构建机器人应用程序的软件库和工具。从驱动程序到最先进的算法,以及强大的开发人员工具,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于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演示 | 幻灯片 / 视频 |
----
欧盟FP7研究项目SPENCER的目标是为服务机器人开发算法,可以通过高度动态和拥挤的行人环境(如机场或购物中心)来指导群体,同时以符合社会的方式行事,例如不跨越家庭或夫妇 这样的机器人可以遇到的示例性情况在右侧的下图中可视化。为此,需要开发出在机器人环境中对于人类感知的强大和计算效率高的组件。
下图显示了在SPENCER项目背景下开发的实时人员和组检测和跟踪管道:
我们管道的不同阶段之间的整个沟通通过ROS消息发生,这些消息鼓励在自定义设置中重用我们的组件。模块化架构允许在管道的所有阶段中各个组件的简单互换性。
我们提供一套可重复使用的ROS消息类型定义,我们已经通过不同的传感器模式和跟踪方法成功地应用于各种人员检测和跟踪场景。可以在spencer_tracking_msgs包中找到最相关的消息。
我们高度鼓励重用这些消息,以从我们丰富的检测,跟踪,过滤和可视化组件的基础设施中获益!现有的检测和跟踪算法通常可以通过以我们的格式发布附加消息,或通过编写一个简单的C ++或Python节点来转换消息格式,来容易地集成。
我们集成了以下人员检测模块:
输出geometry_msgs/PoseArray
或people_msgs/PositionMeasurementArray
消息的其他外部检测器可以使用此包中的脚本轻松地集成到我们的框架中。这种检测器的实例包括:
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插件,用于可视化:
作为示例,跟踪人员的一些功能显示为:
以下所有屏幕截图都是使用这些插件生成的。
以下屏幕截图显示我们的系统正在运行,同时从拥挤的机场环境播放记录的数据:
人员检测和跟踪系统的视频可以在SPENCER YouTube频道上找到:
在配有前后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
这将执行以下操作:
/spencer/sensors/rgbd_front_top/
相机命名空间中发布RGB-D点云srl_nearest_neighbor_tracker
,它将订阅/spencer/perception/detected_persons
和发布轨道/spencer/perception/tracked_persons
原始的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指标实现。由于隐私原因,机场序列的原始数据不能共享,尽管我们可能会在稍后提供提取的检测。
该存储库中的软件由以下机构维护:
不同ROS包的信用量分配给相应README.md
和package.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。
----
制图师是一种在多平台和传感器配置中在2D和3D 中提供实时同时定位和映射(SLAM)的系统。该项目提供制图工具的ROS整合。
您可以在我们的贡献页面上找到有关制图师ROS整合的信息。
----
AutoRally研究平台软件。
自动平台网站
AutoRally Youtube频道
研究页面AutoRally与:
我们欢迎错误修复,增强功能,新功能和反馈!
请将提交请求提交给符合ROS C ++样式指南的devel分支。我们使用Gitflow,所以主分支保留发布。
安装Ubuntu 14.04 64位
安装所需的软件包
sudo apt-get install git doxygen openssh-server libusb-dev texinfo
推荐工具
以下工具对于该项目是有用的,但不是必需的。
安装 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
在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文件。
您可以生成或运行更新代码文档doxygen
在autorally/
。
查看autorally/doc/html/index.html
在Web浏览器中打开的代码文档。
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
话题。在本节结尾,机器人将使用可用的控制器在模拟中自主驾驶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平台,则下一步是配置计算框,所有外设和启动系统。这些说明在“ 平台配置说明”中找到。
----
在提出问题之前,请仔细阅读本README和各个组件的内容。我们得到很多重复的问题,所以当你有问题时,我们敦促大家检查github问题(包括关闭的)。你的问题很可能已经在讨论过了。
该项目的目标是给您一个驱动程序和从Kinect-2传感器接收数据所需的工具,以一种有用的机器人技术。您仍然需要知道如何使用ROS来使用它。请遵循ROS教程。您还需要学习如何使用点云,深度云或图像(计算机视觉)来处理数据。
注意: 有关 iai_kinect2软件包及其组件的 问题,请使用GitHub问题。不要写邮件
这是用于Kinect One(Kinect v2)的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 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 Jade和ROS Indigo相兼容。本书提到了每个包的详细安装说明
该代码可与ROS Kinetic和ROS Indigo合作。本书提到了每个包的详细安装说明
该代码可与ROS Jade和ROS Indigo相兼容。本书提到了每个包的详细安装说明
----