Thumbnail

Intel Realsense D435i

Connect the D435i Intel Realsense depth cameras to the ARC navigation messaging system (NMS) for distance detection and mapping.

+ How To Add This Control To Your Project (Click to Expand)
  1. Make sure you have the latest version of ARC installed.
  2. Select the Get button in this page to download the archive file.
  3. Double click the downloaded archive file to execute installer.
  4. The installer will add this control to ARC.
  5. Load ARC and press the Project -> Add Control button from the menu.
  6. Choose the Navigation category tab.
  7. Press the Intel Realsense D435i icon to add the control to your project.

Manual

Connect the D435i Intel Realsense camera to the ARC Navigation Messaging System (NMS) for distance detection and mapping. This should also work with other Intel RealSense depth camera models because the FOV and parameters are used from the device.

User-inserted image



Main Screen


User-inserted image

1) Select the device by the serial number. This allows multiple Intel Realsense devices to be added to a project.

2) START/STOP button to connect that connects to the RealSense device.

3) Log window for status and errors.


Image Align


The Image Align tab allows selecting the area of the image that you wish to detect for the point-cloud. For example, having the detection too low will result in detecting the floor at a close distance. Ideally, set the bar high enough to avoid detecting the floor.
User-inserted image

1) Adjust the top of the detected image range.

2) Adjust the bottom of the detected image range.

3) detected image range is highlighted in purple.


Variables


This skill will create 4 global variables that can be referenced by scripts.
User-inserted image


$D435IsRunning - status of the D435 robot skill if it is connected or not to the sensor.

$D435FurthestDistanceCM - furthest distance detected

$D435FurthestDistanceDegree - furthest degree of the furthest distance CM variable.

$D435NearestDistanceCM - nearest distance detected

$D435NearestDistanceDegree - nearest degree of the nearest distance CM variable.


ARC Navigation Messaging System


This skill is part of the ARC navigation messaging system. It is encouraged to read more about the messaging system to understand available skills HERE. This skill is in level #3 group #1 of in the diagram below. This skill contributes telemetry positioning to the cartesian positioning channel of the NMS. Combining this skill with Level #3 Group #2 skills for obstacle avoidance. And for Level #1, The Navigator works well.
User-inserted image

PRO
Synthiam
#1   — Edited
Fixed Intel's bug so the device can be started and stopped

There is a small performance improvement as well, which will be noticeable on SBCs

Also, this only displays depth sensors in the drop-down
PRO
Synthiam
#2   — Edited
Pretty big bug fix that correctly calculates the point-cloud distances into distance scans. You may have noticed that flag objects, such as walls were rounded. This is no longer the case.

Here you can see the wall, corner of the wall, and the edge of the monitor. 
User-inserted image


And here's a low scan of just the table in front - where it's flat and no longer curved.
User-inserted image
PRO
Synthiam
#3   — Edited
Updated with a huge performance improvement. I didn't realize the Intel sample code was copying the depth data into a managed array on every frame *ouch*. So I'm referencing the unmanaged memory pointer directly. Should have known better than to copy that bit of code from their sample:D

Should experience a 10 times improvement. I went from 27% cpu to 2% cpu

User-inserted image
PRO
Synthiam
#4  
Like The Navigator, there are variables for the nearest and furthest object detected... just in case this is being used without an NMS skill like the navigator

User-inserted image
PRO
Canada
#5  
Thank you so much for making this. 
Just installed on the Rock Pi X.  Seems to work well although took me a bit of time to get it working. I have to run it off the USB 3.0 port as I get an error on USB 2.0 but the T265 seems to work on the USB 2.0 port ok

Couple of questions
Did you manage to get to work off the USB 2.0 port or do we not have enough bandwidth ?
If you can use off usb 2.0 could it work with 2 or more D435i ?
If you mount the camera sideways could you set image range vertically instead of horizontally?
PRO
Synthiam
#6   — Edited
The device is usb c which requires usb 3. I’m sure there’s more information about that in the product manual
PRO
Canada
#7   — Edited
Ok it works with USB 2.0 with the realsense view app provided by intel. 

I guess I could try and  use the USB C port for 1 and the USB 3.0 port for another.
PRO
Synthiam
#8  
I don’t know how that could be. It’s usb-c which is usb 3. If it’s true, then maybe their app is doing some wizardry that uses a different driver and somehow defies usb-c specifications lol
PRO
Synthiam
#9   — Edited
I googled for you: 

User-inserted image


they somehow magically use the usb2 channel over usbC and then internally have a different driver that operates at a low speed.
PRO
Synthiam
#10  
- performance improvement