Isaac 入门中。。。

1、什么是Isaac ? NVIDIA Isaac Introduce

Isaac是NVIDIA开发的一套应用于机器人的软件工具包由如下三部分组成:
Isaac Robot Engine(机器人引擎): 指的是一个框架,允许开发者轻松编写模块化应用程序并将其部署在开发的机器人上;
Isaac GEMs(GEMs应用集): 一个基于GPU加速的机器人算法集合包含了从路径规划到视觉感知;
Applications(应用):大量的应用案例包含从展示机器人特定属性的基础应用 到 实现机器人在复杂场景下的深度应用;

Isaac SDK附带了一个基于 Bazel 编译系统的C ++和Python工具链,用于构建和部署应用程序。开发者可以使用像 bazel run //apps/samples/realsense_camera 这样简单的命令来构建和运行自己的应用程序。所有外部依赖项都会被自动提取到系统中并会被编译为所有必需的文件(如此开发者不需要过度关系外部依赖,从而节约开发视觉)。

下图显示了Isaac SDK的生态系统:

image.png

Isaac Robot Engine

Isaac SDK includes the Isaac Robot Engine, a feature-rich framework for building modular robotics applications. With Isaac you can build an application out of small components which pass messages between each other and which can be configured to your custom use case. The Understanding Codelets section of this document gives a brief introduction on how to use components.

Many useful robotics libraries already exist, and Isaac integrates many of these, such as CUDA, NPP, OpenCV, ROS, PCL (wip), Eigen, and others.

Isaac is optimized for NVIDIA hardware like Jetson Xavier, Jetson TX/2, Jetson Nano, and workstation GPUs. You can deploy a cross-compiled application optimized for your platform with a single short command line script.

Gems

Robotics often combines many different disciplines including low-level hardware drivers, safe planning algorithms, fast and accurate computer vision, and high-level artificial intelligence. All of these disciplines have different challenges and success often require years of expertise.

The Isaac SDK comes with a collection of high-performance algorithms to solve challenging robotics problems. These algorithms are known as GEMs. Most importantly, Isaac provides integration of deep neural networks like stereo depth estimation and object detection.

Isaac includes GEMs for support of important hardware components and robotic peripherals.

The Isaac SDK prioritizes navigation functionality in the current release (2019.1), but other domains are planned to be added or enhanced in future releases. See the GEMs section of this document for further information.

Applications

Various sample applications are provided which highlight features of the Robot Engine or focus on the functionality of a particular GEM. These sample applications are good starting points for learning Isaac.

The Isaac SDK is meant for development of applications for complicated use cases like a delivery robot. The Carter application gives you a starting point for building your own delivery robot. Carter can drive to a goal location, patrol in a building, or bring you popcorn. The navigation stack of Carter is based on a Lidar.

To start on a smaller scale, see the Kaya application. Isaac includes instructions on how to build your own robot and bring it to life with artificial intelligence.

To ask and answer questions in the Isaac SDK developer community, visit the Isaac SDK Forum.

2、Isaac 如何安装? NVIDIA Isaac Setup

前言:
Isaac Ubuntu Host端仅支持Ubuntu18.04 (需安装CUDA, cuDNN,OpenCV,Python3,TensorFlow等等),运行NV 提供的脚本可自动安装!

Ubunut18.04 Host安装Isaac:

dennis@dennis:~/jetson/isaac_sdk_17919$ engine/build/scripts/install_dependencies.sh
dennis@dennis:~/jetson/isaac_sdk_17919$ python3 -c "import cv2 ; print(cv2.__version__)"
4.1.0

dennis@dennis:~$  python3 -c "import tensorflow as tf; print(tf.__version__)"
1.13.1

dennis@dennis:~/jetson/isaac_sdk_17919$ cudafe++ --version
cudafe: NVIDIA (R) Cuda Language Front End
Portions Copyright (c) 2005-2018 NVIDIA Corporation
Portions Copyright (c) 1988-2016 Edison Design Group Inc.
Based on Edison Design Group C/C++ Front End, version 4.14 (Sep 30 2018 21:07:44)
Cuda compilation tools, release 10.0, V10.0.166

dennis@dennis:~/jetson/isaac_sdk_17919$ nvcc 
nvcc fatal   : No input files specified; use option --help for more information
dennis@dennis:~/jetson/isaac_sdk_17919$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sun_Sep_30_21:07:36_CDT_2018
Cuda compilation tools, release 10.0, V10.0.166

dennis@dennis:~/jetson/isaac_sdk_17919$ bazel version
Build label: 0.19.2
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Mon Nov 19 16:25:09 2018 (1542644709)
Build timestamp: 1542644709

Jetson TX2(JetPack4.2 Installed) 安装Isaac:

dennis@dennis:~/jetson/isaac_sdk_17919$ engine/build/scripts/install_dependencies_jetson.sh -u nvidia -h 192.168.1.161

3、Run Isaac(试用)NVIDIA Isaac Sample

Step1. Bazel 编译apps/samples/stereo_dummy案例
Bug001. bazel build 错误(加载package 失败)
解决: 必须 root 即 sudo bazel build //apps/samples/stereo_dummy

dennis@dennis:~/jetson/isaac_sdk_17919/apps/samples/stereo_dummy$ bazel build //apps/samples/stereo_dummy
ERROR: error loading package '': Extension file not found. Unable to load package for '@com_github_googlecartographer_cartographer//:bazel/repositories.bzl': BUILD file not found on package path
ERROR: Skipping '//apps/samples/stereo_dummy': error loading package '': Extension file not found. Unable to load package for '@com_github_googlecartographer_cartographer//:bazel/repositories.bzl': BUILD file not found on package path
WARNING: Target pattern parsing failed.
ERROR: error loading package '': Extension file not found. Unable to load package for '@com_github_googlecartographer_cartographer//:bazel/repositories.bzl': BUILD file not found on package path
INFO: Elapsed time: 0.045s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)

PS: 编译时间根据配置时间长短不一


Step2. Bazel 运行apps/samples/stereo_dummy 案例
运行脚本:

$sudo bazel run //apps/samples/stereo_dummy

等待服务启动后,打开UbuntuHost 浏览器,输入:http://localhost:3000,即可看的如下Isaac Sight界面

image.png
dennis@dennis:~/jetson/isaac_sdk_17919$ sudo bazel run //apps/samples/stereo_dummy
[sudo] password for dennis: 
WARNING: /home/dennis/jetson/isaac_sdk_17919/packages/viewers/BUILD:14:12: in srcs attribute of cc_binary rule //packages/viewers:libviewers_module.so: please do not import '//packages_x86_64/viewers:libviewers_module.so' directly. You should either move the file to this package or depend on an appropriate rule there
INFO: Analysed target //apps/samples/stereo_dummy:stereo_dummy (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //apps/samples/stereo_dummy:stereo_dummy up-to-date:
  bazel-genfiles/apps/samples/stereo_dummy/run_stereo_dummy
  bazel-bin/apps/samples/stereo_dummy/stereo_dummy
INFO: Elapsed time: 0.263s, Critical Path: 0.00s, Remote (0.00% of the time): [queue: 0.00%, setup: 0.00%, process: 0.00%]
INFO: 0 processes.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
2019-04-26 17:45:16.700 WARNING engine/alice/backend/backend.cpp@141: This application does not have an explicit scheduler configuration. One will be autogenerated to the best of the systems abilities if possible.
2019-04-26 17:45:16.700 WARNING engine/gems/scheduler/scheduler.cpp@327: No default execution groups specified. Attempting to create scheduler configuration for 8 remaining cores. This may be non optimal for the system and application.
2019-04-26 17:45:16.700 INFO    engine/gems/scheduler/scheduler.cpp@280: Scheduler execution groups are:
2019-04-26 17:45:16.700 INFO    engine/gems/scheduler/scheduler.cpp@289: __BlockerGroup__: Cores = [6, 7], Workers = No
2019-04-26 17:45:16.700 INFO    engine/gems/scheduler/scheduler.cpp@289: __WorkerGroup__: Cores = [0, 1, 2, 3, 4, 5], Workers = Yes
2019-04-26 17:45:16.703 INFO    engine/alice/backend/modules.cpp@217: Loaded module 'packages/dummies/libdummies_module.so': Now has 36 components total
2019-04-26 17:45:16.708 INFO    engine/alice/backend/modules.cpp@217: Loaded module 'packages/viewers/libviewers_module.so': Now has 46 components total
2019-04-26 17:45:16.708 INFO    engine/alice/application.cpp@309: Loaded 46 components: isaac::DummyStereoCamera, isaac::DummyTensorListGenerator, isaac::alice::Behavior, isaac::alice::Config, isaac::alice::ConfigBridge, isaac::alice::Failsafe, isaac::alice::FailsafeHeartbeat, isaac::alice::InteractiveMarkersBridge, isaac::alice::MessageLedger, isaac::alice::NodeStatistics, isaac::alice::Pose, isaac::alice::PoseInitializer, isaac::alice::PoseTreeJsonBridge, isaac::alice::PyCodelet, isaac::alice::Recorder, isaac::alice::RecorderBridge, isaac::alice::Replay, isaac::alice::ReplayBridge, isaac::alice::Scheduling, isaac::alice::Sight, isaac::alice::SightChannelStatus, isaac::alice::TcpPublisher, isaac::alice::TcpSubscriber, isaac::alice::Throttle, isaac::alice::UdpPublisher, isaac::alice::UdpSubscriber, isaac::alice::behaviors::Behavior, isaac::alice::behaviors::MemorySelectorBehavior, isaac::alice::behaviors::MemorySequenceBehavior, isaac::alice::behaviors::NodeGroup, isaac::alice::behaviors::ParallelBehavior, isaac::alice::behaviors::SwitchBehavior, isaac::alice::behaviors::TimerBehavior, isaac::dummies::ImageLoader, isaac::ml::SampleAccumulator, isaac::navigation::GroupSelectorBehavior, isaac::navigation::SelectorBehavior, isaac::viewers::ColorCameraViewer, isaac::viewers::DepthCameraViewer, isaac::viewers::DetectionsViewer, isaac::viewers::LidarViewer, isaac::viewers::MosaicViewer, isaac::viewers::PointCloudViewer, isaac::viewers::SegmentationCameraViewer, isaac::viewers::SegmentationViewer, isaac::viewers::TensorListViewer, 
2019-04-26 17:45:16.708 DEBUG   engine/alice/backend/node_backend.cpp@48: Creating node 'dummy'
2019-04-26 17:45:16.708 DEBUG   engine/alice/backend/node_backend.cpp@48: Creating node 'depth_visualization'
2019-04-26 17:45:16.708 WARNING engine/alice/hooks/config_hook.cpp@58: Configuration does not contain a value and no default provided: node='depth_visualization', component='isaac.viewers.DepthCameraViewer', key='tick_period'
2019-04-26 17:45:16.708 WARNING engine/alice/hooks/config_hook.cpp@58: Configuration does not contain a value and no default provided: node='depth_visualization', component='isaac.viewers.DepthCameraViewer', key='colormap'
2019-04-26 17:45:16.712 INFO    engine/alice/backend/modules.cpp@217: Loaded module 'packages/sight/libsight_module.so': Now has 48 components total
2019-04-26 17:45:16.712 DEBUG   engine/alice/backend/node_backend.cpp@48: Creating node 'websight'
2019-04-26 17:45:16.712 WARNING engine/alice/hooks/config_hook.cpp@58: Configuration does not contain a value and no default provided: node='websight', component='WebsightServer', key='tick_period'
2019-04-26 17:45:16.712 WARNING engine/alice/hooks/config_hook.cpp@58: Configuration does not contain a value and no default provided: node='websight', component='isaac.sight.AliceSight', key='tick_period'
2019-04-26 17:45:16.712 DEBUG   engine/alice/backend/node_backend.cpp@48: Creating node '_config_bridge'
2019-04-26 17:45:16.713 WARNING engine/alice/hooks/config_hook.cpp@58: Configuration does not contain a value and no default provided: node='_config_bridge', component='isaac.alice.ConfigBridge', key='tick_period'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/node_backend.cpp@48: Creating node '_statistics'
2019-04-26 17:45:16.713 WARNING engine/alice/hooks/config_hook.cpp@58: Configuration does not contain a value and no default provided: node='_statistics', component='NodeStatistics', key='tick_period'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/node_backend.cpp@48: Creating node '_pose_tree_bridge'
2019-04-26 17:45:16.713 WARNING engine/alice/hooks/config_hook.cpp@58: Configuration does not contain a value and no default provided: node='_pose_tree_bridge', component='PoseTreeJsonBridge', key='tick_period'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/node_backend.cpp@48: Creating node '_interactive_markers_bridge'
2019-04-26 17:45:16.713 WARNING engine/alice/hooks/config_hook.cpp@58: Configuration does not contain a value and no default provided: node='_interactive_markers_bridge', component='InteractiveMarkersBridge', key='tick_period'
2019-04-26 17:45:16.713 INFO    engine/alice/application.cpp@256: Starting application 'stereo_dummy' (instance UUID: 'ff3177ac-6807-11e9-9ae7-9dffd18dadfc') ...
2019-04-26 17:45:16.713 DEBUG   engine/gems/scheduler/execution_groups.cpp@449: Launching 0 pre-start job(s)
2019-04-26 17:45:16.713 DEBUG   engine/gems/scheduler/execution_groups.cpp@458: Replaying 0 pre-start event(s)
2019-04-26 17:45:16.713 DEBUG   engine/gems/scheduler/execution_groups.cpp@449: Launching 0 pre-start job(s)
2019-04-26 17:45:16.713 DEBUG   engine/gems/scheduler/execution_groups.cpp@458: Replaying 0 pre-start event(s)
2019-04-26 17:45:16.713 INFO    engine/alice/backend/asio_backend.cpp@33: Starting ASIO service
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/node_backend.cpp@318: Starting node 'websight'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet 'websight/WebsightServer' ...
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet 'websight/WebsightServer' DONE
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet 'websight/WebsightServer'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet 'websight/isaac.sight.AliceSight' ...
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet 'websight/isaac.sight.AliceSight' DONE
2019-04-26 17:45:16.713 WARNING engine/alice/backend/codelet_backend.cpp@281: Codelet 'websight/isaac.sight.AliceSight' was not added to scheduler because no tick method is specified.
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/node_backend.cpp@318: Starting node '_config_bridge'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet '_config_bridge/isaac.alice.ConfigBridge' ...
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet '_config_bridge/isaac.alice.ConfigBridge' DONE
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet '_config_bridge/isaac.alice.ConfigBridge'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/node_backend.cpp@318: Starting node '_statistics'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet '_statistics/NodeStatistics' ...
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet '_statistics/NodeStatistics' DONE
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet '_statistics/NodeStatistics'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/node_backend.cpp@318: Starting node '_pose_tree_bridge'
2019-04-26 17:45:16.713 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet '_pose_tree_bridge/PoseTreeJsonBridge' ...
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet '_pose_tree_bridge/PoseTreeJsonBridge' DONE
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet '_pose_tree_bridge/PoseTreeJsonBridge'
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/node_backend.cpp@318: Starting node '_interactive_markers_bridge'
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet '_interactive_markers_bridge/InteractiveMarkersBridge' ...
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet '_interactive_markers_bridge/InteractiveMarkersBridge' DONE
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet '_interactive_markers_bridge/InteractiveMarkersBridge'
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/node_backend.cpp@318: Starting node 'dummy'
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet 'dummy/isaac.DummyStereoCamera' ...
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet 'dummy/isaac.DummyStereoCamera' DONE
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet 'dummy/isaac.DummyStereoCamera'
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/node_backend.cpp@318: Starting node 'depth_visualization'
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet 'depth_visualization/isaac.viewers.DepthCameraViewer' ...
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet 'depth_visualization/isaac.viewers.DepthCameraViewer' DONE
2019-04-26 17:45:16.714 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet 'depth_visualization/isaac.viewers.DepthCameraViewer'
2019-04-26 17:46:10.860 INFO    packages/sight/WebsightServer.cpp@106: Server connected / 1

附录:
Bazel 知识

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容