A robot, or any other engineering project, requires a careful round of planning and design. In fact, the design stage takes the most time, percentage wise, and the more details that are worked out early on, the easier and smoother actual construction should go (I say should because design mistakes can happen and may not be caught until parts come together). Project complexity goes up significantly as systems are added and removed, so it’s important to design them all properly.
Since I’ve thought a lot already about what capabilities YardBot will have, I thought I’d detail the systems that I’m going to build in.
Being a hardworking yard robot, YardBot will be made from sturdy material. I’m planning on 3/8″ thick aluminum plate, which will hopefully be used in many different places to make sourcing parts as well as manufacturing easier. With 16″ snowblower wheels on the outside, the wheel shafts are supported by a standard D shaft between two bearing plates. Between the plates is a chain socket to string chain between the wheel shaft and motor shaft at the center. A chain is required to allow one motor to power two wheels together. Using a belt is also an option. I’m still investigating that, and at the moment I feel that a chain will provide a stronger connection between motors and tires.
Separate from the main propulsion system is the ability to power and drive other 12V attachments. The idea that spawned the project was to have something to shovel the driveway, so I’m in the process of designing a way to mount a standard snow shovel to the front, with 2 linear actuators connected to allow the shovel to yaw side to side and lift up and down. These attachments will be fastened to the front tabs, or hitched to the rear. My hope is that I can use a variety of yard equipment for different jobs (no more hauling leaf bags!).
All of these devices need to be powered. For that, I plan on using 2 12V lead acid batteries in series for 24V. That voltage is primarily because most wheelchair motors operate at 24V. Since this isn’t all that common for other electrical gear and controllers, it will be stepped down to both 12V and 5V of onboard power. The best way to do this efficiently is to use a DC-DC switching step down converter. A standard automotive fuse block is used to provide a common ground to the battery and break out the different voltages.
There are multiple sensors and input devices connected to the fuse blocks, and each needs to have a clear path back to the battery. As shown in the high level schematic above, there is a Mini ITX computer, Xbox Kinect and linear actuators drawing power from 12V, while the 5V block provides power to the onboard WIFI router and LED strip. Additional power for 3.3V sensors is provided by the onboard voltage regulator of the Arduino MEGA.
Crucially, at the very top of the chain is a current and voltage sensor on the 24V line. This data will be fed into the Arduino as a sort of “watchdog” program. The different components have certain current ratings, and with two wheelchair motors providing 10s of Amps of current, it’s important to monitor everything. Additionally it allows the system to read the battery voltage and alert me accordingly.
With so many devices sending and receiving info, it’s important to plan how each communicates together. This high-level diagram illustrates the communication path for the major components. There is a mixture of one-way and bidirectional communication, along with wired and wireless protocols. The primary interconnect to the Arduino and Mini ITX computer, running ROS. The Arduino acts as an actuator for the high level planning and processing done by ROS. Its role is to take the sensor inputs and publish them to the ROS system, as well as subscribe to ROS messages for outputs. Sensors connect to the Arduino by using analog input (current/voltage sensor), i2c (IMU) or serial (motor controllers), with the GPS receiver and Kinect talking to ROS with USB. I hope to be able to use the Kinect for rudimentary path finding, but it’s a significant challenge. The GPS sensor I bought is not as accurate as commercial units, but I’m optimistic I can take advantage of it (GPS based hockey rink clearing!).
Integrating this many different systems together will definitely be an interesting learning experience. I hope that by planning things out as much as possible beforehand I can learn about the right way to do things and help construction go smoothly when I get started.