Summer 2010 - MARCbot Sensing Platform
This research was conducted with Taylor Courier, Eric Kurz, and Patrick Scott under the guidance of Dr. Robert Ray as part of the 2010 NASA Robotics Academy at Marshall Space Flight Center.
The purpose of this project was to create a high performance sensor platform with hardware-level data processing capabilities by replacing the proprietary electronics and control system of a military IED examination robot, the MARCbot. The significance of this type of system is that it decreases the amount of data that must be transmitted to a remote computer. This is useful in situations where a Disruption Tolerant Network (DTN) is required due to a significant communication delay between a remote host and the controlled device. This situation could arise when controlling a robotic rover on Mars, where there is a thirty-minute delay between initial transmission and data acquisition from the rover.
The primary task of the MARCbot Sensor Platform (MSP) is to process tele-operation commands from a remote computer and return a live video feed from an onboard camera. A JAVA program on the host computer transmits drive commands using a UDP protocol to the onboard controller, a Xilinx Virtex-6. This Field Programmable Gate Array (FPGA) based controller implements a MicroBlaze soft processor, which runs PetaLinux, a board specific Linux distribution. A program, written in C, running on this system interprets the UDP packets and sends drive commands to the Parallax servo controller over a serial protocol. An onboard camera transmits live video to the JAVA program over an 802.11 standard wireless network so the robot can be operated out of line of sight. The UDP packet structure is designed to be extensible, easily incorporating data from more sensors as they are added.
The hardware and software modifications that have been implemented enable a user to drive the MARCbot and view the video feed in a standalone program from the remote computer. Although the current platform does not incorporate hardware level processing, work is being done to utilize the partial reconfiguration capabilities of the Virtex-6 to optimize multi-sensor processing.
The purpose of this project was to create a high performance sensor platform with hardware-level data processing capabilities by replacing the proprietary electronics and control system of a military IED examination robot, the MARCbot. The significance of this type of system is that it decreases the amount of data that must be transmitted to a remote computer. This is useful in situations where a Disruption Tolerant Network (DTN) is required due to a significant communication delay between a remote host and the controlled device. This situation could arise when controlling a robotic rover on Mars, where there is a thirty-minute delay between initial transmission and data acquisition from the rover.
The primary task of the MARCbot Sensor Platform (MSP) is to process tele-operation commands from a remote computer and return a live video feed from an onboard camera. A JAVA program on the host computer transmits drive commands using a UDP protocol to the onboard controller, a Xilinx Virtex-6. This Field Programmable Gate Array (FPGA) based controller implements a MicroBlaze soft processor, which runs PetaLinux, a board specific Linux distribution. A program, written in C, running on this system interprets the UDP packets and sends drive commands to the Parallax servo controller over a serial protocol. An onboard camera transmits live video to the JAVA program over an 802.11 standard wireless network so the robot can be operated out of line of sight. The UDP packet structure is designed to be extensible, easily incorporating data from more sensors as they are added.
The hardware and software modifications that have been implemented enable a user to drive the MARCbot and view the video feed in a standalone program from the remote computer. Although the current platform does not incorporate hardware level processing, work is being done to utilize the partial reconfiguration capabilities of the Virtex-6 to optimize multi-sensor processing.
Specifications
Processor- MicroBlaze soft processor implemented on Xilinx Virtex-6 FPGA
Sensors - ACTi Camera; software to enable additional sensors
Software - HDL (for FPGA); C (onboard programs); JAVA (remote computer)
Power - Two BB-2950 rechargeable military batteries
Drive Type - Ackerman Steering (like a car)
Sensors - ACTi Camera; software to enable additional sensors
Software - HDL (for FPGA); C (onboard programs); JAVA (remote computer)
Power - Two BB-2950 rechargeable military batteries
Drive Type - Ackerman Steering (like a car)
Documentation
INTRODUCTION
The purpose of this project was to create a high performance sensor platform with hardware-level data processing capabilities. The proprietary electronics and control system of a military IED examination robot, the MARCbot, were replaced by the Xilinx Virtex-6 Field Programmable Gate Array (FPGA). The robotic sensor platform can be controlled from a remote computer which transmits drive commands to the robot and accepts return sensor data. Processing sensor data onboard the robot is significant because it decreases the amount of data that must be transmitted back to a remote computer. This is useful in situations where a Disruption Tolerant Network (DTN) is required due to a significant communication delay between the remote computer and the controlled device. This situation could arise when controlling a robotic rover on Mars, where there is a thirty minute communication delay between initial instruction and data acquisition from the rover.
The purpose of this project was to create a high performance sensor platform with hardware-level data processing capabilities. The proprietary electronics and control system of a military IED examination robot, the MARCbot, were replaced by the Xilinx Virtex-6 Field Programmable Gate Array (FPGA). The robotic sensor platform can be controlled from a remote computer which transmits drive commands to the robot and accepts return sensor data. Processing sensor data onboard the robot is significant because it decreases the amount of data that must be transmitted back to a remote computer. This is useful in situations where a Disruption Tolerant Network (DTN) is required due to a significant communication delay between the remote computer and the controlled device. This situation could arise when controlling a robotic rover on Mars, where there is a thirty minute communication delay between initial instruction and data acquisition from the rover.
HARDWARE
- The system is built on MARCbot IV platform
- Wireless router and Ethernet switch were installed
- Onboard ACTi camera
- Traxxas motor speed controller
- Parallax USB Servo Controller
- Xilinx Virtex-6 FPGA implements Microblaze soft processor
USER INTERFACE
- Written in JAVA
- Uses key listeners to drive events
- Sends and receives UDP packets from the robot
- Provides feedback on the state of the robot
- Provides interfaces for communication
- Can be extended to include sensor control and feedback
ONBOARD SOFTWARE
- PetaLinux (board specific Linux distribution) runs on Microbaze soft processor
- PetaLinux kernel recompiled to include Parallax USB driver
- C program runs on board startup to control UDP communication (to remote computer) and serial communication (to Parallax)
COMMUNICATION
- Two way communication between JAVA program on remote computer and Virtex-6 to send commands and sensor data using UDP protocol
- C program on the Virtex-6 interprets UDP packets and sends drive commands to the Parallax servo controller over serial protocol
- Extensible UDP packet structure to easily incorporate more sensors
- Onboard camera transmits live video to the remote computer over 802.11 standard wireless network




