More errors in Kaya build instructions

Csaglam: thanks for the reply. Quick answers:

  1. If you preface with sudo, I think it deploys to deploy/root/, not deploy//. When I didn’t preface with sudo, it gave errors, but I’ll do it again to make sure and post them here

  2. Yes, my username was added to group . Not sure if I rebooted, but can double-check

  3. Running with sudo did not solve it

  4. running dmesg |grep tty returns “usb 1-2.1: FTDI USB Serial Device converter now attached to ttyUSB0” I’ll check “ls /dev/ttyUSB0” returns anything different.

-c

We are looking forward to your updates and feedback.

ls command would just help us double check. Example output I’m getting on a Kaya:

nvidia@Kaya-20:~/deploy/oguz$ ll /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 May 13 16:26 /dev/ttyACM0

In dynamixel.cpp, could you try replacing
LOG_ERROR(“Cannot open port”);
with
LOG_ERROR(“Cannot open port to %s”, port_name.c_str());
please?

if you don’t preface the deployment on the desktop with , you get a huge amount of errors like this:

chris@chris-NUC7i5BNK:~/isaac$ ./engine/build/deploy.sh --remote-user chris -d jetpack42 -h 192.168.86.47 -p //apps/kaya:joystick-pkg
================================================================================
Building Minidump tools
================================================================================
================================================================================
Building //apps/kaya:joystick-pkg for target platform 'jetpack42'
================================================================================
ERROR: /home/chris/isaac/WORKSPACE:18:1: Traceback (most recent call last):
	File "/home/chris/isaac/WORKSPACE", line 18
		isaac_engine_workspace()
	File "/home/chris/isaac/third_party/engine.bzl", line 20, in isaac_engine_workspace
		isaac_new_http_archive(name = "gtest", build_file = clean..."), <5 more arguments>)
	File "/home/chris/isaac/engine/build/isaac.bzl", line 371, in isaac_new_http_archive
		native.new_http_archive(**kwargs)
type 'struct' has no method new_http_archive()

[and so on for many more pages]

But if you do it with it works:

chris@chris-NUC7i5BNK:~/isaac$ sudo ./engine/build/deploy.sh --remote-user chris -d jetpack42 -h 192.168.86.47 -p //apps/kaya:joystick-pkg
================================================================================
Building Minidump tools
================================================================================
================================================================================
Building //apps/kaya:joystick-pkg for target platform 'jetpack42'
================================================================================
INFO: Analysed target //apps/kaya:joystick-pkg (61 packages loaded, 2694 targets configured).
INFO: Found 1 target...
Target //apps/kaya:joystick-pkg up-to-date:
  bazel-bin/apps/kaya/joystick-pkg.tar
INFO: Elapsed time: 8.870s, Critical Path: 1.84s, 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
================================================================================
Deploying //apps/kaya:joystick-pkg (tar) to chris@192.168.86.47 under name 'root'
================================================================================
The authenticity of host '192.168.86.47 (192.168.86.47)' can't be established.
ECDSA key fingerprint is SHA256:mt3y0b7PMfE4v2SUPOtxOc9VOzcpZQh3DY6tspx9iCQ.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.86.47' (ECDSA) to the list of known hosts.
chris@192.168.86.47's password: 
sending incremental file list
joystick-pkg/
joystick-pkg/_solib_arm64-v8a/

When I ll I get this:
chris@chris-desktop:~/deploy/root$ ll /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 May 12 16:15 /dev/ttyUSB0

Where is dynamixel.cpp?

On the Kaya side, running the Joystick app with either or no works until the Serial Port part:

chris@chris-desktop:~/deploy/root/joystick-pkg$ ./apps/kaya/joystick
2019-05-15 07:16:45.912 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-05-15 07:16:45.912 WARNING engine/gems/scheduler/scheduler.cpp@327: No default execution groups specified. Attempting to create scheduler configuration for 4 remaining cores. This may be non optimal for the system and application.
2019-05-15 07:16:45.912 INFO    engine/gems/scheduler/scheduler.cpp@280: Scheduler execution groups are:
2019-05-15 07:16:45.912 INFO    engine/gems/scheduler/scheduler.cpp@289: __BlockerGroup__: Cores = [3], Workers = No
2019-0

etc…

until it tries to open the serial port:

2019-05-15 07:17:08.477 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet 'kaya_driver/isaac.KayaBaseDriver' ...
[PortHandlerLinux::SetupPort] Error opening serial port!
2019-05-15 07:17:08.477 ERROR   packages/dynamixel/gems/dynamixel.cpp@53: Cannot open port
2019-05-15 07:17:08.477 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet 'kaya_driver/isaac.KayaBaseDriver' DONE
2019-05-15 07:17:08.477 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet 'kaya_driver/isaac.KayaBaseDriver'
2019-05-15 07:17:08.477 DEBUG   engine/alice/backend/node_backend.cpp@318: Starting node 'holonomic_joystick'
2019-05-15 07:17:08.477 PANIC   packages/dynamixel/gems/dynamixel.cpp@80: Servo doesn't support MOVING_SPEED
2019-05-15 07:17:08.477 DEBUG   engine/alice/backend/codelet_backend.cpp@61: Starting codelet 'holonomic_joystick/isaac.navigation.RobotRemoteControl' ...
2019-05-15 07:17:08.477 DEBUG   engine/alice/backend/codelet_backend.cpp@73: Starting codelet 'holonomic_joystick/isaac.navigation.RobotRemoteControl' DONE
2019-05-15 07:17:08.477 DEBUG   engine/alice/backend/codelet_backend.cpp@291: Starting job for codelet 'holonomic_joystick/isaac.navigation.RobotRemoteControl'
====================================================================================================
|                            Isaac application terminated unexpectedly                             |
====================================================================================================

even though that port is available and both user and user are members of the dialout group:

chris@chris-desktop:~/deploy/root/joystick-pkg$ ll /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 May 14 22:44 /dev/ttyUSB0

The location of the file and line number are printed with error message:
2019-05-15 07:17:08.477 ERROR packages/dynamixel/gems/dynamixel.cpp@53: Cannot open port

You seem to be doing everything right. All I can think of is double checking stuff. By printing port name, we would double check “usb_port” parameter indeed gets set to “/dev/ttyUSB0”.

Have you assigned IDs 1, 2, 3 to your motors?

Could you double check “8 Connect Motor Wiring” from https://docs.nvidia.com/isaac/isaac/apps/tutorials/doc/assemble_kaya.html please?

@chris5pb1j
Wonder the version of Isaac SDK you are using.
And would you like to double check the version of bazel you are using, and if all dependencies are installed via engine/build/scripts/install_dependencies.sh.

Isaac SDK 2019.1
Bazel 0.25.1

@chris5pb1j
Thanks for the information!
At the moment Isaac SDK is recommending bazel v0.19.2. Later Bazel versions introduced breaking changes.

Yes, already done on both counts

Ah. That may be the problem. I’ll try downgrading later today.

Out of curiosity, why can’t the correct Bazel just be installed as part of the dependency installation process? It seems weird to have to install that one part manually

@chris5pb1j
Actually install_dependencies.sh would try to install bazel v0.19.2. Curious if that would succeed on your workstation.

Hey Chris,

Thanks for helping us debug this issue!

It would be helpful to know why the Isaac SDK can’t open /dev/ttyUSB0. Would you mind changing
packages/dynamixel/gems/dynamixel.cpp, line 53 from

LOG_ERROR("Cannot open port");

to

LOG_ERROR("Cannot open port %s, errno %d", port_name.c_str(), errno);

Thanks!

I’ve uninstalled Bazel and let the dependency script reinstall the right version. But when I try to deploy to the Jetson device (Kaya), I still get many screens of errors that all point to the same issue:

C++ compilation of rule '@lmdb//:lmdb' failed (Exit 1) crosstool_wrapper_driver_is_not_gcc.py

Furthermore, there is no dynamixel folder in the packages folder(and thus no packages/dynamixel/gems/dynamixel.cpp):

chris@chris-desktop:~/isaac/packages$ ls
audio           dummies  hgmm  kaya_base    map  navigation  perception  pwm        segway   sight         utils     viewers  zed
communications  flatsim  imu   kinova_jaco  ml   pan_tilt    planner     realsense  sensors  stereo_depth  velodyne  yolo

It’s weird you can’t find packages/dynamixel because the error message you are getting points to that path:
2019-05-15 07:17:08.477 ERROR packages/dynamixel/gems/dynamixel.cpp@53: Cannot open port

Can we double check that deploy script works fine for you? Can you delete or rename the ~/deploy folder and redeploy please? Is ~/deploy recreated? Maybe put some dummy text to config.json files of kaya versions and cat them on Nano after redeploying.

Oof, it’s going from bad to worse. I deleted the deploy folder and now when I try to rebuild I can’t get even get to the Nvidia servers. Maybe I should drive down there and let you guys try to debug in person?

ERROR: /home/chris/.cache/bazel/_bazel_root/9d332889b549d80feb9ab4adc49b1853/external/isaac/engine/build/BUILD:34:1: no such package '@nvcc_10//': Error downloading [https://developer.nvidia.com/isaac/download/third_party/cuda_10_nvcc-tar-xz] to /home/chris/.cache/bazel/_bazel_root/9d332889b549d80feb9ab4adc49b1853/external/nvcc_10/cuda_10_nvcc-tar-xz.tar.xz: GET returned 504 Gateway Timeout and referenced by '@isaac//engine/build:nvcc'

@chris5pb1j
The last error above shows that it failed to download the package for nvcc which is used to build. It is defined in third_party/engine.bzl which points to https://developer.nvidia.com/isaac/download/third_party/cuda_10_nvcc-tar-xz

Would you like to check the network connection and above URL is available?

Hello Everyone,

I have created my own custom 4-wheel differential drive robot assembly (without wheel odometry) with a Jetson Nano and realsense D435 camera. I also have access to a BMI088 IMU which I may or may not use.

I was thinking about modifying the current kaya application for deployment on my robot. For odometry, I wanted to obtain readings directly from the SVIO GEM (https://docs.nvidia.com/isaac/isaac/packages/perception/doc/visual_odometry.html) as a substitute for wheel odometry.

My immediate overall objective is to run the gmapping application on Isaac with the current hardware. Is this possible/advisable with the mentioned approach? What are the intricacies involved in modifying the Kaya application for deployment on a custom robot such as mine?

Some additional info -

  • The SVIO GEM is running perfectly on my assembled robot

  • I tried running the object detection Kaya application directly on my robot and it gave the following error:

    [PortHandlerLinux::SetupPort] Error opening serial port!
    2020-10-06 15:33:56.298 ERROR packages/dynamixel/gems/dynamixel.cpp@51: Cannot open port /dev/ttyACM0: No such file or directory [errno 2]
    2020-10-06 15:33:56.299 DEBUG packages/dynamixel/gems/dynamixel.cpp@108: Switching PanTiltDriver control mode to: SPEED
    2020-10-06 15:33:56.299 DEBUG packages/dynamixel/gems/dynamixel.cpp@108: Switching PanTiltDriver control mode to: SPEED
    2020-10-06 15:33:56.299 DEBUG packages/dynamixel/gems/dynamixel.cpp@108: Switching PanTiltDriver control mode to: SPEED
    2020-10-06 15:33:56.299 WARN engine/alice/backend/codelet_canister.cpp@225: Codelet ‘2d_kaya.kaya_hardware.dynamixels/isaac.alice.Failsafe’ was not added to scheduler because no tick method is specified.
    2020-10-06 15:33:56.299 PANIC packages/dynamixel/gems/dynamixel.cpp@91: Servo doesn’t support MOVING_SPEED
    ====================================================================================================
    | Isaac application terminated unexpectedly |
    ====================================================================================================

The last line “Servo doesn’t support MOVING_SPEED” is similar to what @chris5pb1j mentioned in one of his comments.

Ofcourse, it is not surprising that that I am getting an error since I made no changes to the Kaya application to suit my custom robot. Since I am new to Isaac, I thought about asking my question here before I dive into the code to make changes. To restate my main questions -

Is it possible/advisable to follow the approach of modifying the Kaya application for deployment on my custom robot? If yes, what are the important steps that I should take/important points that I should keep in mind?

I am on a tight deadline, so any help at all would be really appreciated.

@OguzSaglam @chris5pb1j I would love to hear your thoughts on this.