Quantcast
Channel: Intel Developer Zone Articles
Viewing all 3384 articles
Browse latest View live

Intel® Joule™ Platform Mechanical Descriptor


Intel® Joule™ Module Product Brief

$
0
0

Read the product brief to get an overview of the Intel® Joule™ module as well as the expansion board, including features and specs.

Cordova Whitelisting with Intel® XDK for AJAX and Launching External Apps

$
0
0

Cordova CLI 5.1.1 and Higher

Starting with Apache* Cordova* CLI 5.1, the whitelisting security model that restricts and permits access to other domains from the app has changed. It is recommended that before you move your app to production you include a whitelist of the domains to which your app needs access.

Android

Starting with Cordova Android 4.0, your Android app's security policy is managed through a Whitelist Plugin and standard W3C Content Security Policy (CSP) directives. The Android Cordova whitelist plugin understands three distinct whitelist tags:

  1. <access> tag for Network Requests
  2. <allow-intent> tag for Intent Requests
  3. <allow-navigation> for Navigation

NOTE: you do not use the full Cordova notation when specifying access, intent and navigation rules via the Intel XDK whitelist UI. Instead, you provide only the URI for the access, intent or navigation rule. The Intel XDK will construct the proper Cordova XML tag from the URIs you provide and automatically insert them into your build config files.

CSP directives are set by including a meta-tag in the <head> section of your index.html file. An Introduction to Content Security Policy is a good place to go to understand how to configure and apply these whitelist rules to your app. The CSP Playground is also a very useful site for learning about CSP and validating your CSP rules.

iOS

Unlike Android, your Cordova iOS app's whitelist security policy is managed directly by the cordova-ios framework. Cordova iOS versions prior to 4.0 used only the W3C Widget Access specification for domain whitelisting (i.e., the <access> tag). Starting with Cordova iOS 4.0, your Cordova iOS app's whitelist uses the <access> tag, as before, and adds support for two additional tags: <allow-intent> and <allow-navigation> as described in the Whitelist Plugin.

Starting with iOS 9, a scheme called Application Transport Security (ATS) is used to implement whitelist rules. Cordova automatically converts your <access> and <allow-navigation> tags to their equivalent ATS directives. When used with iOS apps, the <access> and <allow-navigation> tags support two new attributes for extra security for a domain whose security attributes you have control over. They have their equivalents in ATS:

  1. minimum-tls-version
  2. requires-forward-secrecy

See the ATS Technote for more details.

Windows

On Windows platforms, Cordova continues to use the W3C Widget Access specification to enforce domain whitelisting, which is built into the Cordova Windows framework.

See the following section for information regarding CSP directives and the Windows platforms.

Content Security Policy (CSP)

CSP is managed by the webview runtime (the builtin web runtime on which your Cordova app executes). Network requests include such actions as retrieving images from a remote server, performing AJAX requests (XHR), etc. CSP controls are specified in a single meta tag in your html files. Most Cordova apps are single-page apps, meaning they have only a single index.html file. If your app contains multiple html files, it is recommended that you use CSP <meta> tag on all of your pages.

Android version 4.4 (KitKat) and above supports the use of CSP (the Android 4.4 native webview is based on Chromium 30). If you are using the Android Crosswalk webview, CSP is supported on Android version 4.0 (Ice Cream Sandwich) and later (the Crosswalk webviews are also based on Chromium).

Apple iOS 7.1 and later supports the use of CSP directives (Apple iOS devices run on the Safari webview).

Windows Phone 8.x devices provide partial support via the X-Content-Security-Policy directive (Windows Phone 8.x devices run on the IE10 and IE11 mobile webviews). Windows 10 devices include full support for standard CSP directives (Windows Phone 10 and Windows 10 tablets run on the Edge webview).

It is recommended that you use CSP whenever possible!!

To get started with CSP, you can include the following very long and overly permissive directive in the <head> section of your index.html file (let your mouse hover over the code fragment shown below and then select the "view source" icon to open a window that will allow you to see and select the entire CSP rule):

<meta http-equiv="Content-Security-Policy" content="default-src 'self''unsafe-eval' data: blob: filesystem: ws: gap: file: cdvfile: https://ssl.gstatic.com *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline''unsafe-eval'; img-src * data: 'unsafe-inline'; connect-src * 'unsafe-inline'; child-src *; ">

There is no single CSP directive that can be recommended for all applications. The correct CSP directive is the one that provides the access you need while simultaneously insuring the protection necessary to keep your app from being compromised and exposing customer or user data.

This StackOverflow post is very helpful to read as an introduction to how Content Security Policy rules work.

Intel XDK 3088 and Higher

Starting with Intel XDK version 3088, the UI provided to specify whitelist entries has changed to accommodate changes in Cordova whitelist rules. Please read the rest of this document to understand how to specify whitelist entries in the Intel XDK.

Network Request Whitelist (<access>):

Network Request controls which network requests, such as content fetching or AJAX (XHR), are allowed to be made from within the app. For those webviews that support CSP, it is recommended that you use CSP. This whitelist entry is intended for older webviews that do not support CSP.

These whitelist specifications are defined in a Cordova CLI config.xml file using the <access origin> tag. Within the Intel XDK UI you specify your URLs in the Build Settings section of the Projects tab. For example, to specify http://mywebsite.com as a whitelisted URL:

Networkwhitelist5.4.1

By default, only requests to file:// URLs are allowed, but Cordova applications by default include access to all website. It is recommended that you provide your whitelist before publishing your app.

Intent Whitelist (<allow-intent>):

The intent whitelist controls which URLs the app is allowed to ask the system (ie., the webview) to open. By default, no external URLs are allowed. This applies to inline hyperlinks and calls to the window.open() function (note, if you are using the inAppBrowser it may change the behavior of window.open(), especially regarding whitelist rules). You app can open "hyperlinks" like a browser (for http:// and https:// URLs) and can "open" other apps via hyperlinks, such as the phone, sms, email, maps etc. 

To allow your app to launch external apps through a URL or via window.open(), specify your rules in the Build Settings section of the Projects tab. 

Navigation Whitelist (<allow-navigation>):

The navigation whitelist rules control which URLs the application webview can be navigated to. Only top level navigations are allowed, with the exception of Android, where it also applies to iframes for non-http(s) schemes. By default, you can only navigate to file:// URLs.

Additional Whitelist Settings for iOS ATS:

The UI whitelist settings for iOS are similar to those described above, with the addition of an ATS setting. When you click the "Edit ATS settings" link you can specify ATS settings for the Network Request and Navigation whitelist rules on your iOS 9 device. ATS settings do not apply to iOS 8 and earlier devices.

Most users should not have to change the ATS settings and can use the default values. For more details about ATS you can read this tutsplus.com article or search the web for additional articles.

The ATS settings dialog looks like this:

Windows Platform Whitelist Rules:

Windows platforms use the W3C Widget Access for whitelisting (that is, the <access> tag). Windows 10 also supports the <allow-navigation> tag. The rules for those tags are consistent with those described above. The Windows platforms also support CSP whitelist rules, which were described in the CSP section above.

Intel XDK versions prior to 3088:

Navigation Whitelist :

Navigation Whitelist controls which URLs the WebView can be navigated to. (Only top level navigations are allowed, with the exception,for Android it applies to iFrames also for non-http(s) schemes.) By default, you can only navigate to file:// URLs. To allow other URLS,  <allow-navigation> tag is used in config.xml file. With the Intel® XDK you need not specify this in config.xml, the Intel XDK automatically generates config.xml from the Build settings.

In the Intel® XDK you specify the URL that you would like the WebView to be navigated to under Build Settings > Android > Cordova CLI X.Y > Whitelist > Cordova Whitelist > Navigation. For example: http://google.com

CLI5.1.1AndroidNavigation.png

Intent Whitelist:

Intent Whitelist controls which URLs the app is allowed to ask the system to open. By default, no external URLs are allowed. This applies to only hyperlinks and calls to window.open(). App can open a browser (for http:// and https”// URLs) or other apps like phone, sms, email, maps etc. To allow app to launch external apps through URL or launch inAppBrowser through window.open(), <allow-intent> tag is used in config.xml, but again you need not specify this in config.xml, the Intel® XDK takes care of it through Build settings. 

In the Intel® XDK specify the URL you want to whitelist for external applications under Build Settings > Android > Cordova CLI  X.Y > Whitelist > Cordova Whitelist > Intent. For example: http://example.com or tel:* or sms:*

CLI5.1.1AndroidIntent.png

Network Request Whitelist:

Network Request Whitelist controls, which network requests, such as content fetching or AJAX (XHR) etc. are allowed to be made from within the app. For the web views that support CSP,  it is recommended that you use CSP. This whitelist is for the older WebViews that do not support CSP.  This whitelist is defined in the config.xml using <access origin> tag, but once again in Intel® XDK you provide the URL under Build Settings > Android > Cordova CLI X.Y > Whitelist > Cordova Whitelist > Network Request. For example: http://mywebsite.com

By default, only request to file”// URLs are allowed, but Cordova applications by default include access to all website. It is recommended that you provide your whitelist before publishing your app.

CLI5.1.1AndroidNetwork.png

Content Security Policy:

Content Security Policy controls, which network requests such as images, AJAX requests (XHR) etc. are allowed to be made via WebView directly. This is specified through meta tags in your html file. It is recommended that you use CSP <meta> tag on all of your pages. Android KitKat onwards supports CSP, but Crosswalk web view supports CSP on all android versions.

For example include this in your index.html file.

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: cdvfile: https://ssl.gstatic.com; style-src 'self''unsafe-inline'; media-src *">

iOS W3CWidgetAcess CLI 5.1.1

For Microsoft Windows* platforms also, W3C Widget Access standards are used and the build settings for whitelisting are as follows.

iOS W3CWidgetAcess CLI 5.1.1

Cordova CLI 4.1.2

Cordova CLI 4.1.2 is no longer supported by the Intel XDK. Please update your project to use CLI 5.4.1 or later.

 

Installing a Heat Sink on the Intel® Joule™ Platform

Intel® Joule™ Module Datasheet

$
0
0

Datasheet includes a System-on-Module overview, as well as information about power delivery, graphics, wireless connectivity, connectors, and more.

Intel® System Studio 2017 Support Matrix

$
0
0

Please email intelsystemstudio@intel.com if you would like additional support for a particular Intel® System Studio 2017 component.

Here is the link for the previous versions of Intel® System Studio support matrix.


Intel® C++ Compiler

Host OS:
Linux*

Host Hardware Requirements

  • A PC based on IA32 or Intel® 64 architecture processor supporting the Intel® Streaming SIMD Extensions 2 (Intel® SSE2) instructions (Intel® Pentium® 4 processor or later, or compatible non-Intel processor)
    • Development for a 32-bit on a 64-bit host may require optional library components (ia32-libs, lib32gcc1, lib32stdc++6, libc6-dev-i386, gcc-multilib) to be installed from your Linux distribution.
  • For the best experience, a multi-core or multi-processor system is recommended 
  • 1GB of RAM (2GB recommended) 
  • 2.5GB free disk space for all features

Host Software Requirements

One of the following Linux host distributions: (This is the list of distributions supported by Intel, other distributions may or may not work and are not recommended ): 

  • Red Hat Enterprise* Linux* 6, 7 
  • Ubuntu* 12.04 LTS, 14.04 
  • Fedora* 20, 21 - deprecated 
  • Wind River* Linux* 6, 7, 8 
  • openSUSE 12.1 - deprecated 
  • SUSE LINUX Enterprise Server* 11 SP2, 12 - deprecated

Developing for Embedded Linux* OS targets

  • Linux* Developer tools component installed, including gcc, g++ and related tools 
  • Library libunwind.so is required in order to use the –traceback option. Some Linux distributions may require that it be obtained and installed separately. 
  • 32bit libc developer package or compatibility package installed. The package name is 
    • libc6-dev-i386 on Ubuntu* 
    • glibc-devel.i686 on RedHat* and Fedora* 
    • glibc-devel-32bit on SLES* 

Developing for Android* OS targets

  • The compiler does require an Android* native build environment to work. One of the following is required:
    • Android* NDK r10e, r11, r11b, r11c, r12 and r12b with API level 21 and 23
    • Android* Open Source Project (AOSP) workspace, for example AOSP workspace for Android 6.0. 
  • Eclipse* users, please install the following:
    • Android* SDK ADT bundle (32-bit or 64-bit package) 

Target Hardware Requirements

  • Development platform based on the Intel® Atom™ processor Z5xx, N4xx, N5xx, D5xx E6xx, N2xxx, D2xxx, Z3xxx, E3xxx, C2xxx, the Intel® Atom™ processor CE4xxx, CE53xx or the Intel® Puma6™ Media Gateway. 
  • Alternatively development platform based on 2nd, 3rd or 4th generation Intel® Core™ microarchitecture based Intel® Core™ processor or Intel® Xeon™ processor. 
  • Development targeting Intel® Quark processor X1xxx 
  • Needed hard disk space
    • IA-32: 13 MB
    • Intel 64: 15 MB 

Target Software Requirements

The target platform should be based on one of the following environments: 

  • Yocto Project* 1.3, 1.4, 1.5, 1.6, 1.7 based environment 
  • CE Linux* PR32 based environment 
  • Tizen* IVI 2.0, 3.0 
  • Wind River* Linux* 4, 5, 6, 7 based environment 
  • Android* Lollipop and Marshmallow  

We can find the similar system specification for each component of  Intel® System Studio 2017 in their individual Release Notes under "System Requirements" section.

Intel® IoT Gateway Developer Hub and Software Suite/Pro Software Suite Release Notes

$
0
0

This is the latest release notes for the Intel® IoT Gateway Developer Hub, Intel® IoT Gateway Software Suite, and Intel® IoT Gateway Pro Software Suite. 

Intel® IoT Gateway Developer Hub and Software Suite/Pro Software Suite Release Notes ARCHIVE

$
0
0

Use this ZIP file to access each available version of the release notes for the Intel® IoT Gateway Developer Hub, Intel® IoT Gateway Software Suite, and Intel® IoT Gateway Pro Software Suite, beginning with production version 3.1.0.17 through the currently released version. The release notes include information about the products, new and updated features, compatibility, known issues, and bug fixes.


Project Avatar – A gesture controlled fully immersive telepresence robotics system with Nao0

$
0
0

You are in a hurry or you just want to see a cool video showcasing a real-time telepresence robotics system which gives you an out-of-body experience without being interested in too many details of how it works? Have a look!

Synopsis

"Avatar" is an American science fiction film by James Cameron premiered in the year 2009. The film is about humans from earth colonizing the planet Pandora which is populated by the local tribe Na'vi. Na'vis are a humanoid species indigenous in Pandora. To create trust the humans developed a system which makes it possible to incarnate as a real Na'vi. In the film Captain Jake Sully (Sam Worthington) slipped into the role of such a native on Pandora to accomplish his mission. With this very special human technology he was able to look and feel like a real Na'vi.

Fìswiräti, nga pelun molunge fìtseng?

This creature, why did you bring him here?

The goal of "Project Avatar" was to build a project where you can have such an out-of-body experience using off-the-shelf hardware. The idea was to control a robot at another location using full body gesture control. The teleoperator on the the remote site is a Nao robot which is equipped with sensors to gather environmental data. Using feedback channels this data can be transferred back to the human controller.

The human operator should actually be able to see the world through the eyes of the Nao robot including the field of view in 3D. This is realizable by using RGB stereo cameras. Using tactile sensors the robot is able to send touch events over the feedback communication channel to the human controller. So the controller can actually feel sensor based events occurring in the environment at the robot's site comparable to some kind of force-feedback.

The hardware hacking team of TNG Technology Consulting GmbH wanted to implement a prototypical version of an immersive telepresence robotics system within one day only.

 

 

 

Telepresence robotics

In the context of telepresence robotics there is a operator site and a remote site. The remote site will be controlled by a human operator who is located on the operator site. The main goal of telepresence robotics is to overcome the four barriers between the operator and the remote environment. The four barriers to overcome are...

  1. Danger
    • A teleoperator should make actions at a place which is hostile to life of human beings (e.g. robots clearing a disaster beyond all expectations).
  2. Distance
    • A teleoperator should be able to get controlled from a remote place using a communication channel (e.g. communication via satellites).
  3. Matter
    • A teleoperator should be able to access biospheres which are hostile to life for human beings (e.g. deep-sea robotics).
  4. Scale
    • A teleoperator should be able to work with robotos with much more precision and accuracy (e.g. for remote surgery) or with machines which are much larger and stronger than an average human beeing.

Multimodal telepresence robotics

To implement a telepresence robotics system which achieves the goal to experience an out-of-body experience there is the strong need to implement feedback channels. Using the communication channel in reverse, gathered sensor information can be transferred from the remote site back to the operator site. Such an essential feedback information would be a 3D visual display in terms of multimodal telepresence robotics. This can be realized with at least two RGB cameras attached to the teleoperator itself. The video signal needs to get streamed through the communication feedback channel without any delays to the human operator.

Requirements

 

To implement our telepresence robotics solution, we need to use special hardware. To point out which hardware to use the hardware hacking team of the TNG Technology Consulting GmbH needed to define some functional requirements. Our requirements for this project were:

  1. The human operator controls the movements of the teleoperator at a remote site using gestures based on full body skeleton tracking
  2. The human operator has visual display 3D feedback using a head mounted display
  3. The human operators head movements will result in corresponding head movement of a teleoperated humanoid robot
  4. The human operator will receive tactile feedback when teleoperator is touched on head
  5. The data between the human controller and the teleoperator needs to get transferred without any cables
  6. Signal delays should be minimal for a pure out-of-body experience with your own Avatar.

Hardware

 

We’ve identified different 3D camera sensors capable of doing skeleton tracking. Among others there are e.g. the Leap Motion, Microsoft Kinect and Intel® RealSense™. LeapMotion is perfectly suited for hand tracking. As we need full body skeleton tracking Intel® RealSense™ or Microsoft Kinect were in the shortlist. For a full article on different gesture control enabled 3D camera sensors you have a look at this article.

At the moment, the Intel RealSense SDK is capable of tracking the upper body. As we needed full body tracking to interpret a walking gesture metaphor we decided for the Microsoft Kinect 2. The implementation was done in way that we can easily implement our solution with Intel RealSense later on when full body skeleton tracking will be available in the future.

A typical head mounted display capable to show 3D vision is the Oculus Rift DK2. As we already had gathered some knowledge with these virtual reality headsets due to our "Augmented Rift Terminator Vision project" we just decided to use this device.

One of the well-known humanoid robots which are programmable in an easy way is the Nao robot of Softbanks robotics (formerly known as Aldebaran). You can easily implement movements using e.g. Python, C++ or Java. In 2015 over 5,000 units of Nao were sold into 50 countries worldwide. Thus an extremely active community is behind that product.

Demonstration video

Architecture Overview

On the operator site we are using a normal laptop computer. At the remote site the Nao robot manipulates the environment. The Kinect camera and the Oculus Rift are directly attached to the laptop. Using the WAMP communication protocol the data of these controlleres are sent to the Nao robot. A Kinect sensor tracks the whole body except the head movement of the human operator. To control the head movements of the Nao robot we are using the built-in accelerometer of the Oculus Rift since this has much better accuracy than tracking the human operators head with the Kinect sensor.

The data based on the WAMP protocol is first sent to a WAMP router named "Crossbar" which is running on a Raspberry Pi Rev. 3. The controller software is also located on the Raspberry. There the incoming data is transformed into appropriate control commands for the robot. These commands are then sent to the Nao using Wi-Fi. Nao is also sending data back to laptop, e.g. the current posture. The reverse communication channel is used for such information.

A stereo RGB camera connected to second single board computer (like Intel Edison or Intel Joule) is attached to the robot's head using custom 3D printed glasses inspired by Futuramas "Bender". The stereo camera captures the video stream using the open source software GStreamer. A UDP stream is used to transfer the stream back to the laptop. It is streamed into the Oculus Rift using some kind of DirectX wrapper named SharpDX.

Implementation details

Skeleton Tracking

Kinect

Gathering full body skeleton data from the Microsoft Kinect camera is very easy and needs only a few lines of code.

public void Init(KinectSensor kinectSensor) {
    BodyFrameReader bodyReader = kinectSensor.BodyFrameSource.OpenReader();
    bodies = new Body[kinectSensor.BodyFrameSource.BodyCount];

    bodyReader.FrameArrived += BodyFrameArrived;
}

private void BodyFrameArrived(object sender,
                            BodyFrameArrivedEventArgs bodyFrameEvent) {
    BodyFrameReference frameReference = bodyFrameEvent.FrameReference;
    BodyFrame frame = frameReference.AcquireFrame();

    using (frame) {
        frame.GetAndRefreshBodyData(bodies);

        foreach (var body in bodies) {
            if (body.IsTracked) {
                // example how to get Head joint position
                Joint head = body.Joints[JointType.Head];

                float x = head.Position.X;
                float y = head.Position.Y;
                float z = head.Position.Z;

                // do some awesome stuff
            }
        }
    }
}

At first you have to initialize your BodyFrameReader. As the Kinect sensor can track up to six bodies you should always be sure to send the skeleton data of only one body to the Nao robot. If not doing so the Nao will receive movement data of all recognized bodies which would look like a robot going insane!

When the Kinect receives a BodyFrame you are able to acquire the current frame to access skeleton data for the different recognized bodies. Using the frame you can call the method GetAndRefreshBodyData() which will refresh the skeleton data for all recognized bodies. Now you can access the so called Joints and their 3D coordinates.

Intel RealSense

When using the the Intel RealSense SDK the implementation is just as easy as with the Kinect 2.

// ptd is a PXCMPersonTrackingData instance
Int32 npersons = ptd.QueryNumberOfPeople();

for (Int32 i = 0; i < npersons; i++) {
    // Retrieve the PersonTracking instance
    PXCMPersonTrackingData.Person ptp = ptd.QueryPersonData(
               PXCMFaceTrackingData.AccessOrder.ACCESS_ORDER_BY_ID, i);
    PXCMPersonTrackingData.PersonJoint ptj = ptp.QuerySkeletonJoints();

    // work on the tracking data
    int njoints = ptj.QueryNumJoints();
    PXCMPersonTrackingData.JointPoint[] joints = new PXCMPersonTrackingData[njoints];
    ptj.QueryJoints(joints);

    // do some awesome stuff
}

Nao movements

Setup

The Nao robot can easily be programmed using JavaScript, C++, Python and Java. In our solution we used Python bindings. At first we need to setup the Nao robot. To be able to control the Nao with Python we need to import the naoqi library which is available on the Nao website.

import sys
import almath
import time
from naoqi import ALProxy

PORT = 9559
IP = "ip.address.of.your.nao.robot"

#Load Modules for different tasks
speechProxy = ALProxy("ALTextToSpeech", IP, PORT) # Allows NAO to speak.
audioProxy = ALProxy("ALAudioPlayer", IP, PORT) # Allows NAO to play audio.
postureProxy = ALProxy("ALRobotPosture", IP, PORT) # Allows use of predefined postures.
motionProxy = ALProxy("ALMotion", IP, PORT) # Provides methods to make NAO move.

To make use of specific Nao features you need to load different modules. In the following code samples you will understand how to make use of those different modules.

Nao learns to speak

To let Nao speak you just have to load the ALTextToSpeechModule. Using the method say() the robot will start to speak the text loudly. There are different parameters available which can be used to modify the pitch or the speed of the text to be spoken. For many languages download packages are available at the Nao marketplace.

speechProxy.say("Hello Intel Developer Zone!")

Nao is a poser

Nao is capable to do a lot of different postures. Postures are predefined routines inside the Nao kernel and will result in a chain of Nao movements to reach a posture state. Nao can go to a posture from every possible current position. Switching between postures like "LyingBelly" and "StandInit" is not a problem as well.

 

Nao Postures

 

With the following code snippet Nao will change his posture to "StandInit" followed by a "LyingBelly" posture. You can switch between all postures shown in the picture above easily.

postureProxy.goToPosture("StandInit", 1)
time.sleep(1.0)
postureProxy.goToPosture("LyingBelly", 1)

Nao is moving

As only using predefined postures will is pretty boring we now want to move the robot's joints without using predefined macros. Nao has 25 degrees of freedom based on the joints of the human skeleton.

Nao Evolution 5 has 25 Degrees of Freedom

Let's say we want to move the left and the right arm to a fixed position as shown in the picture above. For this we need to make use of the ALMotion module. Using the motionProxy we can move the different Nao joints to its defined angle i.e. position.

leftJoints = ["LShoulderRoll", "LShoulderPitch"]
rightJoints = ["RShoulderRoll", "RShoulderPitch"]
leftAngles = [2.0, 0.6]
rightAngles = [-2.0, 0.6]

motionProxy.setAngles(leftJoints, leftAngles, 0.5)
motionProxy.setAngles(rightJoints, rightAngles, 0.5)

The method setAngles() expects an array of joints to move, angle data for those joints and the speed of the movement which should be between 0 (slow) and 1 (fast).

Conclusion

Using off-the-shelf hardware only the software consultant team of TNG Technology Consulting GmbH was able to realize a multimodal telepresence robotics system. Controlling the Nao with gestures was easy to implement within one day only. One of the major challenges are to process the massive amount of video data transferring it over a wireless connection. Using an Intel IoT Gateway and a special RouterBoard we were finally able to transfer the video signal and all other controller data with a delay which was adequate to a have a good out-of-body experience.

Authors

If you are interested in this showcase or a conference talk about this topic don't hesitate to contact us!

 

Martin Förtsch, Dipl.-Inf. (University of Applied Sciences)Thomas Endres, Dipl.-Inf.
Martin Förtsch, Dipl.-Inf. (University of Applied Sciences)Thomas Endres, Dipl.-Inf.

martin.foertsch@gmail.com

thomas-endres@gmx.de
https://twitter.com/MartinFoertschhttps://twitter.com/originalone1984
http://parrotsonjava.com/http://parrotsonjava.com/

Ma sempul, oel ngati kameie.

Father, I see you.

How to use Intel® Energy Profiler in Intel® System Studio

$
0
0

Introduction :

 Intel® Energy Profiler is a Feature of VTune® Amplifier for Systems  which provides visualization and analysis capabilities for data imported from SoC Watch and other collectors. It uses the Intel® SoC Watch command-line tool to collect metrics that describe a system's power consumption including but not limited to C/P/D/S-state residencies, thermals, energy consumption, bandwidth, and wakeups.

User Guide for Intel® SoC Watch

 Use  Intel® Energy Profilerfor Windows* OS

  1)  Intel® System Studio for Windows* Product Requirement

  •    Please refer to the system requirement section for the Intel® System Studio  product requirements for windows* (section 6) : https://software.intel.com/sites/default/files/managed/02/5e/all-release-install_0.pdf
  •    Minimum System Requirements for Intel SoC Watch : Please refer to the release notes (section 8) for system requirement : https://software.intel.com/sites/default/files/managed/f4/b0/socwatch_windows_release_notes.pdf.

 2) Intel® System Studio Intel SoC Watch package installation location and download

  • Go to https://software.intel.com/en-us/intel-system-studio and download   the Intel® System Studio Ultimate of Professional edition of Intel® System Studio which supports the Intel® Energy Profiler
  • Once you download the package , Intel SoC Watch for Windows* OS is automatically installed as part of Intel VTune™ Amplifier for Systems
  • The default top-level installation folder  is: ® C:\Program files\IntelSWTools\system_studio_<version>\target\windows_socwatch

   3) Please refer to the  release notes from the package on the supported architectures.

 4)  User Guide from the Intel SoC Watch  package, or the online document from Intel VTune™ Amplifier for systems product

 Use Intel® Energy Profiler for Linux* OS
   1)   Intel® System Studio for Linux* Product Requirement

  • Please refer to the system requirement section for the Intel® System Studio product requirements for Linux *(section 6)  :https://software.intel.com/sites/default/files/managed/02/5e/all-release-install.pdf

   2) Intel® System Studio Intel SoC Watch package installation location

  •      Go to https://software.intel.com/en-us/intel-system-studio and download   the Intel® System Studio Ultimate of Professional edition of Intel® System Studio which supports the Intel® Energy Profiler
  •       Once you download the package , Intel SoC Watch for Linux* OS is automatically installed as part of Intel VTune™ Amplifier for Systems
  •       The default top-level installation folder for this product is:      ◊ C:\Program Files\IntelSWTools\system_studio_<version>\target\socwatch_linux_v2.1.1_x86_64

   3) Please refer to the  release notes from the package on the supported architectures.

   4) User’s guide from the Intel SoC Watch package, or the online document from Intel VTune™ Amplifier

 Use Intel® Energy Profiler for Android* OS
   1) Intel® System Studio for Android* Product Requirement

  • Please refer to the system requirement section for the Intel® System Studio product requirements for Android *(section 6)  :https://software.intel.com/sites/default/files/managed/02/5e/all-release-install.pdf

   2) Go to https://software.intel.com/en-us/intel-system-studio and download   the Intel® System Studio Ultimate of Professional edition of Intel® System Studio which supports the Intel® Energy Profiler

  •      Once you download the package , Intel SoC Watch for Android* OS is automatically installed as part of Intel VTune™ Amplifier for Systems
  •      The default top-level installation folder for this product is:C:\Program Files\IntelSWTools\system_studio_<version>\target\socwatchForAndroid.pdf 

   3) Please refer to the  release notes from the package on the supported architectures.

   4) User’s guide from the socwatch package, or the online document from Intel VTune™ Amplifier Product

Intel® System Studio 2017 - Release Notes

$
0
0

This page provides the current Release Notes and Getting Started Documents for Intel® System Studio 2017.

To get product updates, log in to the Intel® Software Development Products Registration Center.

For questions or technical support, visit Intel® Software Products Support.

To get the Release Notes, Getting Started Guides & User Guides of Intel(R) System Studio 2016 versionclick here

Contents

 

Current Release Notes

Intel® System Studio 2017 for Linux* and Android* (1)

(1) Android*, Linux*, Embedded Linux*, Yocto Project*, Wind River* Linux*

Studio ComponentLinux* HostWindows* Host

What's New

What's new?

What's new?

Intel® System Studio (full product)

Version 2017

Version 2017

Intel® C++ Compiler

Version 17.0

Version 17.0

Intel® Math Kernel Library

Version 2017

Version 2017

Intel® Integrated Performance Primitives

Version 2017

Version 2017

Intel® Threading Building Blocks

Version 2017

Version 2017

Intel® VTune™ Amplifier for Systems with Intel® Energy Profiler

Version 2017
SocWatch Linux 2017
SocWatch Android 2017

Version 2017
SocWatch Windows 2017
SocWatch Linux 2017
SocWatch Andorid 2017

Intel® Inspector

Version 2017

Version 2017

Intel® Graphics Performance Analyzers

Version 2016 R2

Version 2016 R2

Intel® System Debugger

System Debug 2017
System Trace 2017

System Debug 2017
System Trace 2017
 

Intel-enhanced GNU* GDB

Version 2017
GDB Document 7.10

Version 2017
GDB Document 7.10

Intel® Debugger for Heterogeneous Compute

Version 2017
GDB Document  7.6
NA
 

 

Intel® System Studio 2017 for Windows*

Studio ComponentWindows* Host

What's New

What's new?

Intel® System Studio for Windows* (full product)

Version 2017

Intel® C++ Compiler

Version 17.0

Intel® Math Kernel Library

Version 2017

Intel® Integrated Performance Primitives

Version 2017

Intel® Threading Building Blocks

Version 2017

Intel® VTune™ Amplifier for Systems with Intel® Energy Profiler

Version 2017
SocWatch Windows 2017

Intel® Inspector

Version 2017

Intel® Graphics Performance Analyzers

Version 2016 R2

Intel® System Debugger

System Debug 2017
System Trace 2017
WinDbg Extension 2017
 

Intel® Debugger for Heterogeneous Compute

Version 2017
GDB Docu 7.6

 

Intel® System Studio 2017

Getting Started Guide

Studio Componentfor Linux* and Android*
(Linux* Host)
for Linux* and Android*
(Windows* Host)
for Windows*

Intel® System Studio

Getting Started Guide

Getting Started with Intel® System Studio 2017 Linux Host for Linux*/Android* Targets Composer Edition

Getting Started Guide

Getting Started with Intel® System Studio 2017 Windows Host for Linux*/Android* Targets Composer Edition

Getting Started Guide

Getting Started with Intel® System Studio 2017 for Windows* Targets Composer Edition

Intel® C++ Compiler

Intel® System Studio 2017: Getting Started with the Intel® C++ Compiler 17.0 for Linux* and Android* Targets

Intel® System Studio 2017: Getting Started with the Intel® C++ Compiler 17.0 for Linux* and Android* Targets

Intel® System Studio 2017: Getting Started with the Intel® C++ Compiler 17.0 for Windows

Intel® Integrated Performance Primitives

Getting Started with Intel® Integrated Performance Primitives for Linux* OS

Building Android* NDK Applications with Intel® IPP

Getting Started with Intel® Integrated Performance Primitives for Windows* OS

Getting Started with Intel® Integrated Performance Primitives for Windows* OS

Intel® Math Kernel Library

Getting Started with Intel® Math Kernel Library

Getting Started with Intel® Math Kernel Library

Getting Started with Intel® Math Kernel Library

Intel® Threading Building BlocksDocumentationDocumentationDocumentation

Intel® VTune™ Amplifier for Systems

Intel® VTune™ Amplifier for Systems Getting Started Guide

Intel® VTune™ Amplifier for Systems Getting Started Guide

Intel® VTune™ Amplifier for Systems Getting Started Guide

Intel® Energy ProfilerEnergy Analysis Workflow With Intel® Energy Profiler Energy Analysis Workflow With Intel® Energy Profiler Energy Analysis Workflow With Intel® Energy Profiler

Intel® Inspector for Systems

Intel® Inspector Getting Started Guide

Intel® Inspector Getting Started Guide

Intel® Inspector Getting Started Guide

Graphics Performance Analysis Tools

Getting Started with Intel® Graphics Performance Analyzers

Getting Started with Intel® Graphics Performance Analyzers

Getting Started with Intel® Graphics Performance Analyzers

Intel® System Debugger

Intel® System Debugger (Debug) Quickstart Guide

Intel® System Debugger (Debug) Quickstart Guide

Intel® System Debugger (Debug) Quickstart Guide
 Intel® System Debugger (Trace) Quickstart GuideIntel® System Debugger (Debug) Quickstart GuideIntel® System Debugger (Trace) Quickstart Guide
   Intel® Debug Extensions for WinDbg* Quick Start Guide

Intel-enhanced GNU* GDB

GNU* GDB Getting Started Guide

GNU* GDB Getting Started Guide

 
Intel® Debugger for Heterogeneous ComputeIntel® Debugger for Heterogeneous Compute Getting Started Guide Intel® Debugger for Heterogeneous Compute Getting Started Guide

 

Intel® System Studio 2017

User Guide

Studio ComponentLinux* HostWindows* Host

Intel® System Studio

User Guide

User Guide

Intel® C++ Compiler

Intel® C++ Compiler 17.0 Developer Guide and Reference Supplement for Intel® System Studio 2017

Intel® C++ Compiler 17.0 Developer Guide and Reference Supplement for Intel® System Studio 2017
Intel® Integrated Performance PrimitivesDeveloper Guide for Intel® Integrated Performance PrimitivesDeveloper Guide for Intel® Integrated Performance Primitives

Intel® Math Kernel Library

Developer Guide for Intel® Math Kernel Library

Developer Guide for Intel® Math Kernel Library

Intel® Threading Building BlocksDocumentationDocumentation

Intel® VTune™ Amplifier for Systems

Intel® VTune Amplifier for Systems User’s Guide

Intel® VTune Amplifier for Systems User’s Guide

Intel® Energy Profiler

SoC Watch Tool User's Guide

SoC Watch Tool User's Guide

Intel® InspectorIntel® Inspector Help – Linux* OSIntel® Inspector Help – Windows* OS

Graphics Performance Analysis Tools

Intel® Graphics Performance Analyzers for Ubuntu* Host

Intel® Graphics Performance Analyzers for Windows* Host

Intel® System Debugger

Intel® System Debugger (Debug) User's Guide

Intel® System Debugger (Debug) User's Guide

 Intel® System Debugger (Trace) User's Guide

Intel® System Debugger (Trace) User's Guide  

GDB - The GNU* Project Debugger

Debugging with GDB

Debugging with GDB

GNU* GDB Manual for Intel® Debugger for Heterogeneous compute
Intel® Debugger for Heterogeneous compute Intel® Debugger for Heterogeneous compute

Intel® Joule™ Expansion Board CAD Package

Intel® Joule™ Expansion Board Breakout Connector Pinout

What's New? Intel® Threading Building Blocks 4.4 Update 6

$
0
0

Changes (w.r.t. Intel TBB 4.4 Update 5):

- For 64-bit platforms, quadrupled the worst-case limit on the amount
    of memory the Intel TBB allocator can handle.

Bugs fixed:

- Fixed a memory corruption in the memory allocator when it meets
    internal limits.
- Fixed the memory allocator on 64-bit platforms to align memory
    to 16 bytes by default for all allocations bigger than 8 bytes.
- Fixed parallel_scan to provide correct result if the initial value
    of an accumulator is not the operation identity value.
- As a workaround for crashes in the Intel TBB library compiled with
    GCC 6, added -flifetime-dse=1 to compilation options on Linux* OS.

What's New? Intel® Threading Building Blocks 2017 Update 1

$
0
0

Changes (w.r.t. Intel TBB 2017):

Bugs fixed:

- Fixed dynamic memory allocation replacement failures on Windows* 10
    Anniversary Update.
- Fixed emplace() method of concurrent unordered containers not to
    require a copy constructor.


Developer Success Stories Library

$
0
0

Learn how leading organizations worldwide are using development tools from Intel to boost performance, save development time and costs, and better meet their customers' needs.

Intel® Parallel Studio | Intel® System Studio | Intel® Cluster Studio XE | Intel® Inspector XE | Intel® Integrated Performance Primitives | Intel® MPI Library | Intel® Math Kernel Library | Intel® Threading Building Blocks | Intel® Media Server Studio

Intel® Parallel Studio

 

CADEX Resolves the Challenges of CAD Format Conversion

CAD Exchanger logo Parallelism Brings CAD Exchanger* software dramatic gains in performance and user satisfaction, plus a competitive advantage.

 

Moscow Institute of Physics and Technology Rockets the Development of Hypersonic Vehicles

Moscow Institute of Physics and Technology logo Moscow Institute of Physics and Technology creates faster and more accurate computational fluid dynamics software with help from Intel® Math Kernel Library and Intel® C++ Compiler.

 

Pexip Speeds Enterprise-Grade Videoconferencing

Pexip logo Intel® analysis tools enable a 2.5x improvement in video encoding performance for videoconferencing technology company Pexip.

 

Ural Federal University Boosts High-Performance Computing Education and Research

Ural Federal University logo Intel® Developer Tools and online courseware enrich the high-performance computing curriculum at Ural Federal University.

 

Walker Molecular Dynamics Laboratory Optimizes its Molecular Dynamics Software for Advanced HPC Computer Architectures

San Diego Supercomputer Center logo Intel® Software Development tools increase application performance and productivity for a San Diego-based supercomputer center.

 

Intel® System Studio

 

CID Wireless Shanghai Boosts Long-Term Evolution (LTE) Application Performance

CID Group logo CID Wireless boosts performance for its LTE reference design code by 6x compared to the plain C code implementation.

 

 

 

Intel® Cluster Studio XE

 

Schlumberger Parallelizes Oil and Gas Software with Intel® Software Development Tools

Schlumberger logo Schlumberger increases performance for its PIPESIM* software up to 10x while streamlining the development process.

 

Intel® Inspector XE

 

CADEX Resolves the Challenges of CAD Format Conversion

CAD Exchanger logo Parallelism Brings CAD Exchanger* software dramatic gains in performance and user satisfaction, plus a competitive advantage.

 

Intel® Integrated Performance Primitives

 

JD.com Optimizes Image Processing

JD.com logo JD.com Speeds Image Processing 17x, handling 300,000 images in 162 seconds instead of 2,800 seconds, with Intel® C++ Compiler and Intel® Integrated Performance Primitives.

 

Tencent Optimizes an Illegal Image Filtering System

Tencent.com logo Tencent doubles the speed of its illegal image filtering system using SIMD Instruction Set and Intel® Integrated Performance Primitives.

 

Tencent Speeds MD5 Image Identification by 2x

Tencent.com logo Intel worked with Tencent engineers to optimize the way the company processes millions of images each day, using Intel® Integrated Performance Primitives to achieve a 2x performance improvement.

 

Walker Molecular Dynamics Laboratory Optimizes its Molecular Dynamics Software for Advanced HPC Computer Architectures

San Diego Supercomputer Center logo Intel® Software Development tools increase application performance and productivity for a San Diego-based supercomputer center.

 

Intel® MPI Library

 

Moscow Institute of Physics and Technology Rockets the Development of Hypersonic Vehicles

Moscow Institute of Physics and Technology logo Moscow Institute of Physics and Technology creates faster and more accurate computational fluid dynamics software with help from Intel® Math Kernel Library and Intel® C++ Compiler.

 

Walker Molecular Dynamics Laboratory Optimizes its Molecular Dynamics Software for Advanced HPC Computer Architectures

San Diego Supercomputer Center logo Intel® Software Development tools increase application performance and productivity for a San Diego-based supercomputer center.

 

Intel® Math Kernel Library

 

Qihoo360 Technology Co. Ltd.

Qihoo360 Technology logo Qihoo360 optimizes optimize the speech recognition module of the Euler platform using Intel® Math Kernel Library (Intel® MKL), speeding up performance by 5x.

 

Intel® Threading Building Blocks

 

CADEX Resolves the Challenges of CAD Format Conversion

CAD Exchanger logo Parallelism Brings CAD Exchanger* software dramatic gains in performance and user satisfaction, plus a competitive advantage.

 

Johns Hopkins University Prepares for a Many-Core Future

Johns Hopkins UniversityJohns Hopkins University increases the performance of its open-source Bowtie 2* application by adding multi-core parallelism.

 

Pexip Speeds Enterprise-Grade Videoconferencing

Pexip logo Intel® analysis tools enable a 2.5x improvement in video encoding performance for videoconferencing technology company Pexip.

 

 

 

 

Quasardb Streamlines Development for a Real-Time Analytics Database

To deliver first-class performance for its distributed, transactional database, Quarsardb uses Intel® Threading Building Blocks (Intel® TBB), Intel’s C++ threading library for creating high-performance, scalable parallel applications.

University of Bristol Slashes Calculation Time for Drug Development

Using Intel® Threading Building Blocks (Intel® TBB) to parallelize LigandSwap can take less than 100 lines of Intel TBB-specific code from a code base of more than 100K lines and enable a calculation that would ordinarily take 25 days to complete in just one day.

 

Walker Molecular Dynamics Laboratory Optimizes its Molecular Dynamics Software for Advanced HPC Computer Architectures

San Diego Supercomputer Center logo Intel® Software Development tools increase application performance and productivity for a San Diego-based supercomputer center.

 

Intel® Media Server Studio

 

ActiveVideo Enhances Efficiency

Active Video Logo ActiveVideo boosts the scalability and efficiency of its cloud-based virtual set-top box solutions for TV guides, online video, and interactive TV advertising using Intel® Media Server Studio.

 

Kraftway: Video Analytics at the Edge of the Network

Today’s sensing, processing, storage, and connectivity technologies enable the next step in distributed video analytics, where each camera itself is a server. With Kraftway* video software, designed using Intel® Media Server Studio, platforms based on the Intel® Atom™ processor E3800 series can encode up to three 1080p60 streams at different bit rates with close to zero CPU load.

 

iStreamPlanet Transforms Live Video Streaming

iStream Logo By moving video transcoding from traditional blades to the HP Moonshot System, based on Intel® Media Server Studio, iStreamPlanet can encode live video streams in 10x less data center space with up to 5x less power consumption.

 

Vantrix Delivers on Media Transcoding Performance

Vantrix Logo HP Moonshot* with HP ProLiant* m710p server cartridges and Vantrix Media Platform software, with help from Intel® Media Server Studio, deliver a cost-effective solution that delivers more streams per rack unit while consuming less power and space.

Intel® Parallel Studio XE 2016 Update 4 Readme

$
0
0

Intel® Parallel Studio XE 2016 Update 4 for Linux*, Windows*, and OS X*

Deliver top application performance and reliability with the Intel® Parallel Studio XE 2016 Update 4. This software development suite combines Intel's C/C++ compiler and Fortran compiler; performance and parallel libraries; error checking, code robustness, and performance profiling tools into a single suite offering.

Key Features

  • Faster code: Boost applications performance that scales on today’s and next-gen processors
  • Create code faster: Utilize a toolset that simplifies creating fast, reliable parallel applications

This package is for users who develop on and build for IA-32 and Intel® 64 architectures on Linux*, Windows*, and OS X*, as well as customers running over the Intel® Xeon Phi™ coprocessor on Linux*. There are currently 3 editions of the suite:

  • Intel® Parallel Studio XE 2016 Update 4 Composer Edition, which includes:
    • Intel® C++ Compiler 16.0 Update 4
    • Intel® Fortran Compiler 16.0 Update 4
    • Intel® Data Analytics Acceleration Library (Intel® DAAL) 2016 Update 4
    • Intel® Integrated Performance Primitives (Intel® IPP) 9.0 Update 4
    • Intel® Math Kernel Library (Intel® MKL) 11.3 Update 4
    • Intel® Threading Building Blocks (Intel® TBB) 4.4 Update 6
    • Intel-provided Debug Solutions
  • Intel® Parallel Studio XE 2016 Update 4 Professional Edition adds the following utilities:
    • Intel® VTune™ Amplifier XE 2016 Update 4
    • Intel® Advisor XE 2016 Update 4
    • Intel® Inspector XE 2016 Update 3
  • Intel® Parallel Studio XE 2016 Update 4 Cluster Edition includes all previous tools plus:
    • Intel® MPI Library 5.1 Update 3
    • Intel® Trace Analyzer and Collector 9.1 Update 2
    • Intel® Cluster Checker 3.1 Update 2 (Linux* only)
    • Intel® MPI Benchmarks 4.1 Update 1

New in this release:

  • Following components updated to latest version:
    • Intel® C++ Compiler 16.0 Update 4
    • Intel® Fortran Compiler 16.0 Update 4
    • Intel® Data Analytics Acceleration Library (Intel® DAAL) 2016 Update 4
    • Intel® Integrated Performance Primitives (Intel® IPP) 9.0 Update 4
    • Intel® Math Kernel Library (Intel® MKL) 11.3 Update 4
    • Intel® Threading Building Blocks (Intel® TBB) 4.4 Update 6
    • Intel® VTune™ Amplifier XE 2016 Update 4
  • Bug fixes and documentation updates

For more information on the changes listed above, please read the individual component release notes available from the main Intel® Parallel Studio XE Release Notes page.

Resources:

Contents:

  • Linux* packages
    • File: parallel_studio_xe_2016_update4.tgz
      Offline Installer package which has bigger size and contains all components of the product
    • File: parallel_studio_xe_2016_update4_online.sh
      Online Installer which has smaller file size. This installer may save you download time as it allows you to select only those components you desire to download. You must be connected to the internet during installation with this installer.
    • File: parallel_studio_xe_2016_composer_edition_update4.tgz
      Offline Installer package for the Intel® Parallel Studio XE Composer Edition for Fortran and C++ Linux* only
    • File: parallel_studio_xe_2016_composer_edition_for_cpp_update4.tgz
      Offline Installer package for the Intel® Parallel Studio XE Composer Edition for C++ Linux* only
    • File: parallel_studio_xe_2016_composer_edition_for_fortran_update4.tgz
      Offline Installer package for the Intel® Parallel Studio XE Composer Edition for Fortran Linux* only
    • File: l_comp_lib_2016.4.258_comp.cpp_redist.tgz
      Redistributable Libraries C++
    • File: l_comp_lib_2016.4.258_comp.for_redist.tgz
      Redistributable Libraries Fortran
    • File: get-ipp-90-crypto-library.htm
      Directions on how to obtain the Cryptography Library
  • Windows* packages
    • File: parallel_studio_xe_2016_update4_setup.exe
      Offline Installer package which has bigger size and contains all components of the product
    • File: parallel_studio_xe_2016_update4_online_setup.exe
      Online Installer which has smaller file size. This installer may save you download time as it allows you to select only those components you desire to download. You must be connected to the internet during installation with this installer.
    • File: parallel_studio_xe_2016_update4_composer_edition_setup.exe
      Offline Installer package for the Intel® Parallel Studio XE Composer Edition for Fortran and C++ Windows* only
    • File: parallel_studio_xe_2016_update4_composer_edition_for_cpp_setup.exe
      Offline Installer package for the Intel® Parallel Studio XE Composer Edition for C++ Windows* only
    • File: parallel_studio_xe_2016_update4_composer_edition_for_fortran_setup.exe
      Offline Installer package for the Intel® Parallel Studio XE Composer Edition for Fortran Windows* only
    • File: ww_icl_redist_msi_2016.4.246.zip
      Redistributable Libraries for 32-bit and 64-bit msi files for the Intel® Parallel Studio XE Composer Edition for C++
    • File: ww_ifort_redist_msi_2016.4.246.zip
      Redistributable Libraries for 32-bit and 64-bit msi files for the Intel® Parallel Studio XE Composer Edition for Fortran
    • File: get-ipp-90-crypto-library.htm
      Directions on how to obtain the Cryptography Library
  • OS X* packages
    • File: m_ccompxe_2016.4.070.dmg
      Offline Installer package for the Intel® Parallel Studio XE Composer Edition for C++ OS X* which has bigger size and contains all components of the product
    • File: m_ccompxe_online_2016.4.070.dmg
      Online Installer which has smaller file size. This installer may save you download time as it allows you to select only those components you desire to download. You must be connected to the internet during installation with this installer.
    • File: m_comp_lib_icc_redist_2016.4.210.dmg
      Redistributable Libraries C++
    • File: m_fcompxe_2016.4.070.dmg
      Offline Installer package for the Intel® Parallel Studio XE Composer Edition for Fortran OS X* which has bigger size and contains all components of the product
    • File: m_fcompxe_online_2016.4.070.dmg
      Online Installer which has smaller file size. This installer may save you download time as it allows you to select only those components you desire to download. You must be connected to the internet during installation with this installer.
    • File: m_comp_lib_ifort_redist_2016.4.210.dmg
      Redistributable Libraries Fortran
    • File: get-ipp-90-crypto-library.htm
      Directions on how to obtain the Cryptography Library

Uninstalling Intel® Compiler 17.0 causes 16.0 IDE Integration fails to install

$
0
0

Problem

I have Intel® Parallel Studio XE Composer Edition 2011 through 2017 installed on this machine.

I uninstalled Intel Compiler 17.0, repaired the 16.0 update 3 installation, and started Visual Studio but there was still no IDE integration. I uninstalled 16.0 update 3, and reinstalled it. Now when I start Visual Studio I get a dialog that states:

"The 'IntelCommonPkg' package did no load correctly."

The ActivityLog contained 3 issues:

C:\ProgramData\Microsoft\VisualStudio\12.0\1033\devenv.CTM was out of date and couldn't be removed.
42 ERROR SetSite failed for package [IntelCommonPkg] {397E715C-BFAE-47AB-8F49-1538DDD77757} 80070002 VisualStudio 2016/09/08 02:56:11.313
43 ERROR End package load [IntelCommonPkg] {397E715C-BFAE-47AB-8F49-1538DDD77757} 80070002 VisualStudio 2016/09/08 02:56:11.314 

Root cause

We had issue in some old products like Intel® Composer XE 2011, that can be cause of such issue with IDE. If some of old product was installed previously on machine then we can see this issue with any new version of Intel Parallel Studio XE.

We cannot eliminate this issue in new version of Intel® Parallel Studio XE because fix is required in old version which are end of life now. Currently nothing can be fixed in Intel® Parallel Studio XE 2017 or Intel® Parallel Studio XE 2016, but we provide below workaround.

Workaround

To resolve this situation please do the following steps: 

1. Uninstall 16.0 Update 3 product.
2. Manually remove the following files and directories if exists, and backup them to some temporary place: 
   a) Directory C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Intel.Misc.Utilities 
   b) Directory "C:\Program Files (x86)\Common Files\Intel\shared files"
   c) Directories "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Intel\C++" 
                       "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Intel\Common" 
                       "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Intel\PerformanceGuide" 
   d) Files "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\IntelCppOptPkg.dll" 
              "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\IntelLibOptPkg.dll" 
              "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\IntelPkg.dll"
   e) File "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Intel.Build.ICLTasks.v120.dll" 
3. Install 16.0 Update 3 product. 

The steps above clean the system from all artifacts which caused problem with VS IDE integration. 

Robotics Development Kit R200 Depth-Data Interpretation

$
0
0

Intel® RealSense™ R200 Camera

The Intel RealSense R200 camera is an active stereo camera with a 70-mm stereo baseline.

RealSense™ R200 Camera Figure 1

Indoors, the Intel RealSense camera R200 uses a class-1 laser device to project additional texture into a scene for better stereo performance. The Intel RealSense R200 camera works in disparity space, where disparity space is defined as the spatial shift in the same 3D point in space between the left and right laser. The larger the shift in the horizontal plane, the closer the object (depth is inversely proportional to the disparity). You can simulate the same effect by holding your thumb at eye level and looking at it one eye at a time.

RealSense™ R200 Camera Figure 2

The Intel RealSense R200 camera has a maximum search range of 63 pixels horizontally, with a result of a 72-cm minimum depth distance at the nominal 628×468 resolution. At 320×240, the minimum depth distance reduces to 32 cm. The laser texture from multiple Intel RealSense camera R200 devices produces constructive interference. Constructive interference is the interference pattern of equal frequency and phase, resulting in their mutual reinforcement and producing a single amplitude equal to the sum of the amplitudes of the individual waves. This results in the feature that multiple Intel RealSense R200 cameras can be collocated in the same environment. The dual IR cameras are global shutter (where every pixel is exposed simultaneously at the same time) while 1080p RGB imager is rolling shutter (in that each row in a frame will expose for the same amount of time but begin exposing at a different point in time, allowing overlapping exposures for two frames). An internal clock triggers all three image sensors as a group and the Intel® RealSense™ Cross Platform API provides matched frame sets.

Outdoors, the laser has no effect over ambient infrared from the sun. Furthermore, at default settings, IR sensors can become oversaturated in a fully sunlit environment so gain/exposure/frames-per-second tuning might be required. The recommended indoor depth range is around 3.5 m.

Depth Projections

Mapping from 2D pixel coordinates to 3D point coordinates via the rs_intrinsics structure and the rs_deproject_pixel_to_point(...) function requires knowledge of the depth of that pixel in meters. Certain pixel formats exposed by librealsense contain per-pixel depth information and can be immediately used with this function. Other images do not contain per-pixel depth information and thus would typically be projected into instead of deprojected (reversing the projection of depth into the scene) from.

  • RS_FORMAT_Z16 or rs::format::z16

    • Depth is stored as one unsigned 16-bit integer per pixel mapped linearly to depth in camera-specific units. The distance, in meters, corresponding to one integer increment in depth values can be queried via rs_get_device_depth_scale(...). The following pseudocode shows how to retrieve the depth of a pixel in meters:
      • const float scale = rs_get_device_depth_scale(dev, NULL);
      • const uint16_t * image = (const uint16_t *)rs_get_frame_data(dev, RS_STREAM_DEPTH, NULL);
      • float depth_in_meters = scale * image[pixel_index];
    • If a device fails to determine the depth of a given image pixel, a value of zero will be stored in the depth image. This is a reasonable sentinel for "no depth" because all pixels with a depth of zero would correspond to the same physical location, the location of the imager itself.
    • The default scale (the smallest unit of precision attainable by the device) of an Intel RealSense camera (F200) or Intel RealSense camera (SR300) device is 1/32th of a millimeter. Allowing for 16 bits (or 2 to the power 16 = 65536) of units translates to a maximum expressive range of two meters. However, the scale is encoded into the camera's calibration information, potentially allowing for long-range models to use a different scaling factor.
    • The default scale of an Intel RealSense camera (R200) device is one millimeter, allowing for a maximum expressive range of ~65 meters. The depth scale can be modified by calling rs_set_device_option(...) with RS_OPTION_R200_DEPTH_UNITS, which specifies the number of micrometers per one increment of depth. 1000 would indicate millimeter scale, 10000 would indicate centimeter scale, while 31 would roughly approximate the Intel RealSense camera (F200) 1/32th of a millimeter scale.
  • RS_FORMAT_DISPARITY16 or rs::format::disparity16

    • Depth is stored as one unsigned 16-bit integer, as a fixed point representation of pixels of disparity. Stereo disparity is related to depth via an inverse linear relationship, and the distance of a point which registers a disparity of 1 can be queried via rs_get_device_depth_scale(...). The following pseudocode shows how to retrieve the depth of a pixel in meters:
      • const float scale = rs_get_device_depth_scale(dev, NULL);
      • const uint16_t * image = (const uint16_t *)rs_get_frame_data(dev, RS_STREAM_DEPTH, NULL);
      • float depth_in_meters = scale / image[pixel_index];
    • Unlike RS_FORMAT_Z16, a disparity value of zero is meaningful. A stereo match with zero disparity will occur for objects "at infinity," objects that are so far away that the parallax between the two imagers is negligible. By contrast, there is a maximum possible disparity. The Intel RealSense camera (R200) only matches up to 63 pixels of disparity in hardware, and even if a software stereo search were run on an image, you would never see a disparity greater than the total width of the stereo image. Therefore, when the device fails to find a stereo match for a given pixel, a value of 0xFFFF will be stored in the depth image as a sentinel.
    • Disparity is currently only available on the Intel RealSense camera (R200), which by default uses a ratio of 32 units in the disparity map to one pixel of disparity. The ratio of disparity units to pixels of disparity can be modified by calling rs_set_device_option(...) with RS_OPTION_R200_DISPARITY_MULTIPLIER. For instance, setting it to 100 would indicate that 100 units in the disparity map are equivalent to one pixel of disparity.

Depth Calculation

Since optical axes are always parallel and focal lengths are the same, the Intel RealSense camera (R200) internal circuitry determines d (disparity) based on the stereo baseline (B) and the focal length (f). “Xl” and “Xr” are the shifts that the left and right cameras see. (Xl,Yl) and (Xr,Yr) are the corresponding image points. Imagine the Y axis is perpendicular to the image toward you. Disparity is (Xl-Xr).

Using the concept of triangulation, we can now obtain depth:

Depth (Z) = (baseline * focal length)/disparity

RealSense™ R200 Camera Figure 3

Conclusion

The Intel RealSense R200 depth-camera provides depth data as a 16-bit number that can be easily converted to canonical distances measured in meters on a per-pixel level. As such, it is possible to extract scene information by any number of algorithms beyond those provided by RGB data alone. Thus it is possible to combine the RGB pixels and depth pixels together to produce point-clouds that represent a sampling in 3D of the scene the camera looking at.

References

Intel® IPP 2017 Bug Fixes

$
0
0

NOTE: Defects and feature requests described below represent specific issues with specific test cases. It is difficult to succinctly describe an issue and how it impacted the specific test case. Some of the issues listed may impact multiple architectures, operating systems, and/or languages. If you have any questions about the issues discussed in this report, please post on the user forums, http://software.intel.com/en-us/forums or submit an issue to Intel® Premier Support, https://premier.intel.com.

Intel® IPP 2017  (6 Sep 2016)

DPD200581260ippsRegExpFind_8u generating stack overflow 
DPD200583297ippiCopy_32f_C1R producing wrong results on AVX optimization code.  Workaround: use ippsCopy_32f on each image line
Viewing all 3384 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>