Deliverable: D1.4 Platform User and Developer Manual Consortium UNIVERSITEIT VAN AMSTERDAM (UvA) YDREAMS - INFORMATICA S.A. (YD) IDMIND - ENGENHARIA DE SISTEMAS LDA (IDM) UNIVERSIDAD PABLO DE OLAVIDE (UPO) IMPERIAL COLLEGE OF SCIENCE, TECHNOLOGY AND MEDICINE (ICL) UNIVERSITEIT TWENTE (UT) Grant agreement no.
DOCUMENT INFORMATION Project Project acronym: FROG Project full title: Fun Robotic Outdoor Guide Grant agreement no.: 288235 Funding scheme: STREP Project start date: 1 October 2011 Project duration: 36 Months Call topic: ICT-2011.2.1 Cognitive Systems and Robotics (a), (d) Project web-site: www.frogrobot.eu Document Deliverable number: D1.
Table of Contents 1. Summary................................................................................................................................................. 5 2. FROG Robot Features and Components................................................................................................. 6 2.1. FROG Robot Base Platform............................................................................................................. 6 2.2. FROG Upper Structure.................................
B.1. Motor Board Communication Protocol............................................................................................53 B.2. Sensor&Management communication protocol ............................................................................57 B.3. Interaction Communication Protocol............................................................................................... 60 Annex C. Robot Platform CAD Measurements...........................................................................
1. Summary This deliverable is the robot platform user and developer manual. It explains the way the different components are integrated, where they are connected and how they communicate. The structure of the document is as follows: • FROG Robot Features and Components - This chapter describes the main robot features that have been specified in the previous Work Package deliverables.
2. FROG Robot Features and Components In terms of kinematics the platform is a four-wheeled differential drive, where on each side of the robot two wheels are connected to a single motor. This type of kinematics is adequate for an uneven outdoor (or indoor) terrain, and the robot will deal easily with small obstacles. The following sub-chapters describe the main features and components integrated into the base platform and upper structure, the sensors and finally the actuators.
Figure 1: picture of the platform base structure At this stage of preparation of the project, the partners were considering a platform with the following characteristics: • Robot Kinematics: 2 wheeled differential drive. Pneumatic tires for uneven terrain. • Weight: 30 to 50 Kg • Payload Capacity: 40 to 50 Kg • Height: 1 m • Battery Autonomy: 4 to 6 hours • Maximum Velocity: 1.
• One inertial sensor XSens MTi-G • One Hokuyo UTM-30LX laser • One 3DOF motorized arm with a laser pointer • One projector • One Ethernet Wireless router • One Ethernet Switch • Three mini-ITX computers • One laptop Figure 2: picture of the upper structure FROG – FP7 STREP nr. 288235 Deliverable: D1.
2.3. Sensors The robot is equipped with perception, navigation, interaction, environment and low-level safety sensors. For perception the robot is equipped with cameras, providing a middle range perception (<25m) and short-range perception (1 to 2m).
• • • Function: obstacle avoidance (3D perception of ramps, slopes, etc) • Position on Robot Platform: frontal, tilted or vertical orientation Rear 2D laser rangefinder: Hokuyo’s UTM-30LX • Function: mapping, localization and obstacle avoidance • Position on Robot Platform: on the rear and horizontal Sonar Sensors: SRM400 • Function: obstacle detection (e.g.: glass wall or objects) • Position on Robot Platform: ring of sonars around the robot 2.3.3.
• Position on Robot Platform: Inside the platform base, connected to the drive system 2.4.2. Interaction Actuators Here follows the list of interaction devices. The robot is able to display the contents on the interaction monitor or project them over a surface. • • • • • 2 3 17’’ Sunlight Readable Monitor with Touchscreen2 • Function: interaction with displayed contents (e.g.
3. FROG Robot Architecture This chapter describes the power and communication architecture implemented in the FROG robot. The FROG robot is an autonomous robot able to navigate in outdoor and indoor environments, with no need for human intervention. To power all the components, it will use up to 8 12V (17-20Ah) batteries. The first subchapter explains the power distribution inside the FROG robot. The second subchapter shows the low-level communication architecture.
All of the onboard electronic systems can be powered by the battery system. The ATX computer power supply will provide regulated voltages (from 5V to 12V) and it will be also included an inverter able to provide 600W 230V AC to any device requiring AC power supply (e.g. video projector) will also be included. Figure 3 depicts the onboard power architecture. Several DC-DC converters will also be used to provide the necessary regulated power for the lasers, cameras and other DC-DC powered devices.
3.2. Low-level Communication Architecture The onboard robot navigation computer communicates with the two boards (Sensor&Charger Board and the Motor Controller Board) using 2 USB ports. In each board there are USB-to-RS232 converters that convert the USB data packages to serial RS232 packages for the boards’ controllers. Each board controller will communicate with the other allowing the exchange of information between them.
The Navigation Computer is connected to the navigation sensors and to the platform board controllers using six USB ports. The Interaction computer will connect to the Touchscreen Monitor using the DVI output, to the Projector using the HDMI output, to the Sound System using the audio line out, and will use 3 USB connections to connect to the Webcam, 3DOF Arm with the laser pointer and the eyes’ lights.
4. FROG Robot Electronics Several electronic boards have been designed and added to the FROG hardware. The following subchapters show and describe the boards created for the project. The following electronic systems have been included on the FROG robot: • Motor Controller Board - this board makes the movement of the robot possible.
• Monitors the electronics, motors and the drivers’ power supply. • Measure the motors’ current.
Figure 7: developed Motor Controller Board The Motor Board communicates with the Sensor&Management Board exchanging information about the system status, diagnostics and environment condition, allowing low-level robot reactions to changes that can affect the robot’s operation. It is able to communicate with the computer using a USB-to-RS232 Converter and with the Sensor&Management Board through a RS232 bidirectional communication. 4.2.
Due to its complexity, it was decided to separate the Sensor&Charger Board into three individual boards: Sensor&Management, Power Switch and Charger Boards. The Sensor&Management Board controller will be responsible for all the communications, control signals and sensor acquisitions. The Power Switch Board is controlled by the Sensor&Management Board controller allowing 5 auxiliary batteries (that can be used to power robot computers or devices) to be activated, deactivated or put on charge.
Figure 10: developed Power Switch Board This board will be controlled by the Sensor&Management Board which will provide all of the necessary signals to activate, deactivate or charge each of the batteries. The Power Switch Board also has the necessary electronics to provide the measure of voltage of each of the batteries. All the control signals and voltage measurement circuits are completely decoupled by the use of optocouplers and opto-amplifiers.
Figure 11: battery charge characteristics The Charger Board is currently being used to charge the robot batteries. Figure 12 shows the FROG Battery Charger board. The Charger Board was designed to charge Lead Acid batteries, but at this moment there is the possibility of changing the Lead Acid to LiFePO4 batteries with PCM protection circuits. These batteries have the same size and capabilities as the ones that we are using at this moment, but they weigh ⅓ of the weight of the Lead Acid batteries.
4.3. Sonar Board The Sonar Board, depicted in Figure 13, will be used to control the firing of up to 16 sonars. This board is connected to the Sensor&Management Board through an I2C connection. The information provided from this board can be used to create low-level behaviours, for example reducing the velocity of the robot in the presence of an obstacle. The system uses the SRM400 sonar transducers that are able to detect an obstacle at a distance of up to 2 m.
The mechanics to guide the robot to dock and the Docking Station are being produced. Figure 14 shows the current design of the Docking Station. From the image it is possible to see the Docking Station’s three main features: 1. The Docking Station guiding shape. The V-U design is about 5 cm high and will mechanically guide the robot to the power bar. This design has been tested with the real robot allowing the perfect end alignment, even when the robot enters the docking station with a high rotation error.
4.5. Joystick Wireless Controller The Joystick Wireless Controller is composed of two different circuit boards (depicted in Figure 17): • Wireless Joystick Emitter Controller Board - This board is controlled by a PIC18F2520 that reads the information from an Analog Joystick and converts it to command references that are sent to the FROG robot platform.
One Joystick controller box has been created to control the platform. On that controller box, depicted in Figure 18, there is an analog auto centered joystick that will be used to give the velocity and rotation commands to the platform, one ON/OFF press button to turn on and off the controller box, one Enable press button that will indicate that the Joystick will take control of the robot platform and finally one Emergency button, that when pressed will stop the platform.
The Interaction Computer will communicate with the Interaction Board using two distinct USB ports. One port will communicate directly through an USB to RS232 converter with the three Herkulex motors that control the 3DOF arm. The other USB port will connect to the PIC18F2520 microcontroller and will be used to send commands to control the green eyes of the FROG Robot, to enable and disable the Laser pointer and finally to control the intensity of the green LED lights that surround the laser pointer.
The board with the LED controller will have all the power connections and communication ports to connect to the interaction board. This board has the same size as the board with the LED eyes and will connect to it using sockets placed around the exterior of the board. To fix the eyes to the structure with the Dalsa camera a set of holds have been introduced in the LED control board.
5. Low-level Control Loops The Sensor&Management Board and the Motor Board control the low-level hardware. Both run lowlevel control loops and interrupt driven events that control the system and also check for faults in the normal operation of the platform. In the following subchapters the low-level control loops and interrupt driven events for both boards are displayed and explained. 5.1.
• USART Communication - the system will check for problems in the configuration between the Navigation computer and the board. It will also detect if errors in the data transmission have occurred. When a problem is detected the system will: • Update the Error Status; • Send the Error Status to the Motor Board; • Re-initialize the USART communication ports. Then the system will verify whether the USART problem has been solved.
registers of the microcontrollers also provide error status information that is used to correct any abnormal situation. Figure 25: Sensor&Management Board Control Loop FROG – FP7 STREP nr. 288235 Deliverable: D1.
5.1.1.1. Battery&Charger Management Algorithm The Battery&Charger Management algorithm will deal with voltage measurement of the different batteries and also the charging cable and perform the management of the charging of the batteries. Figure 26 depicts the Battery&Charger Management algorithm. The algorithm starts by performing an analog to digital reading of the voltage of all the batteries and charging cable.
Automatic Mode - In this mode, after detecting that the robot has reached the docking station, the system will start to charge the batteries. To reduce the spikes, a charger counter is used. Whenever it reaches zero one battery is put on charge. It will take 8 charge counter cycles to put all the batteries on charge. The automatic mode does not allow the motor batteries to switch back.
Figure 27: Motor Board Low-level Control Loop and Event Management The following sub-section will explain the way that each of the methods is implemented. 5.2.1 Motor board Low-level Control Loop The Motor Board runs the control loop displayed in Figure 28. To ensure the correct processing of the loop, a watchdog timer is running and if the system blocks in some part the system will force a reset of the board. Figure 28: Motor Board Low-level Control Loop FROG – FP7 STREP nr. 288235 Deliverable: D1.
• USART Communication - the system will check for problems in the configuration between the Navigation computer and the board. It will also detect whether errors in the data transmission have occurred. When a problem is detected the system will: • Update the Error Status; • Activate the Hardstop Mode; • Activate the Timer Interrupt Event; • Re-initialize the USART communication ports. Then the system will verify if the USART problem has been solved.
The I2C communication between all the devices that are connected to the Motor Board is always checked by the use of checksums inside the sent and received data packages. The I2C control registers of the microcontrollers also provide error status information that is used to correct any abnormal situation. 5.2.2. Motor Board Interrupt Driven Events As was mentioned before there are 3 different events that can interrupt the microcontroller. They are described below.
• • Set Events • Set Velocity; • Set cooling fans. Get Events • Get Encoders Ticks; • Get Motor Board Voltage; • Get temperature; • Get cooling fans; • Get communication status. Figure 30: how the system processes Sensor&Management Interrupt Events 2. Sensor&Management Interrupt Events - When a communication error, collision or an obstacle is detected by the Sensor&Management Board, it sends an error message to the Motor Board.
• • Set Events • Set Collision Event; • Set Obstacle Detection Event; • Set Communication Error Event. Get Events • Get Motor Status. 3. Sensor&Management Interrupt Events - When a communication error, collision or an obstacle is detected by the Sensor&Management Board, it sends an error message to the Motor Board (see Figure 31). By doing that it will generate a Sensor&Management Interrupt event.
6. Safety During the first year review meeting held in Amsterdam in December 2012, questions on HumanRobot safety interaction were raised. It was important to review the mechanics, electronics and the low-level software to be able to navigate safely in crowded places. For that a Failure Mode and Effect Analysis (FMEA) has been performed and actions have already been introduced. Subchapter 6.1. shows a preliminary FMEA study and subchapter 6.2.
stopped and there is no way of reaching it in time Platform The robot is moving at its full speed and is taking to long to stop repaired, human injuries, damage to the workspace The robot is running at about 1.
Navigation computer Does not communicate Motor Board sent a hardstop to the motor controllers Robot is stopped No Serial COM detection Check/replace the: USB cable, USB-to-serial converter and communication optocouplers Navigation computer Loses communication with the Motor Board The last drive command will continue to be executed Robot will continue to run with the same actuation Visual and loss of communication with the navigation computer Check for communication losses Temperature sensors Do
the presence of an obstacle the acceleration will be increased to 3.3m/s 2. Allowing to Stop the robot, fully loaded on a horizontal surface, at a 1m/s velocity in just 15 cm. • Implementation of a watchdog timer to verify the correct processing of the control loop.
7. Working with the Robot This chapter describes the quick steps that allow the user to move the FROG robot. There are two ways to drive the platform. The first one is by using the Wireless Joystick controller and the second is by using the navigation computer for that purpose. The following subchapters explain the quick steps to set up the robot to a quick and to a normal operation. 7.1.
when activated will send a Hardstop command to the robot. The robot will only be able to navigate after the release of the Emergency button. By locking the Emergency button the Wireless controller is sending a stop command to the wireless receiver installed in the FROG platform that connects directly to the Motor Board. The Wireless Receiver will pull High the Emergency Stop of the Motor Board.
The Docking Station will power the electronics and all the computers. The final charging method depends on the way that the user wants to charge the robot. Two different approaches can be used: • Manual charging - In the manual mode the navigation computer will fully control the Enable/Disable and charge of each battery. • Automatic charging - In automatic mode the Sensor&Management Board will detect the arrival at the Docking Station and the FROG robot charger will start to charge the batteries.
8. FROG Integration Meetings The FROG robot has been used in the two integration/data collection meetings held in the Royal Alcázar in Seville and in the Lisbon Zoo. The integration meeting in the Royal Alcázar in Seville was the first opportunity for all the partners to be in touch with the new platform. Each of the partners was able to integrate their own components on the robot structure. The team from UPO was able to connect to the platform hardware and navigate safely inside the crowded Royal Alcázar.
9. Tests and Results The FROG robot is currently being tested by the UPO team. IDM and UPO have been testing the robot to detect and correct problems that can arise in the integration of new components and systems. After the Seville integration meeting the robot was left in Seville to allow the UPO team to integrate their navigation software, construct the test bed navigation map and to test the robot hardware.
each, depending on the model, which means in the worst case the robot will carry about 48 Kg of batteries just to power all the components. After working in the Royal Alcázar and in the Lisbon Zoo the group understand that the robot has the need to reduce the weight of the robot. The LiFePO4 batteries, with the PCM protection circuit, can be the solution. They have the same size, same power, and same voltage and should be charged in the same way that we are powering the lead acid batteries.
Annex A. Board Connections The following chapter shows the cable connections between each board and each component. Each connector in a board is represented by a letter or a letter and a number. Each cable is represented by a number. The following figures show the letters that correspond to each connector. Figure 33: Motor Board connectors Figure 34: Sensor&Management Board connectors FROG – FP7 STREP nr. 288235 Deliverable: D1.
Figure 35: Switch Board connectors Figure 36: Charger Board connectors FROG – FP7 STREP nr. 288235 Deliverable: D1.
Figure 37: Power Extension Boards Figure 38: Wireless Receiver Board Table 2 gives the connection between each connector and each cable.
18 Sensor&Management Board S5 Motor Power Switch out 19 Motor Board J1 Motor Drivers Fans in 22 Motor Board L Wireless Receiver Board A 23 Motor Board M Wireless Receiver Board B 24 Motor Board K6 Wireless Receiver Board C 25 Sensor&Management Board Q Navigation Computer USB port out 50 Sensor&Management Board M Bumper out 55 Power Switch Board M Power Extension B 56 Power Switch Board J Power Extension D 57 Power Switch Board G Power Extension H 58 Power S
83 Sensor&Management Board U2 Power Switch Board X 84 Sensor&Management Board U1 Power Switch Board Z 85 Sensor&Management Board L3 Auxiliary 5V Power Supply in 86 Sensor&Management Board K1 Auxiliary 12V Power Supply in 87 Battery Charger Extension 88 Power Extension A Charging Station Cable out 89 Battery Charger Board E Charging Station Cable out 90 Sensor&Management Board A Charging Station Cable out 91 Sensor&Management Board F Motor L Battery out 92 Sensor&Ma
Annex B. Board Controllers Software Protocol The Onboard Navigation Computer is able to communicate with the Motor and Sensor&Management Boards using two independent USB Ports. In each board a FTDI USB to RS232 converter converts the USB data connection to a TTL Serial PORT data connection for the microcontrollers on the board. The Interaction Computer will communicate with the Interaction Board through 2 USB communication ports.
Left wheel Velocity High = (byte) (Left wheel Velocity >> 8); Left wheel Velocity Low = (byte) (Left wheel Velocity & 0xFF); Right wheel Velocity High = (byte) (Right wheel Velocity >> 8); Right wheel Velocity Low = (byte) (Right wheel Velocity & 0xFF); Get Encoders Ticks command: [Command] = 0x4A Write -> [0x4A] Read -> [0x4A][Left Motor Ticks High][Left Motor Ticks Low][Right Motor Ticks High][Right Motor Ticks Low][Send Number][CheckSum_H][CheckSum_L] To get the Left Motor Ticks: Left Motor Ticks = (int)
[Power Status] is the voltage status [AXXXXBCD]. where: A =0 : Motor Drivers disabled; A =1 : Motor Drivers enabled; B =0 : Motor Power not OK; B =1 : Motor Power OK; C =0 : Driver Power not OK; D =1 : Driver Power OK; D =0 : Electronic Power not OK; D =1 : Electronic Power OK.
[A]=1 automatic control of the fans. One or more fans will start to cool a motor or a motor driver when its temperature reaches the 40ºC and stop to work when the temperature is reduced to about 25º. It will not be possible to control the fans manually.
B.2. Sensor&Management communication protocol Enable/Disable/Charge Motors Power: [Command] = 0x45 Write -> [0x45][Control] Read -> [0x45] [Send Number] [CheckSum_H] [CheckSum_L] where: [Control] = 0 : Motor power Disabled; [Control] =1 : Charge motor power enable Mode; [Control] = 2 : Motor power Enable.
[Motor Low Battery] is the battery that will connect to the (-) of the Motor Drivers Power supply and the (-) of the [Motor High Battery]. It will be only different from 0V when in charging mode. To obtain the real measured voltage of this battery the following formula must be used: Motor Low battery voltage = (double)((double)[Motor High Battery] / 10.0); [Electronics Battery] is the battery that powers all the electronics and the onboard Navigation Computer.
The get sonars command will retrieve the distance information of 16 sonar sensor in cm. To get the distance value in cm the following calculation must be performed: Sonar 0..15 = (int)[Sonar0..15_High_Byte]*256+[Sonar0..15_Low_Byte]; note: the number of sonar sensors to be use will depend on future tests.
B.3. Interaction Communication Protocol LED Eyes Control [Command] = 0x40 Write -> [0x40][Eye][32 bytes of 8 LEDs] Read -> [0x40] [Send Number] [CheckSum_H] [CheckSum_L] where: [Eye] = 0 : Left Eye; [Eye] = 1 : Right Eye. [32 bytes of 8 LEDs] - the LED controller is able to control a matrix of 32 LED columns (32 bytes) by 8 LED rows (8 bits). The Eyes are organized in 32 LED columns by 3 LED rows. Each column is represented by a single 8 bits byte.
Annex C. Robot Platform CAD Measurements The drawings presented in this section should be used as a reference. As soon as the production of the shell is concluded this section will be updated with the final CAD drawings. Figure 39: FROG platform. Top view Figure 40: FROG platform. Left view. FROG – FP7 STREP nr. 288235 Deliverable: D1.
Figure 41: FROG platform. Front view. Figure 42: FROG Platform. Pulley system left view. FROG – FP7 STREP nr. 288235 Deliverable: D1.