Licenses: Software: GPLv3; Hardware: Creative commons BY-SA.
First outdoor test:
Frame design reasoning:
The frame dimensions - The first and easiest application (once I have autonomous navigation working) is to put UV lights on it to experiment as an alternative to fungicide on wheat. The current non-organic method is to blanket spray the crop every two weeks once it gets beyond a certain growth stage. This means the robot needs a decent ground clearance which is why it is currently so tall, and at the moment slightly unstable as you can see from the video. To fit down existing tramlines though it will need to be 2m wide so will be more stable.
The frame construction - For now the frames are built from handrail brackets and aluminium scaffold tube. Am loving this setup so far as it's so quick and easy to swap pieces out and reconfigure, just a few grub screws and the working height, width or length of the robot can be changed. While brackets are great for prototyping they may prove to be insufficient fixing once driving around a field. The other issue is that the tubes turn slightly when tightening the grub screws which makes wheel alignment very difficult. So for both these reasons I plan to drill through the front surface of the tube and use bolts instead of the grub screws to secure the tubes. This will also make it possible to properly align the wheels and will mean that the brackets can't slip over time.
The fixed wheel fork - Have left a decent sized area to mount ultrasound or LIDAR for obstacle detection. Have left space to put a mudguard on to stop it getting plastered if it becomes an issue.
The Steering Wheel - The photo with a 3rd wheel on the robot was the testing of my steering wheel. The steering motor passed the torque test but in the process the sprocket slipped on the motor shaft and bent it. I have a replacement shaft now but haven't resolved the poor fixing issue yet. The other issue is that this assembly is seriously heavy, around 50kg including the hub motor so do really need to rethink this design.
The eventual plan is to have 4 of these on the robot so can travel in any direction. This will mean can make the robot 2m by 6m wide, so that it can drive up and down the field in the 6m direction, but into the shed and along tracks in the 2m direction.
Hub motor - Would have ideally used wide ATV wheels (like the WEEDINATOR) but found these hub motors for a very reasonable price, apart from the postage... They are internally geared and have a top speed of ~10mph. I have limited it to 1.5m/s in the video so that I don't tip it over. They seem to have more than enough torque for the job too, so it should be able to carry the weight of a generator with some spare capacity eventually.
Steering motor - This was a bit of a guess. The 'similar project' link calculated a required torque of 19Nm for steering larger wheels than mine on mud. This motor with the sprockets is in that ballpark. Hopefully the 20% duty ratio limitation will not be an issue. The preliminary test showed the torque was sufficient but I could stall it by pushing down hard on it, however this must have been getting close to the 100kg/wheel max so will probably be fine. More testing needed.
Power supply - Li-ion batteries are expensive and even if I spent £400 /wheel then it might still only cover one tiny field on a charge. And that's without even doing anything useful in the field! Plus the limited recharge cycles issue.
I would love to use a renewable energy source directly on the robot, but solar PV in the UK winter is a bit of a joke. Small wind turbines might be a possibility but then it's not guaranteed daily energy.
For now I am using the two 12v AGM batteries I had on the Autonochair project with a 24v to 230v inverter. This only gives me about 45 minutes of drive time but that is more than enough for me to get autonomous navigation working properly.
Eventually it seems a generator is the most sensible and economic option. Most farms have their own red diesel tank so will probably go with diesel. However this is not environmentally friendly so I strive to find a better solution.
ODrive - USB Open Source Dual channel BLDC Motor driver. I am very impressed with this. It even has a ROS node which publishes the info from the hall effect sensors in the motors as odometry info for the navigation stack. Lots of other features and info available too including motor current being available to ROS.
Jetson TX2 - It's overkill for just a remote control robot but it has the power to do so much more which I'm hoping to utilize soon.
XBOX 360 Controller - An easy way to have wireless remote control. Has a ROS node. I will ditch it long term though and use ROS teleop from android or web so that I don't need to carry an XBOX controller around.
Intel Realsense D435i - This stereoscopic camera with IR grid projection has a built in IMU and will be used for obstacle detection when navigating. Already has a ROS node. Using this on the Jetson TX2 proved annoying to set up due to having to recompile the kernel. Thankfully JetsonHacks had made a script to do this :)
GPS RTK - UBlox M8P - This relatively low cost device works well, you require a pair of course. It also has a ROS node. Currently it sends the correction info over 866MHz from base to rover. This is not ideal and it is possible to send it over WiFi instead using NTRIP. I am yet to attempt this.
WiFi - The range on the Jetson TX2 is not great so seems the easiest is to have a WiFi AP mounted on the robot. This will allow remote monitoring and control the robot via a web interface or directly though another instance of ROS.
ROS - If you don't know about ROS and you make robots then go have a look. It is truly awesome what is available and it's open source. Navigation, machine learning, simulation, graphical debug applications plus so much more that I would have overlooked was even required for a robot. It publishes all topics onto the network so any computer running ROS on the network can subscribe or publish back to the robot. This makes remote monitoring and control easy and can be used to offload some processing from the robots computer back to base. Nodes are already available for lots of existing hardware so it's very easy to start messing about. Having spent the time to get to grips with it I cannot see myself deciding to attempt robotics without it.
Specifications so far:
~80kg total weight
100 kg - Maximum total weight /wheel
10 mph - Top speed in theory - not daring to test it until less top heavy!