美文网首页NVIDIA Jetson working
Isaac 入门中。。。

Isaac 入门中。。。

作者: 童年雅趣 | 来源:发表于2019-04-23 10:37 被阅读20次
    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 知识

    相关文章

      网友评论

        本文标题:Isaac 入门中。。。

        本文链接:https://www.haomeiwen.com/subject/diapgqtx.html