Live Robot Hack Session
DJ's Test Bots (TurtleBot 3, and K-8)
16 people have subscribed to this event
I will be upgrading my test robots with single-board computers (SBCs). I'll be adding the Intel Up Board and Rock Pi/x to each of the robots. The TurtleBot 3 and the tank (known as K-8).
Upgrade to ARC Pro
ARC Early Access will give you immediate updates and new features needed to unleash your robot's potential!
What do you think of the d435i? Any advantages over Lidar at this point?
the d435 is great. Better than a lidar for false positives. Sucks it’s discontinued and impossible to buy
adding support for something that no one else can use sucks to swallow lol
I added a sabertooth with kangaroo connected to the encoders. I’ll test it tomorrow. But I’m guessing it’ll fix the trajectory issue.
i also added an amplifier on the speaker
I hope this sabertooth & kangaroo combo fixes that. Otherwise, I'll replace those motors with Dynamixel servos
The kangaroo manual has soooo many inconsistencies. Not to include that the Sabertooth manual is the absolute worst - i don't know how their manuals haven't been updated in so many years.
Dip Switch Nitemare
The biggest issue I found is attempting to understand the dip switch settings. There's no simple diagram that just says "here's the switches and here's what each one does". Instead, you have to scan the document and read paragraphs where you might catch a sentence that says "Dip switch #2 does this".... WOW who wrote these manuals? They're written like a novel...
So I'm not sure what the sabertooth dip switch settings are supposed to be because they're referenced opposite of each other in two places...
OH but then I realized that in the second diagram, the little orange circle is the switch position - which took me hours to notice that I interpreted it in reverse as any other human would. Because the larger part should be the switch position because that is why you're using the document?!
I finally got the Describe software to work, which you have to use the beta version because the regular one will NOT connect. And there's a firmware update? That's cool and neat to see. Took about 20 tries with timeouts lasting many minutes... So that was a fun hour trying to update.
Oh, and still no working Sabertooth + kangaroo yet
This one involves the Sabertooth baud rate. Both the kangaroo and sabertooth talk via serial to each other. The kangaroo needs to know the baud rate that the sabertooth is set for. The kangaroo manual says the Sabertooth dip switches should be this to be 9600.
But the sabertooth manual says those dip switch settings is actually 2400
And in the DEScribe software, the sabertooth setting is 9600
I have no idea what is actually correct because I still can't get the two talking. And I keep getting an error flashing 4 times on the kangaroo of "invalid mode" so not sure what is going on there either. The DEScribe software is terribly documented. Seriously poorly documented. Check out this example...
So reverse is used with single-direction mode. And single direction mode says it is used with reverse.... Talk about a recursive loop? What is going on here
I'm still fighting to use it - but I do not believe the outcome is going to match what I'm expecting. My outcome is to have the controller use the left and right wheel encoders to maintain trajectory. Meaning, I want to instruct the robot to move straight forward and it does so. I'd also like to have it slowly turn 10 degrees to the right, and it does so. This would be similar to how the iRobot Roomba operates.
However, I do not believe the sabertooth's velocity speed mode offers this functionality.
I'll give it another shot tomorrow, but I'm guessing the solution will be some custom arduino code. The good news is that if i end up creating a PID based motor driver in the arduino with the EZB firmware, it'll be useful for other projects.
A couple thoughts;
# When you use a Kangaroo attached to a Sabertooth there are two sets of dip switches that need to be set. The ones on the Sabertooth are set so the two boards can talk to each other. In think In reality the Kangaroo will only talk to the Sabertooth. It seems to me that the Sabertooth becomes the slave to the Roo.
# When you use a Kangaroo attached to a Sabertooth set the dip switches on the Sabertooth as instructed in the manual, Then forget about the Sabertooth. 99% of the time you will never have to do anything again to the Sabertooth.
# When you use a Kangaroo attached to a Sabertooth set the dip switches on the Sabertooth to:
Switches 1 & 2= Off
Switches 3,4,5,6= On.
This will set the proper baud rates and other setting so the Kangaroo and Sabertooth can talk to each other. At this point the Roo will be able to totally control the Sabertooth.
# I've never had to change the baud rate for either board in the DeScribe software. Dip Switch control is the default. However if for some reason you need to change this and other settings that the dips control there is a box to check in the software that will override the dips.
# The dips on the Kangaroo change the operating modes and options. I've attached that diagram from the Kangaroo manual showing them:
# @DJ, I assume that you are controlling the robot with the joystick control in ARC. I think to achieve the control you want you need to set dips to 1=on, 2=on, 3=off, 4=off. This would give you Digital input, Encoder feedback, velocity control and mixed mode that would be like a tank control.
After all this the device to be controlled needs to be set up 100% and working. Once that is certain then the Roo/ST can be attached and hopefully an Auto Tune can be successfully done.
You can also attach the input control wires to accept an RC controller. I did not use a Kangaroo for this on my robot's RC drive. Just a lone Sabertooth. DE says adding a Roo makes driving a robot much better when using RC control but I have not tried it. My large RC controlled robot runs nice and smooth with only a ST attached without the additional Kangaroo.
Again, I agree that the manual is very hard to read. Information is given in terms that is not very intuitive. Almost like the developer assumes you should already know this stuff. Also needed info is scattered around the manual. I found it was important to read through the entire manual to make sure I found the needed information or needed step. Example is how to attach the Roo to the ST and set the proper ST dip switches. That information at the end of the manual!
Here's some links to the Kangaroo and DeScribe manuals just in case you need them:
Kangaroo X2 Manual
In your post above ... #3.
The top picture, shows the Sabertooth, Kangaroo and Arduino setup.
What is the code that is on the Arduino?
(In the video you use a generic h-bridge.)