I just finished building up my Kaya platform, very cool platform! I’m excited to get it running. Unfortunately I built the base around Dynamixel XL430-W250-T servos not the MX-12W. I modified the Kaya_Motor_Bottom_Plate to accept the XL430-W250-T. As expected the joystick application will not run and has the follow errors in the log:
I have verified the correct that the servos are powered correctly using dmx_monitor. So it is clear that I will need to modify the KayaBaseDriver to work correctly with my build. Where can I find the source to the isaac.KayaBaseDriver component?
But I use MX-12W instead.
3 MX-12W are configured as expected, and confirmed 12V input at Dynamixel hub.
Any idea please?
Thanksx
updated!
I installed to test Dynamixel SDK [3.7.21].
With python example, MX-12W does not answer at all.
DynamixelSDK/python/tests/protocol1_0$ ./read_write.py
Succeeded to open the port
Succeeded to change the baudrate
[TxRxResult] There is no status packet!
Press any key to continue! (or press ESC to quit!)
[TxRxResult] There is no status packet!
[TxRxResult] There is no status packet!
[ID:001] GoalPos:010 PresPos:000
Press any key to continue! (or press ESC to quit!)
[TxRxResult] There is no status packet!
[TxRxResult] There is no status packet!
[ID:001] GoalPos:4000 PresPos:000
[TxRxResult] There is no status packet!
[ID:001] GoalPos:4000 PresPos:000
[TxRxResult] There is no status packet!
[ID:001] GoalPos:4000 PresPos:000
[TxRxResult] There is no status packet!
We are okay with opening isaac.KayaBaseDriver source, but I’m not currently sure when you’ll be able to access it.
ddpx2
The Dynamixel voltage error (3001) will typically appear when you first start the app, and then disappear once everything is initialized. It should only be a concern if it continues to appear.
Are you able to use the Dynamixel app on your PC to actuate the motors while they are receiving power from Kaya? (ie. disconnect the U2D2 from the Nano, and plug it into a PC which can run the Dynamixel apps) You should be able to see the current motor voltage show up in the app as well. It may be easier to isolate the Dynamixels for troubleshooting this way.
The only extra piece related to the U2D2 is ensuring that you have configured the usb_port parameter correctly, as detailed in the Kaya assembly instructions and quoted below:
This is exciting! I’ve been stuck with the issues that I’ve explained in another thread. I’ve begun writing my own, with the intent of sharing it with the community, but would love to see the NVIDIA code. I’ve got a general Dynamixel library working and am now working through the 3-wheel holonomic kinematics. I can’t wait to see this opened up.
deadman_switch. When I press 4 [basic jstest-gtk display], I got following message:
2019-10-01 08:07:38.533 INFO engine/alice/backend/failsafe_backend.cpp@46: Reanimating failsafe 'robot_failsafe'
2019-10-01 08:07:38.912 WARNING engine/alice/backend/failsafe_backend.cpp@34: Failsafe triggered for 'robot_failsafe' because heartbeat 'deadman_switch' stopped beating
2019-10-01 08:07:43.109 INFO engine/alice/backend/failsafe_backend.cpp@46: Reanimating failsafe 'robot_failsafe'
2019-10-01 08:07:43.109 INFO engine/alice/backend/failsafe_backend.cpp@46: Reanimating failsafe 'robot_failsafe'
2019-10-01 08:07:43.560 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Sideway speed command is out of safe bounds. Clamped from 0.750000 to 0.500000.
2019-10-01 08:07:43.660 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Sideway speed command is out of safe bounds. Clamped from 0.750000 to 0.500000.
To test, ‘v’ checked at “disable_deadman_switch” in “Application Configuration” of Host side.
then following messages on the Kaya for the same button:
2019-10-01 08:43:13.763 INFO packages/navigation/RobotRemoteControl.cpp@63: Entering autonomous mode
2019-10-01 08:43:16.725 INFO packages/navigation/RobotRemoteControl.cpp@92: Entering manual mode
Should I modify somewhere of Application Configuration on the Host to move servos?
Because a channel “follow_me/control.lqr/isaac.planner.HolonomicBaseLqrPlanner/plan” is red color.
thanks bluecamel8fusr. Sorry it’s been a while, but we’ll open source our driver very soon. Your input will be very valuable if you get a chance to check it out.
ddpx2, “disable_deadman_switch” is useful in autonomous mode, which doesn’t help the simple joystick application, where we need manual control. As mentioned in https://docs.nvidia.com/isaac/isaac/doc/faq.html, you need to L1 on the joystick if you are using a playstation 4 controller. Otherwise, you can check which button needs to be pressed through jstest-gtk application.
Did you get a chance to enable “debug_mode” flag through Sight? Did wheels move with that?
2019-10-08 15:47:52.807 INFO engine/alice/backend/failsafe_backend.cpp@46: Reanimating failsafe 'robot_failsafe'
2019-10-08 15:47:53.942 WARNING engine/alice/backend/failsafe_backend.cpp@34: Failsafe triggered for 'robot_failsafe' because heartbeat 'deadman_switch' stopped beating
2019-10-08 15:48:10.087 INFO engine/alice/backend/failsafe_backend.cpp@46: Reanimating failsafe 'robot_failsafe'
2019-10-08 15:48:10.492 WARNING engine/alice/backend/failsafe_backend.cpp@34: Failsafe triggered for 'robot_failsafe' because heartbeat 'deadman_switch' stopped beating
disable_deadman_switch is cleared and debug_mode is checked.
And wheels do not move at all.
At same button with disable_deadman_switch is checked:
2019-10-08 15:48:19.407 INFO packages/navigation/RobotRemoteControl.cpp@63: Entering autonomous mode
2019-10-08 15:48:20.507 INFO packages/navigation/RobotRemoteControl.cpp@92: Entering manual mode
2019-10-08 15:48:20.677 INFO packages/navigation/RobotRemoteControl.cpp@63: Entering autonomous mode
2019-10-08 15:48:21.217 INFO packages/navigation/RobotRemoteControl.cpp@92: Entering manual mode
FYI,
system log dumps following messages when I move something in front of depth camera:
Oct 8 15:46:08 nvidia-desktop kernel: [ 4917.648158] uvcvideo: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
Oct 8 15:46:08 nvidia-desktop kernel: [ 4917.707144] uvcvideo: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
Oct 8 15:46:08 nvidia-desktop kernel: [ 4917.766222] uvcvideo: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
Oct 8 15:46:08 nvidia-desktop kernel: [ 4918.048774] uvcvideo: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
Oct 8 15:46:08 nvidia-desktop kernel: [ 4918.107356] uvcvideo: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
When debug_mode is checked, it bypasses the joystick and the disable_deadman_switch flag. If your wheels don’t move in debug_mode, our driver is not working for your Dynamixel XL430-W250-T servos. This is not surprising since our code assumes MX-12W, but hopefully it will be an easy change for you once we open source the driver.
The issue you are having with the joystick is interesting. Did you pair over bluetooth or are you using a cable? Can you connect screen/keyboard/mouse to your Kaya and open jstest-gtk application as show in https://docs.nvidia.com/isaac/isaac/packages/sensors/doc/joystick.html When you press L1 and triangle, which buttons toggle in jstest-gtk? You can match the numbers with RobotRemoteControl component. I’m surprised the defaults don’t work for your ps4 controller though.
Joystick, under testing, is a bundle wireless gamepad, https://www.waveshare.com/jetbot-ai-kit-acce.htm
joystick-gtk application works pretty well on Kaya.
L1 is mapped to 6, and triangle is 4.
Would you let me know what number L1 + triangle should have?
With this gamepad, pressing L1+triangle + left/right stick, I’ve got following messages:
2019-10-10 13:27:20.515 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Forward speed command is out of safe bounds. Clamped from 0.530330 to 0.500000.
2019-10-10 13:27:20.515 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Sideway speed command is out of safe bounds. Clamped from -0.530330 to -0.500000.
2019-10-10 13:27:20.615 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Forward speed command is out of safe bounds. Clamped from 0.530330 to 0.500000.
2019-10-10 13:27:20.615 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Sideway speed command is out of safe bounds. Clamped from -0.530330 to -0.500000.
2019-10-10 13:27:20.715 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Sideway speed command is out of safe bounds. Clamped from -0.750000 to -0.500000.
2019-10-10 13:27:20.815 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Sideway speed command is out of safe bounds. Clamped from -0.750000 to -0.500000.
2019-10-10 13:27:22.415 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Turning rate is out of safe bounds. Clamped from 3.000000 to 2.000000.
2019-10-10 13:27:22.515 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Turning rate is out of safe bounds. Clamped from 3.000000 to 2.000000.
2019-10-10 13:27:22.615 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Turning rate is out of safe bounds. Clamped from 3.000000 to 2.000000.
2019-10-10 13:27:22.715 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Turning rate is out of safe bounds. Clamped from 3.000000 to 2.000000.
2019-10-10 13:27:22.815 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Turning rate is out of safe bounds. Clamped from 3.000000 to 2.000000.
2019-10-10 13:27:22.915 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Turning rate is out of safe bounds. Clamped from 3.000000 to 2.000000.
2019-10-10 13:27:23.615 WARNING packages/kaya_base/KayaBaseDriver.cpp@39: Turning rate is out of safe bounds. Clamped from -3.000000 to -2.000000.