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的生态系统:

Isaac 入门中。。。_第1张图片
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界面

Isaac 入门中。。。_第2张图片
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 知识

你可能感兴趣的:(Isaac 入门中。。。)