• Aucun résultat trouvé

RemoteControl7 User’s Manual : Software For Implementing Remote Control Systems

N/A
N/A
Protected

Academic year: 2021

Partager "RemoteControl7 User’s Manual : Software For Implementing Remote Control Systems"

Copied!
49
0
0

Texte intégral

(1)

Publisher’s version / Version de l'éditeur:

Laboratory Memorandum, 2009-01-01

READ THESE TERMS AND CONDITIONS CAREFULLY BEFORE USING THIS WEBSITE.

https://nrc-publications.canada.ca/eng/copyright

Vous avez des questions? Nous pouvons vous aider. Pour communiquer directement avec un auteur, consultez la

première page de la revue dans laquelle son article a été publié afin de trouver ses coordonnées. Si vous n’arrivez pas à les repérer, communiquez avec nous à PublicationsArchive-ArchivesPublications@nrc-cnrc.gc.ca.

Questions? Contact the NRC Publications Archive team at

PublicationsArchive-ArchivesPublications@nrc-cnrc.gc.ca. If you wish to email the authors directly, please see the first page of the publication for their contact information.

Archives des publications du CNRC

For the publisher’s version, please access the DOI link below./ Pour consulter la version de l’éditeur, utilisez le lien DOI ci-dessous.

https://doi.org/10.4224/18227301

Access and use of this website and the material on it are subject to the Terms and Conditions set forth at RemoteControl7 User’s Manual : Software For Implementing Remote Control Systems

Janes, G.; Kennedy, E.; Ennis, T.

https://publications-cnrc.canada.ca/fra/droits

L’accès à ce site Web et l’utilisation de son contenu sont assujettis aux conditions présentées dans le site LISEZ CES CONDITIONS ATTENTIVEMENT AVANT D’UTILISER CE SITE WEB.

NRC Publications Record / Notice d'Archives des publications de CNRC: https://nrc-publications.canada.ca/eng/view/object/?id=dbcbf0e5-1d21-48af-9325-a6c1943cf906 https://publications-cnrc.canada.ca/fra/voir/objet/?id=dbcbf0e5-1d21-48af-9325-a6c1943cf906

(2)

Ocean Technology technologies oc ´eaniques

LM-2009-06

Laboratory Memorandum

RemoteControl7 User’s Manual: Software For

Implementing Remote Control Systems.

Janes, G.; Kennedy, E.; Ennis, T.

Janes, G.; Kennedy, E.; Ennis, T., 2009. RemoteControl7 User's Manual: Software For Implementing Remote Control Systems. St. John's, NL : NRC Institute for Ocean

(3)

REPORT NUMBER

LM-2009-06

NRC REPORT NUMBER DATE

December 2009

REPORT SECURITY CLASSIFICATION

Unclassified

DISTRIBUTION

Unlimited

TITLE

RemoteControl7 User’s Manual

Software For Implementing Remote Control Systems AUTHOR (S)

G. Janes, E. Kennedy and T. Ennis

CORPORATE AUTHOR (S)/PERFORMING AGENCY (S)

Institute For Ocean Technology, National Research Council, St. John’s, NL

PUBLICATION

SPONSORING AGENCY(S)

Institute For Ocean Technology, National Research Council, St. John’s, NL

IOT PROJECT NUMBER NRC FILE NUMBER

KEY WORDS

Remote control, autopilot, Kalman filter, PIC microcontroller

PAGES

iv, 43

FIGS. TABLES

SUMMARY

This manual describes the software program “RemoteControl7,” which is a major component used to implement remote control systems. RemoteControl7 is a software application program running on a Personal Computer (PC) that implements an ergonomic operator console. It provides both a zigzag and a course keeping autopilot that features optional Kalman filtering. RemoteControl7 accepts operator commands from a joystick (or joysticks), mouse or keyboard, encapsulates each command in a digital packet, and transmits the packet via serial communications port to the model to be articulated. The PC’s serial communications port is normally connected to an off-the-shelf radio telemetry device such as a Bluetooth spread spectrum modem. The model, or other device to be controlled, is normally interfaced by embedding a remote command unit onboard the model, that receives and interprets the command signal. The remote command unit is a PIC microprocessor based device that is fabricated at IOT.

ADDRESS National Research Council

Institute for Ocean Technology Arctic Avenue, P. O. Box 12093 St. John's, NL A1B 3T5

(4)

Institute for Ocean Institut des technologies

Technology océaniques

RemoteControl7 User’s Manual

Software For Implementing Remote Control Systems

LM-2009-06

G. Janes, E. Kennedy and T. Ennis

(5)

List of Abbreviations ... v

About This Manual ... v

Introduction... 1

Remote Control of Free Running Models... 2

IOT Command Packet Protocol ... 4

Some Benefits of Digital Telemetry ... 5

Supported Devices ... 6

Installation... 7

Minimum Requirements ... 7

Step-By-Step ... 7

Running RemoteControl7 ... 8

First Time Start-up Screen ... 8

Normal Start-up ... 9

Configuring RemoteControl7 for a New Project ... 10

Setting Up The User Interface ... 11

Configuring Axes... 11

Autopilot Controls ... 12

Using Context Menus on the Main Screen ... 14

Configuring Slider Controls... 14

Setup Slider Controls ... 15

How Communications Affects Ramping ... 17

Calibrating Slider Controls ... 18

Setting Up Preset Buttons ... 20

Hiding and Unhiding Preset Buttons ... 21

Relay Button Mapping... 22

Setting up Relay Buttons ... 22

Hiding and Unhiding Relay Buttons... 25

Setting Colours for Autopilot, Enable Joystick, and Thrust Lock Buttons ... 25

Autopilot ... 26

Course Keeping Autopilot ... 26

Zig-Zag Autopilot ... 29

Communications ... 31

Joystick User Interface... 33

Differential Thrust ... 33

Mapping the Joystick ... 34

Future Development... 37

List of References ... 38

Trademark Information... 39

Appendix A: The Onboard Remote Command Unit ... 40

Appendix B: The Handheld Operator’s Unit ... 42

(6)

CD Compact Disc

CPU Central Processing Unit CSV Comma Separated Values DAC Digital to Analog Converter DAS Data Acquisition System FOG Fibre-Optic Gyroscope GB Gigabyte

Hz Hertz, cycles per second IOT Institute for Ocean Technology KF Kalman Filter

MB Megabyte MHz Megahertz MMP Mini-Motion Pack OTS Off The Shelf PC Personal Computer

PIC Programmable Integrated Circuit, Microcontroller RAM Random Access Memory

RC Remote Control USB Universal Serial Bus

XML Extensible Mark-up Language

About This Manual

Important messages are enclosed in text boxes.

Menu options are presented in Bold Print.

(7)

Introduction

Remote control has been a long-standing requirement at IOT. It has been used in models ranging from large military vessels to tiny free-fall lifeboats, and from fishing vessels to submarines (surface). Recently remote control was required for IOT’s full-scale lifeboat. IOT’s remote control capabilities are continually modernized and enhanced.

This manual describes the software program “RemoteControl7,” which is a major component used to implement remote control systems. RemoteControl7 is a software application program running on a Personal Computer (PC) that implements an ergonomic operator console. It provides both a zigzag and a course keeping autopilot that features optional Kalman filtering.

RemoteControl7 is IOT’s next generation of remote control software. It was written to replace the previous version of remote control software, which served IOT well but was designed to run under Windows 98 (now obsolete), and had a number of issues that would require a large programming effort to correct.

RemoteControl7 was programmed in Microsoft C#, and runs under Windows XP. It is a multi-threaded application that takes advantage of object-oriented design by reusing software classes that were developed and tested separately. Such classes include: graphics, matrix math, serial communications, and multimedia timer classes. It supports devices that are compatible with Windows XP, such as various game controllers.

Some Features of RemoteControl7 Version 1.11:

• Customizable Operator Console • Multi-threaded and responsive • 12 programmable preset buttons • 8 programmable relay buttons

• 4 slider controls with calibration to user units

• Sliders that may be enabled/disabled, re-allocated and/or renamed to other axis • Configurable slider limits

• Course keeping and zigzag Autopilots

• Proportional-Differential control and optional Kalman filtering and wave filtering • Compatibility with OTS Joysticks, Racing Wheels, and Flight Simulator Yokes • Dual joystick operation and joystick axis and button mapping

(8)

Remote Control of Free Running Models

RemoteControl7 communicates by transmitting a command signal serially through the host PC’s serial port. The model, or other device to be controlled, is normally interfaced by embedding a remote command unit onboard the model, that receives and interprets the command signal. The remote command unit is a PIC microprocessor based device that is fabricated at IOT. (However, there are other controllers that can receive and use the command signal from RemoteControl7, such as the PC based Unidex 500 Dual Azipod control software.)

Off-the-shelf (OTS) radio equipment is used to implement remote control on free running models. Also, there is a handheld operator unit fabricated at IOT that is based on a PIC microprocessor. This handheld unit may be used in conjunction with RemoteControl7, to provide convenient control capability during setup and shakedown of the device under test. Control Signals, e.g. Rudder, Motor, etc. PIC Micro-controller Spread Spectrum Modem Joystick or Steering Wheel Spread Spectrum Modem Command Packets

Operator Console PC Running RemoteControl7

Or, Handheld Unit Running RCClient

Remotely Installed Unit Running RCServer

Command Packets

Remote Control Overview Diagram

The RemoteControl7 program provides a user-customizable control console. The operator can quickly and easily customize the software to suit the project. In addition, screen controls can be easily configured and calibrated, and configurations can be saved and restored as required. There are slider controls for interface to various axes and relay buttons that are mapped to relay switches on the model. There are also preset buttons, autopilot controls, and joystick mapping capabilities.

(9)

RemoteControl7 runs on a standard IBM PC clone computer under the Windows XP operating system. It accepts operator commands from a joystick (or joysticks), mouse or keyboard, encapsulates each command in a digital packet, and transmits the packet via serial communications port to the model to be articulated. The PC’s serial

communications port is normally connected to an OTS radio telemetry device such as a Bluetooth spread spectrum modem.

A PIC microprocessor based command unit is installed onboard the free-running model. It runs an embedded software program called RCServer. This command unit has a serial port that is normally equipped with the radio telemetry device that is paired with the PC radio unit. It receives command packets through its serial port and translates each packet into the signals that command the model’s actions. The RCServer program monitors the command stream and checks each packet to verify that it is valid. Valid packets must conform to IOT’s packet protocol. Also, the packets must arrive at specific time intervals or RCServer may decide that the telemetry link has been broken and it will shut down the model.

For convenience, the operator may use a handheld unit instead of the PC. The handheld unit is also PIC microprocessor based and it runs an embedded software program called RCClient. The handheld unit has a serial port that connects, like the PC, to a radio telemetry device such as a Bluetooth modem. The embedded RCClient program takes input from switches and potentiometers on the handheld box, translates the input into digital command packets, and transmits the command stream at the required rate.

The handheld RCClient unit may be used in conjunction with a PC running

RemoteControl7. RemoteControl7 offers advantages over the handheld unit including: • Ergonomics realized through use of various OTS game console devices such as joysticks, racing wheels, and flight simulator yokes that are familiar and easy to use.

• Calibration of controls to the axis under control, to display calibrated user units. • Programmatic model motion control through autopilot, with Kalman filtering

(10)

IOT Command Packet Protocol

The IOT packet protocol specifies the size and composition of digital packets to be transmitted and received through an RS232 serial communications port. Each packet is composed of 16 bit data words and must contain the following: a header word, data channel words, a checksum word and a trailer word. The number of data channel words is variable between implementations. In remote control each command packet has 9 data channel words. The checksum is calculated by exclusive OR of all data channel words. Remote control packets are 24 bytes long and the usual RS232 settings are 19200 baud, 8 data bits, 1 stop bit, and no parity. The maximum transfer rate of packets is limited by the size of the packet (i.e. the number of data words) and the RS232 baud rate used.

However, remote control command packets are normally paced to achieve a 10 packet per second transfer rate.

RemoteControl7 and the handheld RCClient each construct digital command packets according to IOT command packet protocol.

The composition of digital command packets for Remote Control: Byte

Number

Word Number

Contents Data

0 Header Low 0xAA

1

0

Header High 0xAA

2 Axis 0, normally rudder angle. 3

1 Channel 0

4 Axis 1, normally starboard engine speed. 5

2 Channel 1

6 Axis 2, normally port engine speed. 7

3 Channel 2

8 Axis 3, normally bow thruster speed. 9 4 Channel 3 10 Axis 4, unassigned 11 5 Channel 4 12 Axis 5, unassigned 13 6 Channel 5 14 Axis 6, unassigned 15 7 Channel 6 16 Axis 7, unassigned 17 8 Channel 7

18 Channel 8 Low Relay bit pattern. 19

9

Channel 8 High Relay bits reserved.

20 XOR of Words 1 through 9 21 10 Checksum 22 Trailer Low 0xBB 23 11 Trailer High 0xBB

(11)

Since the model being controlled remotely is free-running it may encounter areas where the radio telemetry link is marginal or not available. When this occurs, the onboard command unit may receive packets that have become corrupted in the transfer, or it may not receive command packets at all.

The IOT Command Packet Protocol helps overcome telemetry problems. The onboard command unit validates each digital command packet as it arrives by checking its header, trailer and checksum. Invalid command packets are discarded. Additionally, RCServer expects command packets to arrive at a predefined rate, and if command packets fail to arrive on time RCServer will command the model to shut down. RCServer will resume commanding the model when radio telemetry is restored. This provides a level of fail-safety.

In situations whereby radio telemetry has become marginal command packets may arrive at the command unit sporadically. In this situation RCServer may shut down the model and then resume command over and over, in a correspondingly sporadic way. The

operator will notice that the model appears to become unresponsive. When this occurs the radio antennae must be moved, or other action must be taken, to strengthen the radio telemetry link.

If RCServer shuts down the model due to a broken radio telemetry link the model may drift into obstacles! Care must be taken to mitigate this risk.

Some Benefits of Digital Telemetry

• Efficient use of radio frequencies compared to traditional analog methods. • Flexible implementation, offering up to 8 axis and 8 relays on one radio pair. • Spread-spectrum is more noise immune and does not require special licencing. • Conserves battery power.

• IOT protocol discards invalid or corrupted command packets, preventing invalid commands.

(12)

Supported Devices

The following hardware components have been used successfully in projects that use this remote control system:

Custom Hardware Components

• PIC Based Remote Server Unit with embedded RCServer • PIC Based Handheld Unit with embedded RCClient. • PIC Based Pulse Width Modulation Servo controller • IOT RS232 Data Splitters, esp. for interface to DAS.

OTS Hardware Components

• Various IBM Compatible desktop and Notebook PCs

• Various Microsoft Windows compatible Joysticks and Racing Wheels: o Microsoft SideWinder Joystick

o Microsoft SideWinder Racing Wheel o Logitech MOMO Racing Wheel o Logitech NASCAR Racing Wheel o CH Products Flight Sim Yolk

• Initium Parani-SD Bluetooth Radio Modems • Microhard MHX-910 Spread Spectrum Modems • Manhattan Serial To USB Converters

• Programmable Servos and Motors (esp. for Slew Rate setting, etc.)

A Notebook PC equipped with Serial To USB Converters, Bluetooth modems, and a SideWinder Joystick, running RemoteControl7.

(13)

Installation

Install RemoteControl7 by simply copying it to the target machine, and then manually create a shortcut on the Windows desktop for easily launching the program.

RemoteControl7 was written in C# (using Microsoft Visual Studio 2005) and therefore it requires the Microsoft .NET Framework to run. Hence it may be necessary to install the .NET framework as well.

Minimum Requirements

• IBM PC compatible computer with Intel Pentium II processor, 500 MHz, 1GB RAM, 10 MB free disk space

• Microsoft Windows XP, service pack 2 recommended • Microsoft .NET Framework 2.0

Step-By-Step

1. Install Microsoft .NET Framework version 2.0.

If you already have this on your computer then there's no need to install it again. You can check to see if you already have it by clicking Start and select Settings, Control Panel, and then Add or Remove Programs. Look through the list for the item "Microsoft .NET Framework 2.0". If you can't find it then you need to install it. You can obtain it from Microsoft at the web page titled "Microsoft .NET Framework Version 2.0 Redistributable Package (x86)":

http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en

Follow the instructions on the web page.

2. Copy the RemoteControl7 software to the target machine.

Copy the entire RemoteControl7 directory, including its subdirectories to the target machine. The RemoteControl7 directory can be found on the backup CD or from IOT’s shared network drives. It is archived to \\knarr\soft-eng\IOT Software\Remote Control

3. Manually create a shortcut on the Windows desktop for launching RemoteControl7.

Right-click on empty space on the Windows desktop and select New and then

Shortcut. Click Browse and navigate to the subdirectory containing the RemoteControl7 executable. Assuming RemoteControl7 was copied to the root, this sub-directory would be “C:\ RemoteControl7\

RemoteControl7\bin\Debug”. Select RemoteControl7.exe from the file list. Click Next and then Finish to create the shortcut.

(14)

Running RemoteControl7

First Time Start-up Screen

The first time RemoteControl7 is started up there is no configuration file, so RemoteContol7 defaults to a “New” configuration.

All Preset and Relay buttons are visible and unused. The slider controls are visible and uncalibrated, but labelled for their most likely functions. No autopilot is configured and therefore Autopilot controls and Communications status information are disabled and not visible. Joystick User-Interface options are visible, and a message on the status bar will indicate whether or not a joystick, racing wheel, or flight simulator yoke has been detected.

The name of the configuration file is indicated on the status bar. It will be highlighted in yellow to indicate that unsaved changes have been made, and thereby the operator is prompted to save the file.

(15)

Normal Start-up

The last known good configuration file is always loaded by default, and its file name is indicated on the status bar. The following example shows RemoteControl7 configured to control two axes that are calibrated in user units for the range of operation. Unused Preset and Relay buttons have been hidden from view. Autopilot capabilities have been enabled and the checkmark beside “Kalman Filter” indicates that Kalman filtering is being used. Since there is a single thrust axis the “Lock Thrust” button is not visible. The operator has also configured the thrust slider to display in a large font, and has selected various colours and labels that are meaningful to him.

(16)

Configuring RemoteControl7 for a New Project

Configuring RemoteControl7 is achieved by using the menu functions on the main menu bar.

The first item on the menu bar is File. This provides control over configuration files, with

New, Open, Save and Save As capabilities.

The status bar displays the name of the configuration file currently in use. When a change is made to the configuration the file name is highlighted in yellow to indicate that the change should be saved in order for it to be restored on restarting.

A new (unconfigured) condition can be created at any time by choosing File and then

New. The word “New” is displayed in the file name area of the status bar, and

highlighted in yellow to indicate that the configuration is to be saved in a new file. The first time RemoteControl7 is started there is no configuration file present, and hence it defaults to a new condition.

An existing configuration file can be loaded from the main menu by choosing File and

Open. The familiar Windows file dialog opens to allow the file name to be selected. Similarly, saving the configuration is done by selecting File and Save, or File and Save

As if a new configuration file is to be created. Configuration files are saved in Extensible Mark-up Language (.xml) format.

(17)

Setting Up The User Interface

To start the process of setting up the user interface chose User Interface from the main menu and then select Slider Configuration. A screen opens to display the “Control Panel Configuration Options” form.

Use this panel to select the number and configuration of thrust axes sliders to be displayed on the main screen.

Configuring Axes

Although this remote control system provides the capability of controlling up to eight axes, four are available for configuration and four are reserved for future development. Of the four available axes, the first is normally used for rudder angle and the remaining three axes are defaulted to the functions that are historically used most frequently: port thrust, starboard thrust and bow thrust. However, all of these axes may actually be used for whatever function is needed for the project.

Select single or twin screw and check “present” if a bow thruster is to be displayed. The selected axes will be displayed on the main screen and from there they may be renamed, mapped to a joystick and calibrated appropriately.

Axis 0 is defaulted to Rudder Angle control, and is usually mapped to the autopilot when it is enabled. It is always displayed on the main screen; but if needed, this axis may also be renamed, remapped and calibrated appropriately for other purposes.

(18)

If “Single Screw” mode is selected one vertical thrust slider is displayed on the main screen and the thrust lock button is not displayed. There are two channels on the remote onboard unit that are normally assigned to thrust axes. In single screw mode only one of these channels is to be used. The channel to be used must therefore be mapped, and this is done by selecting it from the “Channel” drop-down box.

If “Twin Screw” mode is selected two vertical thrust sliders are displayed on the main screen and the thrust lock button is made available. Differential thrust is possible on a twin-screw model. If differential thrust is not required the Thrust Lock button can be used to “lock” the thrust of both axes to the same value.

Autopilot Controls

To configure autopilot controls chose User Interface from the main menu and then select

Autopilot Configuration. A screen opens to display the “Autopilot Configuration” form.

Use this form to configure the type of Autopilot required, and to enter default values for the Kalman filter’s linear quadratic regulator, if Kalman filtering is to be used.

The RemoteControl7 autopilot uses heading feedback from the model under test to compute the instantaneous error in heading. It applies proportional and differential gains

(19)

to the heading error to compute a rudder control signal for steering the model, and it filters the rudder control signal by using a dead band setting to prevent over-articulation of the rudder, especially when the model is moving in waves. If Kalman filtering is selected, model position updates are smoothed by the Kalman filter and wave induced motions are filtered out, thus eliminating the need for dead band.

If autopilot functionality is not required for the project then select the option “No Autopilot”. Autopilot functionality will not visible on the main screen. Select the option “Course Keeping Autopilot” to enable the course keeping autopilot panel on the main screen. Or select “Zig-Zag Autopilot” to enable the zigzag autopilot panel on the main screen. When course keeping or zigzag autopilot is selected the options to “View Raw Data Stream” and “Use Kalman Filtering” become available.

If “Use Kalman Filtering” is unchecked then “Kalman Filter Parameters” are disabled to indicate that they are not required. Otherwise the Kalman filter parameters are enabled and default values are displayed.

Check “View Raw Data Stream” if you wish to see the live data streaming in on the configured communications port. It will be displayed in an area below the

Communications panel on the main screen. This is useful for diagnosing communications problems.

Use “Map To Axis” to map the autopilot command stream to one or more axis, by marking the appropriate axis checkbox. This is useful for models with more than one steering device, such as twin rudders or dual azimuthing pods. Traditionally, axis 0 is mapped to the autopilot.

The course keeping autopilot can be used with or without Kalman filtering. Kalman filtering serves two purposes: it provides smoothed model position values (esp. yaw rate) when feedback of position updates is not reliable; and it provides a rudder command signal that has been filtered to reduce articulation induced by wave motions. If this project does not require Kalman filtering the “Use Kalman Filtering” option should be unchecked. The “Kalman Filter Parameters” panel becomes disabled and the dead band parameter may then be used to filter wave induced rudder articulation.

Beware! Invalid Kalman filter parameter values can cause the Kalman Filter calculations to become unstable and result in invalid rudder articulation.

Determination of the appropriate values for Kalman Filter parameters is specific to the model under test and to the test program. These values are critical to ensure correct filter computations and thereby correct automatic control.

The methodology used to determine the appropriate Kalman Filter parameter values is documented separately in the reports “An Autopilot System For Model Testing” (ref. 1) and “Autopilot System for Surface Manoeuvring of a Submarine” (ref. 2).

(20)

Select “Log Kalman Data” to have Kalman filter calculations saved to a file. This is useful when an examination of Kalman filter calculations is required for diagnosing the parameter values. When “Log Kalman Data” is checked, a new file containing Kalman filter calculation data is created each time the autopilot is engaged. The file name has the form “KF_yyyymmddhhmmss.csv” where yyyymmddhhmmss is a time stamp taken from when the autopilot button is clicked. The file is in comma-separated value (csv) format and it is created in the RemoteControl7 application directory. This feature should be unchecked when it is no longer needed to remove the additional CPU burden.

(Note that the ability to override the directory and base file name for the Kalman filter log file has not yet been implemented, and is therefore disabled on the form.)

Using Context Menus on the Main Screen

Once user interface options have been selected the controls on the main screen may be further configured by accessing specific context menus.

Context menus (also called pop-up menus) are activated by right-clicking the item to be configured. There are context menus for:

• Slider (axes) configuration • Preset button configuration

• Hiding and unhiding Preset buttons • Relay button configuration

• Hiding and unhiding Relay buttons • Autopilot button colours

• Enable Joystick button colours • Lock Thrust button colours

Configuring Slider Controls

Right-click the slider control to be configured and select a function from the pop-up menu. The functions available are: Setup, Calibrate, and Restore Defaults.

(21)

Setup Slider Controls

When Setup is selected from the pop-up menu on a slider control, the “Slider Control / Indicator Setup” form appears.

The “Slider Control / Indicator Setup” Form.

Use this form to customize the slider for the axis it controls. Use the Preview button at any time to see how the slider will look.

The value of the slider is displayed in the value box, which corresponds to the value at which the sliding button is set.

The “Orientation” may be left, right, top or bottom. This controls whether the slider is horizontal or vertical, and where the scale numbers and “Zero” button are placed relative to the slider bar.

(22)

The “Placement Coordinates” refers to the place on the main screen where the slider is to be located. It can be moved to any location on the main screen by entering values for “Top” and “Left”. Note that the location is given in pixels where the upper left corner of the window is location 0,0 and the lower right corner is location x-max, y-max.

The “Quantity being measured” is the title of the slider control. It appears above or below the instantaneous value displayed in the value box (depending on the orientation).

The “Units of Measurement” is a label for user-units that appears beside the “Quantity being measured” title. In order for these user-units to be correctly computed the slider must be calibrated (see Calibrating Slider Controls).

“Ramp Rate (user units/s) can be used to impose a ramp rate on the axis. (However, imposing a ramp rate on the sending side of the packet stream is generally not a good idea when radio transmission is involved. See “How Communications Effects Ramping” below.) Set this quantity to zero if ramping is not required. The ramp rate is intended for limiting the rate of change of the axis when the axis is commanding a device that cannot control it’s own ramping (slew) rate.

“Limit Text” is the word(s) that appears beside the slider scale when an attempt is made to set the slider beyond the lower or upper limits.

“Lower Limit” and “Upper Limit” are expressed in user-units. These values set the limits beyond which the slider will not go. When the slider is at a limit the “Limit Text” appears beside the value and the slider will not go beyond it.

The checkbox “Show Zero Button” is used to enable or disable the display of a “Zero” button beside the slider bar. Clicking “Zero” sets the slider to the calibrated zero value.

The “Background Colour” of the slider can be set by clicking the “Set Colour” button, which provides access to the Windows Color selector.

The “Font Size (pt)” sets the font size of the instantaneous value. It can be configured by selecting from the drop-down list of available font sizes.

The “Tick Spacing (%)” is used to determine how many tick marks are to be displayed on the slider bar.

Multiple joysticks may be used with RemoteControl7. “Joystick Number” refers to the identification number of the joystick to be mapped. The drop-down box will list all the available joysticks that have been detected on startup.

“Joystick Axis” is used to map one of the available joystick axes from one of the available joysticks, to the slider. Subsequently, when this joystick axis is moved, the slider bar updates to match the value of the joystick axis.

(23)

The checkbox “Invert” is used to reverse the mapping of the slider. This is useful when the polarity on the output device is backwards, but impractical to change in hardware.

How Communications Affects Ramping

“Ramping” refers to limiting the maximum rate of change of an axis. RemoteControl7 provides this capability, but it should be used with caution. Ramping over radio telemetry is generally not a good idea.

Some devices may not have the capability of limiting their own rate of change. For example, a motor controller may not have the capability of ramping the motor’s rotation speed up and down and thus pressing a preset button that changes a motor’s speed from 0 to 10 rps, or pressing stop, causes the motor to try to effect the change immediately. This may result in equipment damage.

RemoteControl7 can be configured to impose a ramp rate on devices of limited capability (See “Ramp Rate” in “Setup Slider Controls”) but this practice is not recommended where radio telemetry in involved.

The philosophy behind real-time data telemetry is to transmit as much data as possible from the packet source, and try to control conditions at the receiver so that as much data as possible gets through. This is analogous to a fire hose spraying water on a fire: some water will fall outside the fire, but enough will get through to satisfy the requirement. In the case of the control packets, enough data must get through to satisfy the requirement of controlling the remote device.

RemoteControl7 can only effect ramping at the Control Packet Update Rate, whereby each control packet will contain a portion of the command change, rather than the whole command change. But consider what happens if a packet is lost in transmission. The command unit receiving the packets receives a portion of the command change. Then, after a radio dropout, the motor remains at the portion of the change that was last

commanded. If the radio has dropped out entirely, the remote unit will never receive the complete command! In this situation the remote command unit will detect the loss of the data stream and immediately shut down all axes, effectively defeating any attempt to ramp by the RemoteControl7 application. Even if the radio has dropped out only for a short interval, the remote command unit receives a packet (after missing the intermediate packets) and resumes commanding the motor, which may still result in commanding the motor to change faster than it is capable of changing!

Ramping by RemoteControl7 is probably best used in situations where the radio link is guaranteed, or where the remote command unit is hard wired to the operator console PC.

(24)

Calibrating Slider Controls

When Calibrate is selected from the slider pop-up menu the “Calibration” form is displayed.

The Calibration Screen

The mapping of the slider value into real physical quantities measured in user-units is done through the “Calibration” form.

“Calibration” is the process of fitting a curve through a series of calibration points to determine a mathematical mapping between internal binary quantities and external physical movements.

A calibration point is worked out by setting the axis to a binary quantity (a DAC count) and measuring the corresponding actual physical quantity that is articulated by the hardware. This measurement, in user-units, is then input into the table of calibration points for the axis.

(25)

The “New Point” button is used to add a calibration point to the table. When “New Point” is clicked the “New Calibration Point” dialog appears.

The “New Calibration Point” dialog is used to set a binary value and input the measured corresponding physical movement. Usage tips are provided by hovering the mouse cursor over the “Usage Tips” button or by clicking it.

The device must be powered up and enabled for calibration to proceed. Enter a DAC count (that is, an internal binary quantity) and click “Do”. The hardware will move as soon as the “Do” button is clicked.

Caution! Make sure no one is in harm’s way before clicking “Do”.

Caution! Choose DAC count values carefully so that the hardware doesn’t get damaged, because this process can force the hardware beyond physical limits.

Measure and enter the corresponding physical movement in user-units and click “Accept” to add the new calibration point to the table of calibration points already done.

On the “Calibration” form, click the “Calculate” button to fit a curve through the calibration points. The fitted curve is displayed along with each calibration point on the graph. The point with the largest error value is highlighted in yellow. Points can be excluded from the calculation by checking the “Outlier” box, and the fitted curve can be re-calculated as often as needed. This version of RemoteControl7 allows only for linear fit. Once the calibration curve has been calculated satisfactorily click the “Accept” button to apply the calibration to the slider.

(26)

The option “Stay at mid-scale when no cal. is available.” refers to how the software behaves when “Remove All” is checked. This is to accommodate devices that are bi-polar, so that they remain at mid-scale which is physically zero. Otherwise they would go to zero scale, which would be physically full to one side!

The input box “Mechanical Trim” may be used to move the entire calibration line. This may be used, for example, to account for non-linearity in the calibrated device and force the device to go through physical zero.

(Polynomial curve fitting is reserved for future development.)

Setting Up Preset Buttons

The Preset button pop-up menu is accessed by right-clicking the Preset button of interest. The pop-up menu provides options for setting up the button, hiding it, or clearing it.

Clearing the button returns it to the default unassigned state. Select Setup from the pop-up menu to access the button setpop-up form.

Beware that if you accidentally click the Preset button, rather than right-clicking, the model may try to articulate whatever motion is currently associated with the button. It is a recommended safe practice to disable the model’s thrust before configuring a Preset button.

Before setting up a Preset button, first make sure the axis is not engaged by setting it to disabled, or by turning off communications.

With articulation disabled, you may configure a Preset button by using the controls on the main screen. First set the speed, rudder angle, etcetera, using the slider controls on the main screen, and then right-click the Preset button of interest and choose Setup from the pop-up menu. The current settings are gathered up to be saved with the button and the “Preset Button Setup” form will appear with the values already filled in. Then you can make adjustments or additional entries such as the text that you want to appear on the button face.

Alternately, you may simply right-click the Preset button and select Setup from the pop-up menu, and then type in any values that you want to set.

(27)

The “Preset Button Setup” form will display input boxes for only those axes that are enabled. Therefore, the axes should be configured prior to configuring Preset buttons.

The “Color” button provides access to the Windows color selector, to set the color of the button face on the main screen. Usage tips are available by hovering the mouse pointer over the “Usage Tips” button, or by clicking it.

When you have finished configuring the Preset button click the “Accept” button and the main screen is displayed. The file name on the main screen status line will turn yellow to indicate that you have made configuration changes that have not yet been saved to disc.

Remember to Save the Preset button settings by choosing File and then Save (or Save

As) from the main menu, so that your settings will not be lost.

Hiding and Unhiding Preset Buttons

As described above, Preset buttons that are not needed for the project may be hidden from view so that the main screen will appear less cluttered. There are additional hiding and unhiding features available that can be accessed by right-clicking on any whitespace on the “Presets” panel (that is, inside the “Presets” panel but outside of any Preset button). The hide/unhide pop-up menu will appear and provide options for hiding and unhiding any or all of the Preset buttons.

(28)

If all the Preset buttons are hidden the “Presets” panel is not displayed at all. In this case the “Presets” panel can be re-displayed by selecting “User Interface” and then “Unhide Preset Buttons” from the main menu.

Relay Button Mapping

When communications are established with the onboard remote command unit, clicking a Relay button causes the corresponding mapped relay onboard the model to open or close according to the way the Relay button properties are configured.

The Relay buttons on the “Relays” panel are mapped one-to-one to the relays onboard the remote command unit. Relay button 0 maps to relay 0, relay button 1 to relay 1 and so on. This mapping is hardcoded in this version of the software. (Refer to Appendix A: The Onboard Remote Command Unit)

Setting up Relay Buttons

Relay buttons may be configured to suit the project. Access the Relay button pop-up menu by right-clicking the Relay button of interest. The pop-up menu provides options for clearing the button (i.e. putting it back to the default unassigned state), for hiding the button (to make the main screen less cluttered), and for setting the properties of the button.

Beware that if you accidentally click the Relay button, rather than right-clicking, the mapped relay onboard the remote command unit may switch (on or off). Therefore, for safety purposes it is recommended that communications with the remote command unit be disabled during configuring of the Relay buttons. (As well, you can make use of the property of Relay buttons called “Prompt For Confirmation Before Allowing Click”, but this is not the default.)

(29)

Caution! Before setting up a Relay button, take precautions against accidentally switching something on or off. Disabling communications is one way to do this.

Relay buttons can be either “Command” type buttons or “Status” type buttons, and this is determined simply by the way you choose to label the button face. Before setting the Relay button properties, first decide whether the button should be a status type button or a command type button and then maintain this policy consistently when configuring the other Relay buttons, to help avoid confusion. Command type buttons are more prevalent, although status type buttons are easier intuitively to figure out.

For command type buttons the label on the face of the button should have the verb first. For example “Enable Rudder” says what will happen when the button is clicked. There is an implied future tense, and the rudder must therefore be currently disabled. For status type buttons the label on the face of the button should contain the word “is” and present tense is thus implied. For example “Rudder Is Enabled” lets you know the state of the rudder now and therefore that clicking the button will cause the rudder to become disabled. Compare this to “Rudder Enable”, which is more ambiguous in either case.

Set the properties of the Relay button by selecting Setup from the pop-up menu. The “Relay Button Setup” dialog will appear.

Usage tips are provided by hovering the mouse pointer over the “Usage Tips” button or by clicking it.

(30)

“Button Label For Logical 0 State” allows entry of the word(s) that are written on the button face when logical state 0 is being commanded. “Button Label For Logical 1 State” allows entry of the word(s) that are written on the button face when logical 1 state is being commanded.

The buttons “0 Color” and “1 Color” provide access to the Windows Color selector. “0 Color” is the color of the button face while a logical 0 is being commanded and likewise “1 Color” is the color of the button face while a logical 1 is being commanded.

“Time Delay Switching To Logical 1 (msec)” allows entry of a delay factor in

milliseconds between when the button is clicked and when it actually switches logical state to logical 0. Likewise, “Time Delay Switching To Logical 0 (msec)” allows entry of a delay factor in milliseconds between when the button is clicked and when it switches to logical 1.

“Polarity / Startup State” sets the normal polarity of the Relay button to “Low-Going-High” or “High-Going-Low” and determines what the startup state of the button will be. “Low-Going-High” buttons are set to logical state 0 upon startup, and “High-Going-Low” buttons are set to logical state 1 upon startup.

“Momentary” relays are relays that will automatically be returned to their normal state after a set period of time has elapsed (normal state being determined by the polarity setting). Enter the time duration in milliseconds that the relay should stay in the alternate state. For example, if a Relay button has been configured to have “Low-Going-High” polarity, and the “Time Delay Switching to Logical 1 (msec)” is set to 1000, and it is configured to be a “Momentary” with a duration “Time (msec)” of 2000, then when the Relay button is clicked the relay will remain at logical state 0 for 1 second, switch to logical state 1 for 2 seconds, and then revert to logical state 0. Loads of fun.

All times on this form are expressed in units of milliseconds. Realistically, the control packet update rate will have an effect on the minimum time values that can be set, since this sequence timing is done on the PC rather than in the remote command unit. Thus, for example, if the command packet update rate has been set to 1 second, then the minimum amount of time that can be realistically configured is 1 second.

“Prompt For Confirmation Before Allowing Click” is an option that helps to avoid accidental Relay button clicks. When this option is chosen a dialog box pops up

whenever the Relay button is clicked, that asks, “Are you sure?” Hence the button click can be cancelled if it was accidental. However, this can become a nuisance and over time it may become ignored by the operator.

When you have finished configuring the Relay button click “Accept” and the main screen is displayed. The file name on the main screen status line will turn yellow to indicate that you have made configuration changes that have not yet been saved to disc.

(31)

Hiding and Unhiding Relay Buttons

Relay buttons that are not needed for the project may be hidden from view by selecting

Hide on the pop-up menu. This is to help keep the main screen less cluttered for the operator. There are additional hiding and unhiding features available that can be accessed by right-clicking on any whitespace on the “Relays” panel (that is, inside the “Relays” panel but outside of any Relay button). The hide/unhide pop-up menu will appear and provide options for hiding and unhiding any or all of the Relay buttons.

If all the Relay buttons are hidden the “Relays” panel is not displayed at all. In this case the “Relays” panel can be re-displayed by selecting “User Interface” and then “Unhide Relay Buttons” from the main menu.

Setting Colours for Autopilot, Enable Joystick, and Thrust Lock Buttons

Right-click the Autopilot, Enable Joystick, or Thrust Lock Button and a pop-up menu appears whereby the colours for the two states of the button can be set.

When an option is selected from the pop-up menu the Windows Color selector is

displayed. The colour choice takes effect immediately (although the button may be in the opposite state so you may have to click it to see the colour change).

When the colours have been set remember to select File and Save (or File and Save

(32)

Autopilot

The options for autopilot are “Course Keeping”, “Zig-Zag” or “No Autopilot”. From the main menu, select the required Autopilot by clicking on “User Interface” and then “Autopilot Configuration”. Refer to “Setting Up The User Interface” above.

Course Keeping Autopilot

When Course Keeping Autopilot is selected a panel titled “Course Keeping Autopilot” appears on the main screen. This panel provides the capability of turning on and off the autopilot and controlling various dynamic properties of the autopilot. It also allows for input of the Set Point and provides feedback of settings and measurements.

Quantities reported on the autopilot panel are updated at a rate of twice per second.

In order to produce acceptable performance the autopilot must receive acceptable feedback measurements of instantaneous yaw rate of the model under test.

Feedback quantities from sensors are received asynchronously. That is, data received on serial ports is input as soon as it is received. However, data is fed to the Kalman filter, if selected, at a constant rate of 20 samples per second.

(33)

The autopilot panel has a button for engaging and disengaging the autopilot. The colour of the On and Off states of the button can be set by right-clicking the button and

accessing the Windows Color selector from the pop-up menu. This button can also be mapped to a joystick button.

The “Set Point Angle (deg relative)” can be entered in the textbox and then commanded by clicking the “Set” button. The textbox turns red to indicate that the set point has been changed on the form but not yet commanded. It reverts to its normal colour when “Set” is clicked. The autopilot will try to maintain the given set point angle relative to model zero yaw.

Instantaneous measured “Yaw Rate (deg/s)” is displayed. This measurement is received from the inertial motion sensor that is configured from the Communications menu. (See Communications).

“Yaw (deg)” from rate sensors is calculated by integrating the instantaneous yaw rate measurement.

The instantaneous yaw rate is prone to drift when the inertial sensor is stationary, and therefore the integrated yaw must be zeroed before each model test run, and it needs to be periodically tared to remove any offset caused by sensor drift. Also, the pitch rate may need to be tared to remove any offset. This is done from the “Determine Tare Values” dialog that is accessed by clicking the “Set Tare” button.

Enter “Tare Interval (s)” in seconds over which instantaneous measurements will be captured and averaged, and then press “Go” to start the capture. The sensors (and therefore the model) must be held rigidly at zero during the capture of tare values. The computed tare values are displayed as “Yaw Rate Tare (deg/s)” and “Pitch Rate Tare (deg/s).” Alternatively, the tare values can be overridden by simply entering them in the textboxes. Click the “Accept” button, and the tare values are updated on the autopilot panel. The file name on the status bar of the main screen will turn yellow to indicate that

(34)

Remember to use File and Save (or File and Save As) to save the new tare values in the configuration file, so that they will not be lost.

The autopilot panel also displays the current settings of proportional gain and differential gain, and reports whether the slider is inverted under autopilot control. These parameters may be modified by clicking the “Settings” button, which displays the “Autopilot

Settings” dialog.

Autopilot computes the rudder command signal by applying proportional and differential gains to the yaw error, which is the difference between the set point angle and the

instantaneous heading.

Dead band is used to prevent over-articulation of the rudder, which could result in undue wear on the rudder servomechanism and may actually induce roll motions that would affect the model test results. The change in the rudder command signal must be greater than or equal to the dead band quantity before the autopilot will articulate the change in the rudder command signal. Dead band is only applicable about the zero mark.

When “Use Kalman Filtering” has been selected on the “Autopilot Configuration” form, the autopilot panel will display “Kalman Filter” with a check mark beside it. Note that when Kalman filtering is used, dead band is not applicable since the Kalman Filter itself handles rudder command signal filtering. With Kalman filtering selected, the Settings button will display a different form, than the form displayed when no Kalman filtering is required.

(35)

The “Autopilot with Kalman Filter Configuration” form allows input of Nomoto, Gain and Oscillatory parameters. These values are worked out externally to RemoteControl7 prior to the test program. They are usually prepared in a spreadsheet and may be manually typed in here.

Note that the capability to read the spreadsheet directly has not yet been fully implemented and is therefore disabled (grayed out) on this form.

Zig-Zag Autopilot

When Zig-Zag Autopilot is selected a panel titled “Zig-Zag Autopilot” appears on the main screen. This panel provides the capability of turning on and off the autopilot and controlling various dynamic properties of the autopilot. It also allows for input of the Heading Angle and Rudder Angle set points and provides feedback of settings and measurements.

(36)

In order to produce acceptable performance the autopilot must receive acceptable feedback measurements of instantaneous yaw rate of the model under test.

Feedback quantities from sensors are received asynchronously, and are used as soon as they are received. Quantities reported on the autopilot panel are updated at a rate of twice per second.

The autopilot panel has a button for engaging and disengaging the autopilot. The colour of the On and Off states of the button can be set by right-clicking the button and

accessing the Windows Color selector from the pop-up menu. This button can also be mapped to a joystick button.

The “Heading Angle (deg)” and “Rudder Angle (deg)” set points can be entered in the textboxes and then commanded by clicking the “Set” button. The textboxes turns red to indicate that the set point has been changed on the form but not yet commanded. They revert to normal colour when “Set” is clicked. The autopilot will try to zigzag between the positive and negative value of the heading angle set point, by articulating the rudder back and forth between the positive and negative value of the rudder angle set point.

Instantaneous measured “Yaw Rate (deg/s)” is displayed. This measurement is received from the inertial motion sensor that is configured from the Communications menu. (See Communications).

“Yaw (deg)” from rate sensors is calculated by integrating the instantaneous yaw rate measurement.

(37)

The instantaneous yaw rate is prone to drift when the inertial sensor is stationary, and therefore the integrated yaw must be zeroed before each model test run, and it needs to be periodically tared to remove any offset caused by sensor drift. The method for taring the yaw rate sensor is the same as in “Course Keeping Autopilot” above.

Communications

RemoteControl7 transmits control signals and receives data signals through the PC’s serial communications ports in the form of IOT Packets (See IOT Packet Protocol).

Communications are configured by the “Control and Data Signal Setup” form, which is accessed by selecting “Communications” from the main menu.

The “Control and Data Signal Setup” form allows for configuring the “Control Signal” port and its “Packet Update Rate”. It also allows for configuring input from two motion-sensing devices, if autopilot functionality is required.

From this panel the PC serial ports and baud rates may be selected and each port may be enabled. Ports are disabled by default upon first start-up, but once ports are configured and enabled they are automatically re-enabled at each subsequent restart.

The “Control Signal” panel allows the Packet Update Rate to be selected. Also, it provides for the selection of a 12 or 16 bit data stream. The embedded remote command

(38)

provides better precision and is for use with PC type controllers (such as with the Unidex 500 controller).

The “Inertial Sensor Data” panel has options for various motion-sensing devices, and it allows for choice of data channel and input of calibration factors.

The “Secondary Inertial Sensor” panel is provided for an ad-hoc case, whereby data may be blended from two inertial motion sensors.

The host computer must have serial ports available for sending and receiving packets. A notebook computer that is not equipped with standard RS-223 serial ports may still be used as a RemoteControl7 host by using Manhattan (or other brand name) Serial To USB Converters. These devices plug into the host computer’s USB port at one end, and

provide the standard DB9 serial connector at the other. Internally, the driver for the Serial To USB converter causes Windows XP, and thereby RemoteControl7, to detect standard serial ports.

The Communications panel on the main screen is visible when autopilot functionality has been selected (see Autopilot Controls, in Setting Up The User Interface). This panel may be configured to show the live data stream through the “View Raw Data Stream” option on the “Autopilot Configuration” form.

Quantities reported on the Communications panel are for assessing the health of data reception. These values are computed asynchronously and updated on the screen at a rate of twice per second.

An exclamation mark enclosed in a red circle indicates that there is a problem with the value. Hover the mouse cursor over the exclamation mark and more information is displayed in a pop-up box.

(39)

Joystick User Interface

The User Interface panel on the main screen provides options for enabling or disabling the joystick(s), locking or unlocking the thrust, and choice of steering and thrust or steering only.

The option “Steering and Thrust” provides complete joystick control of the model by the mapped joystick axes. In this mode Preset buttons clicks are ignored.

The option “Steering Only” is intended to be used in conjunction with the Preset buttons. When “Steering Only” is selected the sliders that are mapped for steering control are enabled on the configured joystick axis, but the thrust sliders are not. Instead, the thrust sliders are controlled by mouse or by Preset buttons (which may be mapped to joystick buttons!). Rudder angles contained within Preset buttons are ignored in “Steering Only” mode.

The autopilot, when it is engaged, takes over rudder angle control. Speeds may still be selected by Preset button click while the autopilot is engaged.

Differential Thrust

Differential thrust, such as may be found in twin-screw or dual azimuthing podded propeller models, may be supported by using two joysticks, by using two joystick axis on one joystick, by locking thrust, or by using the mouse or preset buttons.

Locked thrust is best accomplished by mapping both shafts to the same joystick axis.

When thrust is “Locked” by clicking the “Lock Thrust” button, changes by mouse to one thrust axes are mirrored on the other.

(40)

Mapping the Joystick

The joystick buttons may be mapped to program functions by using the

“Joystick/Joywheel Button Mapping” form, which is accessed by selecting “User Interface” and then “Map Joystick Buttons” from the main menu.

Select the program function that will be mapped to the button, by clicking the “mapped Program Functionality” column and then selecting a program function from the drop-down list.

Note that if two or more joysticks are used, the buttons on one are mapped the same as the buttons on the others. That is, one map for all. Pressing button n on one joystick produces the same effect as if it were pressed on any other joystick.

(41)

Program functions available for mapping:

Program Function Description

Joystick Enable Turns on joystick functionality. (See note 1) Joystick Disable Turns off joystick functionality.

Joystick Toggle If joystick is enabled it is disabled, if joystick is disabled it is enabled.

Autopilot Off Disengage the autopilot. Autopilot On Engage the autopilot.

Autopilot Toggle If autopilot is engaged it is disengaged, if autopilot is disengaged it is engaged.

Preset 0 Click Preset 0 button. Preset 1 Click Preset 1 button. Preset 2 Click Preset 2 button. Preset 3 Click Preset 3 button. Preset 4 Click Preset 4 button. Preset 5 Click Preset 5 button. Preset 6 Click Preset 6 button. Preset 7 Click Preset 7 button. Preset 8 Click Preset 8 button. Preset 9 Click Preset 9 button. Preset 10 Click Preset 10 button. Preset 11 Click Preset 11 button. Relay 0 Click Relay 0 button. Relay 1 Click Relay 1 button. Relay 2 Click Relay 2 button. Relay 3 Click Relay 3 button. Relay 4 Click Relay 4 button. Relay 5 Click Relay 5 button. Relay 6 Click Relay 6 button. Relay 7 Click Relay 7 button.

Steering and Thrust Selects the Steering and Thrust option for joystick control and disengages the autopilot. Disables commands from Preset buttons.

Steering Only Selects the Steering Only option for joystick control. Enables commands from Preset buttons, but ignores any rudder commands embedded in the Preset.

Zero Yaw Re-zero drift prone yaw rate sensor. Use prior to starting a test run to reset calculated yaw to 0 degrees (making it relative).

Note that if a joystick is detected it is polled constantly for input, even when disabled by the user; joystick activity from a disabled joystick is simply ignored by RemoteControl7. The joystick enable function is an exception. That is, a disabled joystick can be enabled by pressing a joystick button, if the button is mapped to that functionality.

(42)

Joystick button numbers (0 to 15), axes names (x, y, z, r, u, and v), and point-of-view (hat) button can be discovered by using the “Verify Joystick Functionality” dialog, which is accessed from the “Joystick Button Mapping” form by clicking the menu item “Check Joystick Capabilities.” (“Verify Joystick Capabilities” is also available from the main menu “Help” item.)

The “Verify Joystick Functionality” form responds to user interaction with the joystick device(s). Therefore the user may change the joystick’s buttons or axes one at a time and observe the change that is reported on this form.

Note that the Windows Control Panel: Game Controllers window (Advanced button) provides the ability to force which joystick will be the first joystick.

(43)

Future Development

• Flexible relay mapping and enabling of additional 8 relay buttons. • Course keeping autopilot refactoring and enabling input via worksheet. • Macro recorder autopilot.

• Incorporate automatic gain calculation based on model properties. • High order fit to calibration points.

• Joystick axis from fixed linear to variable mapping to enlarge the “zero” area. • Map delta joystick axis to functions such as disengage autopilot.

(44)

List of References

1. J. Millan, E. Kennedy, G. Janes, and D. Cumming, “An autopilot system for model testing,” Laboratory Memorandum LM-2004-01, Institute for Ocean Technology, St. John’s, Newfoundland, February 2004. Limited Distribution.

2. J. Millan and G. Janes, “Autopilot System for Surface Manoeuvring of a Submarine,” Laboratory Memorandum LM-2008-06, Institute for Ocean Technology, St. John’s, Newfoundland, December 2008.

(45)

Trademark Information

Gyrochip® II is a registered trademark of BEI Systron Donner Inertial Division, Concord, California, U.S.A.

IBM® is a trademark of International Business Machines Corp., Armonk, New York, U.S.A.

Pentium® II is a trademark of Intel Corporation, Santa Clara, California, U.S.A.

SideWinder® is a trademark, and Microsoft Windows XP, Microsoft .NET Framework, Microsoft Visual Studio, Microsoft C# and Microsoft Excel are copyright Microsoft Corporation, Redmond, Washington, U.S.A.

MOMO® Racing Wheel, is a registered trademark of Logitech, Fremont, California, U.S.A.

Flight Sim Yoke© is copyright CH Products, Vista, California, U.S.A.

Crossbow® Fibre-Optic Gyro is a registered trademark of Crossbow Technology, Inc., San Jose, California, U.S.A.

PIC® is a trademark of Microchip Technology Inc., Chandler, Arizona, U.S.A.

Bluetooth® is a trademark owned by the Bluetooth Special Interest Group (SIG), Washington, U.S.A.

Parani® SD is a trademark of Sena Technologies, Inc., San Jose, California, U.S.A.

MHX-910 is copyright Microhard Systems Inc., Calgary, Alberta, Canada

All other products or services mentioned in this document are trademarks or registered trademarks of their respective holders.

(46)

Appendix A: The Onboard Remote Command Unit

The onboard remote command unit that was designed and fabricated at IOT, is installed onboard the free-running model. It runs embedded firmware (RCServer) that accepts command signals that conform to the IOT packet protocol. The command signal is received through a serial input port that may be equipped with a radio telemetry device, such as a Bluetooth spreadspectrum modem. The remote command unit interprets each packet and produces the drive signals that command the model’s actions. The firmware monitors the timing and quality of the data stream.

The remote command unit incorporates a 16F877a PIC microcontroller. The embedded RCServer firmware was written in standard C, and it provides command stream

validation, fail-safety, and articulation of commands.

Remote Control Unit

• Based on a PIC microcontroller, 16F877a

• Requires a single 13.5 volt supply at less than 200mA

• Contains four 0 to 5 volt analog outputs and four +/- 10 volt outputs, at 12-bit resolution and +/- 0.5 bit nonlinearity over a wide temperature range

• Contains drive circuitry for eight DPDT relays

• Provides command signals to motors, servos, actuators

• Provides control signals to pumps, fans, lights, solenoids, video and data recording systems, etc

• Receives command packets through a serial port, which is connected to the PC port via a radio link

• Checks the validity of the command packets and shuts the system down in the event of a communication loss.

(47)

Relay Map

RemoteControl7

Relay Button Relay Port Bit e.g. Typical Function 0 LS1 RA5 Main Power Relay 1 LS2 RB1 Rudder Enable 2 LS3 RB2 Motor Enable 3 LS4 RB3 Power Monitor Reset 4 LS5 RA1 Rudder Home Momentary 5 LS6 RB5 Bilge Pump 6 LS7 RB6 Intake Fan 7 LS8 RD5 Exhaust Fan

There is also a special version of the embedded firmware called RCServerMirrorDAC. This version of the software duplicates the drive signal that is output on the first +/-10V DAC channel to the first 5V DAC channel, the second +/-10V channel to the second 0-5V channel, and so on for all 4 channels. This firmware is useful for designing a remote control solution when interface voltages are unknown beforehand.

RCServerMirrorDAC Map

RemoteControl7 Channel

DAC Channel (0-5V)

Mirror DAC Channel (±10V)

e.g. Typical Function

0 DAC0, A DAC3, B Rudder Angle 1 DAC0, B DAC4, B Stbd. Shaft Speed 2 DAC0, C DAC4, A Port Shaft Speed 3 DAC0, D DAC3, A Bow Thruster 4-7 Reserved Reserved

(48)

Appendix B: The Handheld Operator’s Unit

For convenience in verifying and testing setups, a handheld control unit may be used in conjunction with (or in lieu of) a PC running RemoteControl7. The handheld unit is fabricated at IOT and is based on an 8-bit microcontroller that runs embedded firmware (RCClient) that implements the IOT packet protocol. The embedded firmware takes input from switches and potentiometers on the handheld box, and translates the input into digital control commands. It uses a serial output port equipped with a radio telemetry device to transmit control command packets to the remote command unit at the required rate.

Handheld Controller Unit

• Based on a PIC microcontroller, 16F877a

• Runs on an internal 9 volt battery, or can be connected to an external power source.

• Uses a wired or wireless serial port connection to the remote command unit • Input from control knobs and switches is converted into command packets and

transmitted to the remote command unit

• Allows for a convenient way of performing functional checks, setting up models prior to testing, and troubleshooting

• Each switch on handheld unit is mapped to a corresponding relay on the remote command unit

Références

Documents relatifs

Si necesitas restablecer tu control remoto, presiona y mantén los botones Modo y Obturador simultáneamente durante 8 segundos.. ADVERTENCIA: No lo uses con The Remote mientras

If the power at a work station is switched off, or if a communication failure prevents a work station from responding to commands from the 5394 while the C5 test is running,

AAA at the headend protects hosts and services there from unauthorized access via interposition in the connection (a man-in-the-middle attack), but it does not necessarily protect

Velleman Group nv dispone de los derechos de autor para este manual del usuario.. Todos los derechos

in [7]: they consider multiple clusters of users that wish to exchange messages locally within each cluster, with the help of a single relay.. Achievable rates for DF, CF, AF and

One of the ways to solve the problem is to form relationships between elements of different systems during the design and development of control systems, which allow

As Accenture’s CIO, Andrew Wilson, argues, “the greater the degree of organizational focus on people helping AI, and AI helping people, the greater the value achieved.”

From the point of view of LPV systems, the design of nonlinear switching surfaces is seen as the synthesis of Parameter Dependent Relay (PDR)R. For the sake of generality we consider