Forum Replies Created
FindingNiryoParticipantJune 27, 2019 at 3:36 pmPost count: 91FindingNiryoParticipantJune 27, 2019 at 3:30 pmPost count: 91
Stepper #1 is the worst case scenario as far as multiple rotations (each rotation has a chance to return the same absolute position code).
Gear Ratio 6.0625
Min angle -3.05433
Max angle 3.05433
If the last known position is within +/-.011757 radians of the current position there is a 98% chance the joint has not moved and does not need to be recalibrated to establish joint position.FindingNiryoParticipantMay 17, 2019 at 5:56 pmPost count: 91
Looking at NiryoStepper code shows Initialize MCP2515 running at 16MHz with a baudrate of 1000kb/s
each stepper is transmitting 800 bits per second position data, 32 bits per second diagnostic data, and 12.8 bits per second firmware version.
hw_write_frequency; // 200 Hz (reset to 50 Hz by ROS param) sends for each motor:
synchronizeSteppers() 1600 bits/sec
sendPositionCommand() 3200 bits/sec
sendMicroStepsCommand() 1600 bits/sec
sendMaxEffortCommand() 1600 bits/sec
Total bus traffic 8844.8 bits/second per (3) stepper in NiryoOne V2 = 26.5344 Kbits (2.6% of bus bandwidth)
There should be no significant collisions on the CAN bus with this little amount of traffic.
If “CAN connection problem” is due to hardware errors from connectors perhaps lower the CAN bus speed to CAN_200KBPS
I also suggest reading and reporting MCP_CAN::errorCountRX() and MCP_CAN::errorCountTX()FindingNiryoParticipantMay 17, 2019 at 1:44 pmPost count: 91
Support, thank you for your assistance in trying to resolve this problem.
After receiving the reconditioned arm and upgrading the firmware on stepper 1 to version 2.0 I booted the robot and established wifi connectivity (switched from hotspot mode). I performed an automatic calibration and let the robot sit. Within 1 hour there was one CAN bus error. within seven hours the CAN bus errors triggered a “calibration required” condition.
Here is the log:
[2019-05-16 14:59:21] Writing calibration offsets to file : 3:558 2:987 1:596
[2019-05-16 14:59:21] Resume can hw control
[2019-05-16 14:59:21] CAN : Start hardware control loop
[2019-05-16 15:51:50] CAN connection problem with motor 1, hw fail counter : 0
[2019-05-16 15:51:50] CAN connection problem with motor 1, hw fail counter : 1
[2019-05-16 15:51:50] CAN connection problem with motor 2, hw fail counter : 0
[2019-05-16 15:51:51] CAN connection problem with motor 2, hw fail counter : 1
[2019-05-16 15:51:51] CAN connection problem with motor 2, hw fail counter : 0
[2019-05-16 21:39:11] CAN connection problem with motor 1, hw fail counter : 0
[2019-05-16 21:39:11] CAN connection problem with motor 3, hw fail counter : 0
[2019-05-16 21:39:12] CAN connection problem with motor 3, hw fail counter : 1
[2019-05-16 21:39:12] CAN connection problem with motor 3, hw fail counter : 2
[2019-05-16 21:39:12] CAN connection problem with motor 3, hw fail counter : 3
[2019-05-16 21:39:12] DXL : Start hardware control loop
[2019-05-16 21:39:13] Stop Can hw control
[2019-05-16 21:39:13] CanComm : Stop hardware control loop
[2019-05-16 21:39:13] Set calibration flag
[2019-05-16 21:39:13] CAN : Start hardware control loop
[2019-05-16 21:39:13] DXL : Start hardware control loopFindingNiryoParticipantMay 8, 2019 at 1:06 pmPost count: 91
Ah, of course! I hadn’t considered the gear reductions. Thank you.
Looking to minimize the human interactions with the robot I would still like to avoid calibration if possible.
Suppose the reported position for joints is not significantly different than before the bus is reset it would be safe to assume that the positions were correct and that calibration was not needed.
FindingNiryoParticipantMay 2, 2019 at 4:14 pmPost count: 91
- This reply was modified 2 months, 1 week ago by FindingNiryo.
This behavior seems to be related these Troubleshooting › topics:FindingNiryoParticipantMay 2, 2019 at 4:05 pmPost count: 91FindingNiryoParticipantMay 2, 2019 at 3:56 pmPost count: 91FindingNiryoParticipantMay 2, 2019 at 3:52 pmPost count: 91
Is this something the Niryo staff will look to optimize in order to improve the performance of the arm?FindingNiryoParticipantApril 26, 2019 at 4:33 pmPost count: 91
Software reset should include reset for Dynamixel errors
XL protocol supports Instruction to reboot the device (which clears hardware error codes)
Reboot Instruction Packet
H1 H2 H3 RSRV ID LEN1 LEN2 INST CRC1 CRC2
0xFF 0xFF 0xFD 0x00 0x01 0x03 0x00 0x08 0x2F 0x4E
ID 1 Status Packet
H1 H2 H3 RSRV ID LEN1 LEN2 INST P1 CRC1 CRC2
0xFF 0xFF 0xFD 0x00 0x01 0x04 0x00 0x55 0x00 0xA1 0x0CFindingNiryoParticipantApril 26, 2019 at 4:16 pmPost count: 91
Yes. The command line tools allowed successful modification of the PID parameters. I have not attempted to tune the controllers to improve xl430 performance beyond verifying that changes to registers result in expected behavior. I was hoping Niryo staff would optimize these parameters in order to improve the performance of the arm.FindingNiryoParticipantApril 24, 2019 at 4:21 pmPost count: 91FindingNiryoParticipantApril 24, 2019 at 3:46 pmPost count: 91
Any advances being made in this area? Does the Niryo team have some improvements coming for joint 4,5 position accuracy?FindingNiryoParticipantApril 24, 2019 at 3:41 pmPost count: 91
There are no cable issues. The robot at rest spontaneously triggers a NiryoStepper bus reset and requires re-calibration. I originally asked if the NiryoStepper firmware incorporated random back-off to accommodate occasional bus collisions. Is this an area of research for your team?FindingNiryoParticipantApril 24, 2019 at 3:37 pmPost count: 91