The Mars Rover Project of McGill Robotics built upon its experiences to design and assemble Calliope, our rover for the 2017 University Rover Challenge (URC).
Thanks to a combination of early sponsorship seeking and an ambitious timeline, this year’s rover project was fully funded very early. Calliope is completely built, up and running, and is currently undergoing testing.
The mechanical division focused their efforts this year on two goals: testing, and weight reduction. Our experience building Mars rovers allowed us to schedule an efficient conceptual design phase with more time devoted to building early prototypes. These prototypes allowed us to test innovative designs without risking time and resources. Our previous rover had a fully configured weight over 61 kg. To remain under the weight limit we would choose between an additional two wheels on our suspension or our robotics arm. This year, we redesigned every subsystem prioritizing weight and brought the 6-wheel and arm configuration to less than 50 kg, a reduction in weight of 20%. This new configuration will be essential for competition in the extreme retrieval task.
Our weight reduction efforts started with the frame. By optimizing our electrical box and suspension, we were able to reduce the bounding dimensions of our frame by over 50%. The truss structure was optimized for load estimates based on our previous rover and predictions for weight reductions. This redesigned frame uses aluminum tubes rather than steel. Welded aluminum poses several challenges, the greatest of which is the loss of heat-treatment in the heat affected zone of the weld. This loss of strength usually occurs at stress-critical locations, so the strength needed to be addressed. After the frame was notched and welded, it was aged in a 300°C oven for 12 hours, ramping up to and down from peak temperature very slowly to avoid warping. This heat-treatment will not recover all of the original T6 treatment, but based on research we expect it to recover almost 61% of the T6 strength.
Calliope’s suspension is our third iteration of the rocker-bogie design. The suspension features a simplified construction with increased reliability and a new spring damper. URC challenges require rovers to move over rough terrain at high speeds. This type of locomotion induces violent shocks on the frame and rover instruments. The spring dampers are located in such a way that displacement from any of the 6 wheels will cause a displacement and dampening in the spring.
Our wheels were designed experimentally. We built a testing rig for a prototype wheel to attempt traversing different terrain. These experiments led us to a lightweight design built to perform in both rocky areas and loosely packed sand. Rather than using a heavy rubber tire to add compliance to the outer wheel, we opted for bent strips of spring steel. This solution is lighter and outperforms our previous rubber designs in testing. The best wheel for sand seems to be one that can partially sink and move by dragging paddles through the sand. Our design incorporates such paddles on the inner rim. The lightweight drive motor mounts were also redesigned to incorporate our new aluminum welding and heat-treating technique.
Our new arm uses the core concepts and design from our previous rover. Changes to the gear differential, first link, and belt tensioning systems reduce weight and backlash in order to improve control.
This year, the electrical system was re-designed from the ground up to expand our sensing and actuation capabilities. The system comprises four subsystems: drive, arm, power, and sampling. The drive and power subsystems are mounted inside the rover’s main electrical box with the main computer and 2.4 GHz WiFi antenna, while the arm and sampling subsystems have their own enclosures. Each of these subsystems uses one or more Texas Instruments TM4C ARM microcontrollers to actuate motors, read sensors, and monitor power. These microcontrollers use the rosserial_tivac library to interface with the rover’s main computer directly over USB.
The drive system operates Calliope’s drive and steering motors. The drive system electronics are all contained on a single PCB backplane that houses three dual motor driver boards and three microcontrollers. A built-in USB hub allows the microcontrollers on the backplane to communicate with the main computer using a single USB port. The rover is driven by six Maxon brushless DC motors (BLDCs). These motors are controlled by custom made back-emf sensing motor controllers. The rover’s four steering motors are BDC servos, which are controlled by a single PWM signal line. Quadrature encoders are used on the drive motors to control their velocity. Odometry measurements from these encoders are sent back to the main computer for use in the autonomous navigation task.
The arm subsystem interfaces with the computer through a backplane that connects four dual motor driver boards and three ARM microcontrollers. The arm backplane also includes a USB hub that allows the microcontrollers to communicate with the computer using one USB line. In total, seven brushed DC motors are used to control the arm’s shoulder, elbow, wrist, and claw. Our custom motor controller boards can each control two BDC motors, and support current sensing, brake actuation, and motor fault protection. Each of these motors is paired with a capacitive incremental encoder and a contactless magnetic encoder. These encoders work together to provide precise measurement of the arm’s position and velocity.
The power systems control safety and power distribution within the rover. This year designed a single centralized power board that supports load-sharing and current monitoring. An ARM microcontroller on the power board monitors the current and cell voltages of our two LiPo batteries, and reports this information to the main computer. The power board also houses our kill-switch relays and a series of fuses to protect each subsystem from overcurrent damage.
The sampling system controls the rover’s sample retrieval and analysis mechanisms. A BDC motor and incremental encoder are used to track the depth of our sampler. In order to ensure that the requisite sample weight has been obtained, we have included an isolated load cell to measure the net soil sample weight. For measuring the environmental variables, we have included a humidity and K-type temperature probe, a wind-speed sensor and an atmospheric pressure, altitude and temperature sensor.
With fully functional control and communication systems from our previous competitions, we focused our software efforts on three distinct goals: improving the design of our frontend, achieving end effector based control of the arm, and implementing a system for the autonomous navigation task.
Our frontend, built using the PyQT framework, was fully integrated and operational in our previous competitions. This year we improved our design by following the model-view-controller design pattern, a standard pattern for user interfaces. Each individual widget in the frontend is self contained and completely independent of the others, which allows us to easily reconfigure our layouts. This has made adding new modules and making changes to old ones much easier.
In previous competitions, we have controlled our arm joint by joint using open loop control. This makes operation very difficult, as it is a bottom up and unnatural approach to controlling a claw. The goal for the year was to control the arm based on the position of its end effector using MoveIt, an open source motion planning framework. This framework loads a dynamic model of the arm, then uses the model to calculate inverse kinematics and trajectories while avoiding self collisions. The framework is built for and using ROS, so it was the obvious choice for our application. The framework allows us to give an end effector position and orientation, and it calculates the best trajectory for the joints to reach this position. Now we need to implement controllers which follow this trajectory, using our encoder feedback for each joint of the arm.
To approach autonomous navigation, we considered a wide set of options including both autonomy by demonstration as well as a more sophisticated SLAM based path discovery. This year in competition, we will attempt autonomy by demonstration. The core principle is the human operator navigates to the waypoint while the robot maintains global odometry. Once we have navigated to the end goal, we have a trajectory from start to finish for the robot to follow. We return to the start and enter autonomous navigation mode. In autonomous navigation mode, the trajectory is split into small segments, and the robot attempts to reach the next goal point in the sequence.
We maintain global odometry throughout the trajectory using GPS, wheel odometry, visual odometry, and other sources. We also maintain local odometry for each sub-goal in the trajectory which uses the same sources as global odometry but without GPS, avoiding the pitfall of discontinuities in GPS readouts. This local odometry will be coupled with 3D environment recognition using a tilting lidar and RGBd camera, which will allow us to avoid obstacles along the trajectory. We use robot_localization for odometry, move_base for path planning, and open source drivers for the LIDAR and RGBD camera along with Point Cloud Library to allow 3D environment recognition.
During the science task, the rover first obtains a 20cm core sample while taking measurements of the wind speed, subsurface humidity, and temperature. The sample is then brought back to the command station for further analysis.
The optimal sampling site is determined by the geological appearance of the site, such as evidence of past water activity. A wide-angle panorama of the site is taken, along with a high-resolution close-up and a GPS coordinate. Once the site is determined, a core sampler drills to a depth of at least 20 cm. A coring tube, drill bit, flange and sampling liner work in tandem to produce a sealed and undisturbed core sample. A probe is inserted into the hole drilled by the sampler, taking subsurface humidity and temperature measurements. A calibration curve is created prior to the task to ensure accuracy of the humidity measurement. An anemometer allows real-time monitoring of the wind patterns. In the chance of a dust storm, the extreme pattern recorded by the anemometer will prompt the station to terminate and recall the rover, preventing any further damage due to the storm.
The soil sample brought back by the rover is analyzed by the dispersive spectrometer located at the command station. The source side of the spectrometer consists of a lock-in amplifier and a 100 Hz modulator for emitter control, whereas the detector side incorporates various stages to reduce noise in a terminally excited spectral range. Low-pass filters, buffers, preamps and micro-power amplifiers are combined for a signal output of 0 to 5V. Finally, this is coupled to a linear guide rail with incremental movement to produce the final IR spectral graph. The visible information aids the determination of mineral composition while the hyperspectral IR components can be used to determine soil types. By compiling an IR spectra library of known Utah soil types, we can compare the results to the library and determine the soil type of best fit.
Biological and geological tests are performed in addition to the spectral analysis. A beaker filled with 1:1 ratio of soil sample and water are fed into an automated pH-measuring system. With the beaker placed on a track, multiple motors throughout the system work in unison to drive the beaker under a pH probe. The pH reading is taken by a motor-driven pH probe, and the sample is driven back for disposal. In future years, we plan on expanding the system to allow for various probes such as those that test for redox potential and dissolved oxygen, as well as fully automating the system for such probes. Furthermore, four qualitative tests are performed: Sudan III test for fats; ninhydrin test for amino acids; Benedict’s test for reducing sugars; and carbonate test for calcium carbonate. As the most fundamental units of life, the detection of any of fats, amino acids, and carbohydrates would hint at a presence of life. Gram’s stain microscopy is also performed to study and classify any soil bacteria presented in the sample.
All the solutions used during the bench analysis are kept in their commercial off-the-shelf containers and transported, stored, and disposed according to their MSDS.