I about to turn my ArloBot lose on my indoor environment as I have completed all of the initial software and hardware configuration checks in the ArloBot guide.
My present ArloBot configuration consists of an Eddie Robot Base, original Motor Mount and Wheel Kit, updated 36-Position Quadrature Encoder Set, a Propeller Activity Board WX, 4 PING Sensors (3 in the front and 1 in the rear), a Slamtech A1M8 RPLidar for mapping, and a Xbox One Gamepad for remote control without using teleop.
Hopefully I can make a map of my indoor environment and get the ArloBot to navigate around my indoor environment.
I haven't done much with the robot lately but it's sitting next me while I work.
. . . a Slamtech A1M8 RPLidar for mapping, . . .
I have a Slamtech Lidar but I haven't used it much yet.
I'm still undecided which will be my next step with my Arlo robot. I'm considering converting the robot to be controlled by a Propeller 2. I'm also seriously considering adding an ArduRover controller and using it with Mission Planner. It would be fun to have the robot travel around the block using waypoints.
I hope you share photos of your project with us. As I mentioned in another thread, I'd be happy to help getting the PAB communicating with a motor controller using Spin.
Here is a link to my ArloBot (Arlo chassis) performing basic docking without a dock.
As can be seen in the video, the ArloBot begins a CCW search for the IR Transmitter beam and when found attempts to move forward towards the dock while staying aligned with the IR Transmitter beam.
I am presently validating the IR Transmitter/Receiver and ROS Docking Node software functionality.
I have completed the docking station and now have the ArloBot project creator working on integrating the ROS robot docking Node software into the ArloBot ROS software package.
I didn't use Cooper's Arduino IR Receiver code and created my own, however I did integrate his Arduino rosserial code fragments into my Arduino IR Receiver code.
The amount of gear lash in the Eddie Motor/Wheel Assemblies, presently installed on my ArloBot, made it virtually impossible to make a map using Rviz 2D Nav Goal. Even with adjustments to the ArloBot driveGeometry distancePerCount and wheelSymmetryError values, straight line performance was really not repeatable to the point of being able to make a good Rviz map.
So I purchased one of the remaining pairs of the Arlo Motor/Wheel assembly and it arrived on Saturday.
I quickly assembled the Motor/Wheel Assemblies on Sunday morning and installed them on my ArloBot, which was equipped with the original Eddie Motor/Wheel Assemblies, but had been converted to the ArloBot Encoders, this afternoon which was no mean trick especially when removing the battery plate with the batteries still on it.
After reassembling ArloBot I used the ~/catkin_ws/src/ArloBot/scripts/PropellerSerialTest.sh maneuver function to test the Arlo Motor/Wheel assemblies after I had set the distancePerCount and wheelSymmetryError values back to their default ArloBot values.
The Arlo Motor Wheel Assemblies performed to expectations without the startup clunk of the Eddied Motor/Wheel Assemblies due to the 1/2 inch of wheel circumference slop inherent in the Eddie gear train. They are very quite and were almost spot on, without adjustment of the default distancePerCount value, when performing the 1 meter travel test.
Definitely a worthwhile upgrade to my ArloBot chassis irrespective of the cost.
I don't have the original Eddie hardware. I have some Arlo motors, wheels and encoders. There's video embedded in this post which shows how well the robot navigated using dead reckoning. After the robot drove both ways around a 1m by 2m rectangle, the robot then drove in a couple figure 8 patterns. After all this the robot was about a foot away from the theoretical end point.
The Arlo's backlash must have been less than Eddie's backlash. The finer encoders likely helped the Arlo robot's accuracy. The uncertainty in the distance traveled with my robot was determined by encoder resolution more than the backlash of the motors.
The Arlo's encoders provided 144 encoder transitions per wheel revolution. I think Eddie's encoders provided 36 transitions per revolution.
Each encoder transition with the Arlo encoders corresponded to the wheel travelling 3.41mm (a bit more than an eighth of an inch). Assuming the Eddie encoders produced 36 transitions per revolution, this would correspond to a distance travelled of 13.64mm (a bit more than half an inch) per encoder transition. While this is four times the uncertainty, I'd think the Eddie motors/encoders would still provide useful navigation data.
I'm not familiar enough with the Eddie hardware to be sure, but I don't think the backlash and slope in the gear train should be much of a concern. By counting encoder transitions you should be able to travel a couple meters with less uncertainty than an inch.
To test the calibration of my robot, I had it spin in place exactly ten times. If the final position didn't match the expected position, I adjusted my "MICROMETERS_PER_TICK" constant until I was satisfied with the final position.
Thanks for the response and detailed information concerning the Motor/Wheel assemblies and encoders.
I have watched your video and it was very impressive.
Observation:
When using the Arlo quadrature encoders with the Eddie Motor/Wheel assemblies, the slop in the gear train results in quite a few "ticks" being recorded before the wheels actually begin to travel.
The gear train slop was not such a problem with the lower resolution Eddie quadrature encoders with the nine vane disk.
However the slop with the Arlo quadrature encoders results in 12 mm of recorded travel before the wheel actually travels and can vary between the two wheel assemblies.
I have resolved the "slop" issue by purchasing an Arlo Motor/Wheel assembly kit and installing it on my Eddie robot chassis.
Doing so has greatly improved the maneuvering accuracy of my Eddie robot chassis, though I had to add 1/8 inch spacers to the original Eddie Caster Wheel Assemblies to balance the platform.
Thanks for clarifying. I have some Eddie 9 vane encoder hardware but I don't have other Eddie hardware. I would have thought having the encoders at the end of the drive chain, would negate the worry about slop. After looking around at photos on the internet, I think I can see how the Eddie hardware isn't necessarily the same as the Arlo hardware with just a different number of encoder vanes.
There is virtually no backlash in the Arlo Motor assembly.
I found the slop in the Arlo Motor/Wheel assembly to be isolated to the loose fit of the wheel drive axel slot on the square motor drive pin.
The slop probably comes from the fact that Parallax must have encountered varying tolerances in the square motor drive pin dimensions and machined the wheel drive axel mating slot to meet all cases.
On the other hand there is some backlash in the Eddie Motor assembly.
I have tried using the gear train adjusting screw on the Eddie Motor, but to no avail. So I set the screw back to its original position.
When it comes to slop between the Eddie square motor drive pin and the machined wheel drive axel mating slot, it is substantial and varies from side to side.
I have considered pressing very slim shim stock into the sides of the machined wheel drive axel mating slot to see if it would be worthwhile to reduce the slop.
@TCIII said:
I have considered pressing very slim shim stock into the sides of the machined wheel drive axel mating slot to see if it would be worthwhile to reduce the slop.
This is what came to mind as I read your description of the problem. Thanks for taking time to explain the issue in more detail.
Since I now have a set of Eddie Motor/Wheel assemblies and a pair of Arlo Wheel Encoders, I decided to build a "Eddie" robot chassis for my garage workshop.
I essentially duplicated the NikosG's "Artist" robot chassis except mine is square and the Eddie Motor/Wheel assemblies are mounted midway along the opposing sides of the 14" square chassis with 1" caster wheels at each end to balance the chassis.
I am using a Parallax WX ESP8266 WiFi Module on the PAB WX as a wifi hotspot and it works quite well with my laptop running SimpleIDE.
I am using a combination of "Arlo IR Controlled Nav and Talk with WAV" files and the Learn C Activity Bot files code to get my "Eddie" robot functional.
So far I have calibrated and displayed the Arlo Wheel Encoders and and have used the "drive_goto" and "drive_speed" macros to test "Eddie's" straight line and rotational performance which I must say is pretty good considering the slop in the Eddie Motor/Wheel gear train.
Cool beans all, you know I'm a fan of everyone's work here and a lover of accuracy and dead reckoning. Related, I just got this VERY cool new geartrain from AliExpress which uses dual differential drive. Two motors, one drives both wheels together, the other steers, AKA spinning wheels in opposite directions for turns. What does that mean? It means no more worrying about synchronizing your wheels to drive straight. It means that if you only drive OR steer (run one motor at a time, no mixing), you could have a SINGLE encoder to measure both distance and turns for dead reckoning. Rather simplifies things, eh? I just received the module, it looks great. The only problem is that it is designed for a high-speed treaded tank vehicle and the drive motor is way too big and squirrelly. Very coggy and a current hog, nothing subtle about it. So I have to swap in a smaller motor and 0.6 module pinion, which I had to order from China so it will be a while before I can really test it. But I'm pretty jazzed about it, will advise when I can. Teardown video (not mine) below.
Comments
Not me, but here's a cheap chassis on Ebay: https://www.ebay.com/itm/254731825352
Eddie and ARLO have different wheel cutouts for the different wheel and motor kits.
@ Publison,
That is correct. I actually have an Eddie platform, but was able to adapt the newer encoders to the older chassis.
erco's link is to the original Eddie chassis which will not accept the newer motor kit.
Regards,
TCIII
Hi All,
I about to turn my ArloBot lose on my indoor environment as I have completed all of the initial software and hardware configuration checks in the ArloBot guide.
My present ArloBot configuration consists of an Eddie Robot Base, original Motor Mount and Wheel Kit, updated 36-Position Quadrature Encoder Set, a Propeller Activity Board WX, 4 PING Sensors (3 in the front and 1 in the rear), a Slamtech A1M8 RPLidar for mapping, and a Xbox One Gamepad for remote control without using teleop.
Hopefully I can make a map of my indoor environment and get the ArloBot to navigate around my indoor environment.
Regards,
TCIII
I have a lot of the Arlo hardware but I don't have an Arlo base. I made my chassis from expanded PVC.
The above photo is from this thread.
I haven't done much with the robot lately but it's sitting next me while I work.
I have a Slamtech Lidar but I haven't used it much yet.
I'm still undecided which will be my next step with my Arlo robot. I'm considering converting the robot to be controlled by a Propeller 2. I'm also seriously considering adding an ArduRover controller and using it with Mission Planner. It would be fun to have the robot travel around the block using waypoints.
I hope you share photos of your project with us. As I mentioned in another thread, I'd be happy to help getting the PAB communicating with a motor controller using Spin.
Hi All,
Here is a link to my ArloBot (Arlo chassis) performing basic docking without a dock.
As can be seen in the video, the ArloBot begins a CCW search for the IR Transmitter beam and when found attempts to move forward towards the dock while staying aligned with the IR Transmitter beam.
I am presently validating the IR Transmitter/Receiver and ROS Docking Node software functionality.
I will then build the docking/charging station.
Regards,
TCIII
Excellent work!
@erco,
Thanks for the kudos, much appreciated.
I have completed the docking station and now have the ArloBot project creator working on integrating the ROS robot docking Node software into the ArloBot ROS software package.
I didn't use Cooper's Arduino IR Receiver code and created my own, however I did integrate his Arduino rosserial code fragments into my Arduino IR Receiver code.
Regards,
TCIII
@TCIII - I'm still playing/experimenting with two Arlo's - stock , and mArlo - see https://forums.parallax.com/discussion/168555/marlo-debut#latest))
I would sure love to see more about your charging station - especially the how you handled the electrical connection points. COOL project.
Hi,
I am getting back to my original Eddie robot after almost 10 years. Other projects got in the way.
Now I am relearnng Spin. I got new batteries and got the robot started in remote control mode - joy stick mode. (Play station 2 controller.)
I have all the original Eddie hardware.
I want to finish the wall following code that I was working on and get the Ping sensors to work effectively. For some reason I put ten on the robot!
TCIII,
I am very interested in what you are doing. I am not really up to speed at this point.
Glad you are working on this!
@Whit,
Here is a link to the Arlo/ArloBot charging station project.
I am using 6 mm dia pogo pins on the robot docking probe to take care of any misalignment with the docking station charging plates.
Regards,
TCIII
@TCIII,
Really well done. Thanks for sharing all this. Keep up the great work!
@Whit,
The amount of gear lash in the Eddie Motor/Wheel Assemblies, presently installed on my ArloBot, made it virtually impossible to make a map using Rviz 2D Nav Goal. Even with adjustments to the ArloBot driveGeometry distancePerCount and wheelSymmetryError values, straight line performance was really not repeatable to the point of being able to make a good Rviz map.
So I purchased one of the remaining pairs of the Arlo Motor/Wheel assembly and it arrived on Saturday.
I quickly assembled the Motor/Wheel Assemblies on Sunday morning and installed them on my ArloBot, which was equipped with the original Eddie Motor/Wheel Assemblies, but had been converted to the ArloBot Encoders, this afternoon which was no mean trick especially when removing the battery plate with the batteries still on it.
After reassembling ArloBot I used the ~/catkin_ws/src/ArloBot/scripts/PropellerSerialTest.sh maneuver function to test the Arlo Motor/Wheel assemblies after I had set the distancePerCount and wheelSymmetryError values back to their default ArloBot values.
The Arlo Motor Wheel Assemblies performed to expectations without the startup clunk of the Eddied Motor/Wheel Assemblies due to the 1/2 inch of wheel circumference slop inherent in the Eddie gear train. They are very quite and were almost spot on, without adjustment of the default distancePerCount value, when performing the 1 meter travel test.
Definitely a worthwhile upgrade to my ArloBot chassis irrespective of the cost.
Now to try out Rviz map making.
TCIII
@Whit/Duane Degn,
The slop in my "original" Eddie Motor/Wheel assemblies is approximately 1/2 inch of the wheel circumference.
I have read on the older Parallax Forum that the 1/2 inch of backlash was normal and expected.
Have either of you experienced this amount of backlash in the "original" Eddie Motor/Wheel assemblies?
If so, did you attempt to adjust it out with the the locking set screw at the front of the gear train assembly?
Regards,
TCIII
I don't have the original Eddie hardware. I have some Arlo motors, wheels and encoders. There's video embedded in this post which shows how well the robot navigated using dead reckoning. After the robot drove both ways around a 1m by 2m rectangle, the robot then drove in a couple figure 8 patterns. After all this the robot was about a foot away from the theoretical end point.
The Arlo's backlash must have been less than Eddie's backlash. The finer encoders likely helped the Arlo robot's accuracy. The uncertainty in the distance traveled with my robot was determined by encoder resolution more than the backlash of the motors.
The Arlo's encoders provided 144 encoder transitions per wheel revolution. I think Eddie's encoders provided 36 transitions per revolution.
Each encoder transition with the Arlo encoders corresponded to the wheel travelling 3.41mm (a bit more than an eighth of an inch). Assuming the Eddie encoders produced 36 transitions per revolution, this would correspond to a distance travelled of 13.64mm (a bit more than half an inch) per encoder transition. While this is four times the uncertainty, I'd think the Eddie motors/encoders would still provide useful navigation data.
I'm not familiar enough with the Eddie hardware to be sure, but I don't think the backlash and slope in the gear train should be much of a concern. By counting encoder transitions you should be able to travel a couple meters with less uncertainty than an inch.
To test the calibration of my robot, I had it spin in place exactly ten times. If the final position didn't match the expected position, I adjusted my "MICROMETERS_PER_TICK" constant until I was satisfied with the final position.
@"Duane Degn",
Thanks for the response and detailed information concerning the Motor/Wheel assemblies and encoders.
I have watched your video and it was very impressive.
Observation:
When using the Arlo quadrature encoders with the Eddie Motor/Wheel assemblies, the slop in the gear train results in quite a few "ticks" being recorded before the wheels actually begin to travel.
The gear train slop was not such a problem with the lower resolution Eddie quadrature encoders with the nine vane disk.
However the slop with the Arlo quadrature encoders results in 12 mm of recorded travel before the wheel actually travels and can vary between the two wheel assemblies.
I have resolved the "slop" issue by purchasing an Arlo Motor/Wheel assembly kit and installing it on my Eddie robot chassis.
Doing so has greatly improved the maneuvering accuracy of my Eddie robot chassis, though I had to add 1/8 inch spacers to the original Eddie Caster Wheel Assemblies to balance the platform.
Regards,
TCIII
Thanks for clarifying. I have some Eddie 9 vane encoder hardware but I don't have other Eddie hardware. I would have thought having the encoders at the end of the drive chain, would negate the worry about slop. After looking around at photos on the internet, I think I can see how the Eddie hardware isn't necessarily the same as the Arlo hardware with just a different number of encoder vanes.
@"Duane Degn",
There is virtually no backlash in the Arlo Motor assembly.
I found the slop in the Arlo Motor/Wheel assembly to be isolated to the loose fit of the wheel drive axel slot on the square motor drive pin.
The slop probably comes from the fact that Parallax must have encountered varying tolerances in the square motor drive pin dimensions and machined the wheel drive axel mating slot to meet all cases.
On the other hand there is some backlash in the Eddie Motor assembly.
I have tried using the gear train adjusting screw on the Eddie Motor, but to no avail. So I set the screw back to its original position.
When it comes to slop between the Eddie square motor drive pin and the machined wheel drive axel mating slot, it is substantial and varies from side to side.
I have considered pressing very slim shim stock into the sides of the machined wheel drive axel mating slot to see if it would be worthwhile to reduce the slop.
TCIII
This is what came to mind as I read your description of the problem. Thanks for taking time to explain the issue in more detail.
Hi All,
I just responded to the "Use ActivityBot C code in the Arlo" over at the Learn with BlockyProp Forum.
Regards,
TCIII
@"Duane Degn",
Since I now have a set of Eddie Motor/Wheel assemblies and a pair of Arlo Wheel Encoders, I decided to build a "Eddie" robot chassis for my garage workshop.
I essentially duplicated the NikosG's "Artist" robot chassis except mine is square and the Eddie Motor/Wheel assemblies are mounted midway along the opposing sides of the 14" square chassis with 1" caster wheels at each end to balance the chassis.
I am using a Parallax WX ESP8266 WiFi Module on the PAB WX as a wifi hotspot and it works quite well with my laptop running SimpleIDE.
I am using a combination of "Arlo IR Controlled Nav and Talk with WAV" files and the Learn C Activity Bot files code to get my "Eddie" robot functional.
So far I have calibrated and displayed the Arlo Wheel Encoders and and have used the "drive_goto" and "drive_speed" macros to test "Eddie's" straight line and rotational performance which I must say is pretty good considering the slop in the Eddie Motor/Wheel gear train.
Regards,
TCIII
Very cool.
It would be fun to see a video of your robot in action sometime.
I will see what I can do.
Regards,
TCIII
Cool beans all, you know I'm a fan of everyone's work here and a lover of accuracy and dead reckoning. Related, I just got this VERY cool new geartrain from AliExpress which uses dual differential drive. Two motors, one drives both wheels together, the other steers, AKA spinning wheels in opposite directions for turns. What does that mean? It means no more worrying about synchronizing your wheels to drive straight. It means that if you only drive OR steer (run one motor at a time, no mixing), you could have a SINGLE encoder to measure both distance and turns for dead reckoning. Rather simplifies things, eh? I just received the module, it looks great. The only problem is that it is designed for a high-speed treaded tank vehicle and the drive motor is way too big and squirrelly. Very coggy and a current hog, nothing subtle about it. So I have to swap in a smaller motor and 0.6 module pinion, which I had to order from China so it will be a while before I can really test it. But I'm pretty jazzed about it, will advise when I can. Teardown video (not mine) below.
Hi All,
Here is a short video of my ArloBot finding and docking with a charging station.
Regards,
TCIII