Multichannel controller

Multichannel device controllers are disclosed. In one embodiment, a multichannel device controller includes a plurality of user selectable control modes for controlling a multichannel device and a plurality of user configurable settings for adjusting parameters associated with the plurality of user selectable control modes. A touchscreen displays a user interface corresponding to a selected one of plurality of user selectable control modes and receives user input indicative of a command to send to the multichannel device. A processor generates the command to send to the multichannel device based at least in part on the user input and the plurality of user configurable settings.

BACKGROUND

Multichannel controllers are commonly used to control a wide variety of systems. For example, a multichannel controller can be used to control a pan and tilt camera system. In such a case, one channel of the multichannel controller may be used to control pan motion of the pan and tilt camera system, and another channel of the multichannel controller may be used to control tilt motion of the pan and tilt camera system. One method of providing multichannel control has included using controllers with physical joysticks. Positioning of the physical joysticks causes signals to be sent to the system being controlled.

SUMMARY

An aspect of the disclosure relates to multichannel device controller. In one embodiment, a multichannel device controller includes a plurality of user selectable control modes for controlling a multichannel device and a plurality of user configurable settings for adjusting parameters associated with the plurality of user selectable control modes. A touchscreen displays a user interface corresponding to a selected one of plurality of user selectable control modes and receives user input indicative of a command to send to the multichannel device. A processor generates the command to send to the multichannel device based at least in part on the user input and the plurality of user configurable settings.

These and various other features and advantages that characterize the claimed embodiments will become apparent upon reading the following detailed description and upon reviewing the associated drawings.

DETAILED DESCRIPTION

Embodiments of the present disclosure include multichannel controllers. In certain embodiments, multichannel controllers are used to control motion of pan and tilt camera systems. Embodiments are not however limited to any particular setting. Those skilled in the art will appreciate that although some embodiments are described in the context of pan and tilt camera systems, that embodiments are not limited to pan and tilt systems and can be used in other settings. Additionally, the present disclosure presents several examples of user interfaces that can be used to implement multichannel controllers. Those skilled in the art will appreciate that embodiments are not limited to the specific user interfaces shown in the figures and may include any one or more combination of features shown in the example interfaces.

Embodiments of multichannel controllers are implemented using any suitable computing device. In one configuration, a controller is implemented using a smart phone such as an Android based phone or an iPhone. Alternatively, a controller can be implemented using a specially chosen device.

In one embodiment, a multichannel controller sends signals to pan and tilt motors to control pan and tilt motions of a camera. In one configuration, each motor is capable of receiving a signal that indicates a direction of rotation (e.g. clockwise or counterclockwise) and a speed of rotation (e.g. 0-100% of the maximum rotational speed of the motor).

FIG. 1shows a handheld device100that is used to implement a multichannel controller. Handheld device100includes a touchscreen102that displays user interfaces of the controller. Each of the user interfaces includes a main portion104and an icons portion106(e.g. a scrollable icons taskbar). Icons portion106includes icons108that are used to configure various control modes and settings of a multichannel device. As will be described in greater detail below, the application may include more icons108than can be shown in icons portion106. In such a case, a user can scroll the icons to the left or right to view additional icons. For instance, in the example shown inFIG. 1, only five icons108are shown in icons portion106. A user can view icons to the left of the five icons108by touching any part of icons portion106and moving it to the right. Similarly, a user can view icons to the right of the five icons108by touching any part of icons portion106and moving it to the left. The left and right motion capability of icons portion106is represented by arrow110.

One of the icons108is a Control Mode Selector icon. Upon the Control Mode Selector icon being selected (e.g. by being touched), a Control Mode Selector interface is displayed in the main portion104of the user interface.FIG. 2shows one example of a Control Mode Selector interface200. Interface200includes a touchpad icon202, a joystick icon204, a trackball icon206, a touchpad/slider icon208, a touchpad/wheels icon210, a joystick/wheels icon212, and a trackball/sliders icon214. Selection of one of icons202,204,206,208,210,212, or214puts the controller into the corresponding control mode. An optional confirmation step may be implemented after selection of one the icons. For instance, upon joystick icon204being selected, a window may be displayed that states “Do you want to enter into the Joystick Control Mode? Yes/No.” The user can select “Yes” to enter the joystick control mode, or select “No” to return to the Control Mode Selector interface200.

FIG. 3shows an example of a controller in a touchpad control mode (e.g. after selecting touchpad icon202inFIG. 2). In the touchpad control mode, main portion104of the user interface is one solid color (e.g. white). Alternatively, main portion104may receive and display video from the camera in the pan and tilt system. A user is able to control the motors of the pan and tilt system by making touch gestures in the main portion104. Left-to-right and right-to-left touch gestures send signals to the pan motor to rotate, and up-to-down and down-to-up touch gestures send signals to the tilt motor to rotate. The rotational speed of the motors is dependent upon the speed of the touch gesture. For instance, a quick touch gesture sends a signal to the motor to rotate quickly, and a slow touch gesture sends a signal to the motor to rotate slowly. If a touch gesture includes a combination of up/down and left/right motions (e.g. a diagonal touch gesture), signals are sent to both the pan and tilt motors. In an embodiment, the controller is also able to control a zoom (e.g. optical or digital magnification of the camera). For instance, a user can make touch gestures associated with making an object larger to zoom in on an object, and can make touch gestures associated with making an object smaller to zoom out on an object. Additionally, a user can set the control mode of the controller to moving object track control mode. For instance, a user can select a moving object being displayed in main portion104, and the controller controls the camera to keep the moving object within the camera's field of view.

FIG. 4shows an example of a controller in a joystick control mode (e.g. after selecting joystick icon204inFIG. 2). In the joystick control mode, main portion104of the user interface includes a joystick icon402. A user is able to move the position of the joystick icon402by touching the icon and moving it in any direction (e.g. up, down, left, right, diagonally). The joystick icon402returns to its original position in the middle of main portion104when the user releases touch of the icon. In the joystick control mode, any left or right movement of the joystick icon sends a signal to rotate the pan motor, and any up or down movement of the joystick sends a signal to rotate the tilt motor. A combination of left/right and up/down movements (e.g. moving the joystick icon diagonally) sends signals to both the pan and tilt motors. The rotational speed of the motors is dependent upon the distance the joystick icon402is moved from its center/home position. For instance, moving the joystick icon402a small distance from its home position causes slow rotation, while moving the joystick icon402a greater distance from its home position causes faster rotation. In the joystick control mode, main portion104of the user interface is one solid color (e.g. white). Alternatively, main portion104may receive and display video from the camera in the pan and tilt system. In such a case, joystick icon204may be presented in transparent or translucent graphics such that a user can see video from the camera behind the joystick icon.

FIG. 5shows an example of a controller in a trackball control mode (e.g. after selecting trackball icon206inFIG. 2). In the trackball control mode, main portion104of the user interface include a trackball icon502. A user is able to simulate rotating trackball icon502by touching the icon and moving it in any direction (e.g. up, down, left, right, diagonally). The trackball icon502has simulated momentum. For instance, the trackball icon502will continue “rotating” for a brief period of time after the user has released touch of the icon502. In the trackball control mode, any left or right rotation of the trackball icon sends a signal to rotate the pan motor, and any up or down rotation of the trackball sends a signal to rotate the tilt motor. A combination of up/down and left/right rotations (e.g. rotating the trackball diagonally) sends signals to both the pan and tilt motors. The rotational speed of the motors is dependent upon the rotational speed of the trackball. Fast rotation of the trackball icon502sends signals to the motors to rotate quickly, and slow rotation of the trackball icon502sends signals to the motors to rotate slowly. In the trackball control mode, main portion104of the user interface is one solid color (e.g. white). Alternatively, main portion104may receive and display video from the camera in the pan and tilt system. In such a case, trackball icon502may be presented in transparent or translucent graphics such that a user can see video from the camera behind the trackball icon.

FIG. 6shows an example of a controller in a touchpad/sliders combination control mode (e.g. after selecting touchpad/sliders icon208inFIG. 2). In the touchpad/sliders combination control mode, main portion104of the user interface includes a touchpad section602, a pan slider section604, and a tilt slider section606. Touchpad section602functions in the same manner as the touchpad mode shown inFIG. 3. For instance, touchpad section602either shows a solid color or shows video from the pan and tilt system camera. A user can send signals to rotate the pan and tilt motors by making touch gestures in the touchpad section602.

Pan slider section604includes a moveable slider icon608that is able to be moved left and right within slider slot610. Tilt slider section606includes a moveable slider icon612that is able to be moved up and down within slider slot614. Movement of the pan slider icon608sends signals to the pan motor, and movement of the tilt slider icon612sends signals to the tilt motor. The rotational speed of the motors is dependent on how far the slider icons are moved from their center/home positions. Moving a slider icon further away from its center/home position causes faster rotation than a smaller move away from the center/home position. Additionally, similar to the joystick icon in the joystick mode, slider icons608and612move back to their center/home positions when touch is released.

FIG. 7shows an example of a controller in a touchpad/wheels combination control mode (e.g. after selecting touchpad/wheels icon210inFIG. 2). In the touchpad/wheels combination control mode, main portion104of the user interface includes a touchpad section702, a pan wheel icon704, and a tilt wheel icon706. Touchpad section702functions similarly to the touchpad modes shown inFIGS. 3 and 6. For instance, touchpad section702either shows a solid color or shows video from the pan and tilt system camera. A user can send signals to rotate the pan and tilt motors by making touch gestures in touchpad section702.

Pan wheel icon704and tilt wheel icon706are able to be rotated in either direction. Rotation of pan wheel icon704sends signals to the pan motor to rotate, and rotation of tilt wheel icon706sends signals to the tilt motor to rotate. The speed and direction of rotation of the wheel icons determine the speed and direction of rotation of the pan and tilt motors. Fast rotation of the wheel icons sends signals to the motors to rotate quickly, and slower rotation of the wheel icons sends signals to the motors to rotate slower. The wheel icons have momentum such that the wheel icons will continue to rotate after a user has released touch of the icons.

FIG. 8shows an example of a controller in a joystick/wheels combination control mode (e.g. after selecting joystick/wheels icon212inFIG. 2). In the joystick/wheels combination control mode, main portion104of the user interface includes a joystick icon802, a pan wheel icon804, and a tilt wheel icon806. Joystick icon802functions the same as joystick icon402inFIG. 4. Pan and tilt wheel icons804and806function the same as pan and tilt wheel icons704and706inFIG. 7. Similar to each of the other control mode user interfaces, in the joystick/wheels combination control mode, main portion104of the user interface is in one embodiment one solid color (e.g. white). Alternatively, main portion104may receive and display video from the camera in the pan and tilt system. In such a case, icons802,804, and806may be presented in transparent or translucent graphics such that a user can see video from the camera behind the icons.

FIG. 9shows an example of a controller in a trackball/sliders combination control mode (e.g. after selecting trackball/sliders icon214inFIG. 2). In the trackball/sliders combination control mode, main portion104of the user interface includes a trackball icon902, a pan slider icon904, and a tilt slider icon906. Trackball icon902functions the same as trackball icon502inFIG. 5. Pan and tilt slider icons904and906function the same as pan and tilt slider icons604and606inFIG. 6. Again, the background of the user interface may be one solid color or may display video from the camera. In such a case, icons902,904, and906may be presented in transparent or translucent graphics such that a user can see camera video behind the icons.

Another one of the icons108in icons portion106inFIG. 1is an Orientation Selector icon.FIG. 10shows an example of an Orientation Selector user interface1002that is displayed after the Orientation Selector icon is selected. Interface1002includes four icons1004,1006,1008, and1010that represent the four orientations that the controller may be positioned in (e.g. device bottom down, bottom to the right, bottom up, and bottom to the left). Selection of one of icons1004,1006,1008, or1010determines the orientation that the controller presents the user interfaces.

FIG. 11shows an example of an Inverted Axis Selector user interface1102that is displayed after an Inverted Axis Selector icon108is selected from icons portion106inFIG. 1. Interface1102includes a pan icon1104that can be toggled between on and off positions to invert control of the pan axis, and a tilt icon1106that can be toggled between on and off positions to invert control of the tilt axis. Toggling either icon1104or1106causes the direction of rotation for the axis to be reversed.

FIG. 12shows an example of a Maximum Rotational Speed Selector user interface1202that is displayed after a Maximum Rotational Speed Selector icon108is selected from icons portion106inFIG. 1. Interface1202includes four icons1204,1206,1208, and1210that can be set between 0 and 100% to set the maximum rotational speed of the motors.

FIG. 13-1shows an example of a Sensitivity Selector user interface1302that is displayed after a Sensitivity Selector icon108is selected from icons portion106inFIG. 1. Interface1302includes a pan axis portion1306and a tilt axis portion1308. Each portion1306and1308includes three radio buttons. A user can set the sensitivity of each axis to linear, non-linear, or custom. Additionally, a user can select edit buttons1310and1312to edit the customized sensitivity.FIG. 13-2shows an example of a Custom Sensitivity user interface1322that is displayed after one of the edit buttons1310or1312is selected. User interface1322includes a user editable sensitivity response line1324. A user can move response line1324up and down along the entire length of the line to set a custom sensitivity response. User interface1322includes a cancel button1326and a save button1328. A user can press the cancel button1326to undo any changes to response line1324and return to the previous screen, and a user can press the save button1328to save changes to response line1324and return to the previous screen.

FIG. 14shows an example of a Position Lock user interface1402that is displayed after a Position Lock icon108is selected from icons portion106inFIG. 1. Interface1402includes a pan position lock icon1404and a tilt position lock icon1406. Toggling either icon1404or1406from the off to the on position locks the corresponding motor at its current position.

FIG. 15shows an example of a Rotation Lock user interface1502that is displayed after a Rotation Lock icon108is selected from icons portion106inFIG. 1. Interface1502includes a pan axis portion1504and a tilt axis portion1506. Each axis portion includes an icon to toggle the rotation lock from the off to the on position. Each axis portion also includes a radio button to indicate the direction of rotation and a speed selector to select from 0 to 100% of the maximum rotation speed.

FIG. 16shows an example of an Accelerometer Selector user interface1602that is displayed after an Accelerometer Selector icon108is selected from icons portion106inFIG. 1. Interface1602includes a pan icon1604and a tilt icon1606. Toggling pan icon1604from the off to the on position causes rotation of the pan motor to be controlled by accelerometer feedback, and toggling icon1606from the off to the on position causes rotation of the tilt motor to be controlled by accelerometer feedback. In accelerometer control mode, the rotational speed of the motors is dependent upon the angle of the controller from a center/home position.

FIGS. 17-1,17-2,17-3, and17-4show examples of user interfaces associated with managing user profiles.FIG. 17-1shows a Manage Profiles user interface1702that is displayed after a Manage Profile icon108is selected from icons portion106inFIG. 1. Interface1702includes a save profile icon1704, a load profile icon1706, and a delete profile icon1708. Selection of save profile icon1704causes user interface1712inFIG. 17-2to be displayed. In interface1712, a user can save the current controller settings as a new profile by selecting the yes radio button1714or save the current controller settings as an existing profile by selecting the yes radio button1716. If the save as a new profile button1714is selected, the user is presented with a screen that enables the user to type in a name of the new profile. If the save as existing profile button1716is selected, the user is presented with a screen that enables the user to select one of the previously saved profiles.

FIG. 17-3shows a Load Saved Profile user interface1722that is displayed upon a user selecting the load profile icon1706inFIG. 17-1. Interface1722shows icons1724that represent the previously save profiles. Selection of one of icons1724loads the controller with the previously saved settings. A confirmation step is optionally displayed prior to changing the controller settings.

FIG. 17-4shows a Delete Saved Profile user interface1732that is displayed upon a user selecting the delete profile icon1708inFIG. 17-1. Interface1732shows icons1734that represent the previously saved profiles. Selection of one of icons1734deletes the previously saved profile. A confirmation step is optionally displayed prior to deleting the selected profile.

FIGS. 18-1,18-2,18-3, and18-4show examples of user interfaces associated with managing predefined motions.FIG. 18-1shows a Manage Motions user interface1802that is displayed after a Manage Motion icon108is selected from icons portion106inFIG. 1. Interface1802includes a record motion icon1804, a perform saved motion icon1806, and a delete saved motion icon1808. Selection of record motion icon1804causes user interface1812inFIG. 18-2to be displayed. In interface1812, a user can record a motion by toggling icon1814to the on position, and a user can enter a name for the recorded motion be selecting icon1816. In one embodiment, a user is able to record a motion by drawing a shape on the user interface. For instance, a user can draw and record a spiral motion, a circle, a line, a rectangle, or any other shape. The controller illustratively records both the shape of the drawing and the speed at which each portion of the shape is drawn. The controller translates the shape and speed into control commands for the multichannel device. For example, slowly drawn portions cause the multichannel device to rotate more slowly, and quickly drawn portions cause the multichannel device to rotate more quickly.

FIG. 18-3shows a Perform Saved Motion user interface1822that is displayed after the Perform Saved Motion icon1806inFIG. 18-1is selected. Interface1822includes icons1824that correspond to previously recorded/saved motions. Selection of one of icons1824causes the motors to perform the previously recorded/saved motion.

FIG. 18-4shows a Delete Save Motion user interface1832that is displayed after the Delete Saved Motion icon1808inFIG. 18-1is selected. Interface1832includes icons1834that correspond to previously recorded/saved motions. Selection of one of icons1834causes the selected motion to be deleted. A confirmation step is optionally displayed prior to deleting the motion.

FIG. 19shows one illustrative operating environment of a multichannel controller1902. Multichannel controller illustratively includes a touchscreen1904, input keys1906, a controller/processor1908, memory1910, a communications module/communications interface1912, and a housing/case1914. Touchscreen1904illustratively includes any type of single touch or multitouch screen (e.g. capacitive touchscreen, vision based touchscreen, etc.). Touchscreen1904is able to detect a user's finger, stylus, etc. contacting touchscreen1904and generates input data (e.g. x and y coordinates) based on the detected contact. Input keys1906include buttons or other mechanical devices that a user is able to press or otherwise actuate to input data. For instance, input keys1906may include a home button, a back button, 0-9 number keys, a QWERTY keyboard, etc. Memory1910includes volatile, non-volatile or a combination of volatile and non-volatile memory. Memory1910may be implemented using more than one type of memory. For example, memory1910may include any combination of flash memory, magnetic hard drives, RAM, etc. Memory1910stores the computer executable instructions that are used to implement the multichannel controllers. Memory1910also stores user saved data such as programmed maneuvers or profile settings. Controller/processor1908can be implemented using any type of controller/processor (e.g. ASIC, RISC, ARM, etc.) that can process user inputs and the stored instructions to generate commands for controlling systems such as, but not limited to, pan and tilt camera systems. The generated commands, etc. are sent to communications module/communications interface1914that transmits the commands to the controlled systems. Finally with respect to multichannel controller1902, the controller housing1914can be any suitable housing. In one embodiment, housing1914has a form factor such that controller1902is able to fit within a user's hand. Housing1914may however be larger (e.g. tablet sized) and is not limited to any particular form factor.

As is shown inFIG. 19, multichannel controller optionally communicates (e.g. wirelessly or wired) to a command translation unit1920. Command translation unit1920converts or transforms commands received from multichannel controller1902into the format that can be processed by the systems being controlled. It should be noted however that not all implementations include a command translation unit1920, and that in other embodiments, multichannel controller1902instead directly sends commands to the systems being controlled.

FIG. 19shows multichannel controller1902controlling N systems1932,1934, and1936. In an embodiment, multichannel controller1902can control any number of systems (e.g. 1, 2, 3, 4 etc.). A user is illustratively able to choose which system is being controlled by selecting the system from a user interface. For instance, controller1902illustratively includes a user interface that shows the user all of the systems that can be controlled (e.g. represents each system as a separate icon), and the user selects one of the systems. Alternatively, in certain embodiments, a user is able to control multiple systems at the same time. For example, in one embodiment, controller1902is able to control systems1932,1934, and1936at variable levels of autonomy (e.g. manual, semi-autonomous, or fully autonomous). Controller1902is able to control more than one system at a time and is able to control the systems at different levels of autonomy. One controlled system may for instance be performing a programmed maneuver or tracking an object, while another system may be in fully manual control mode.

In an embodiment, multichannel controller1902is able to control systems1932,1934, and1936in either an open loop mode or in a closed loop mode. In open loop mode, controller1902does not receive feedback from the controlled systems. For instance, controller1902does not necessarily know the position, speed, etc. of the controlled systems. However, in closed loop mode, controller1902does receive feedback from one or more of the controlled systems. Controller1902may for instance receive feedback indicating a position (e.g. angular position), speed, etc. of a pan and/or tilt motor. In such cases, controller1902is able to use the feedback in generating new commands for the systems. For instance, a user may wish to set a speed, position, etc. of a controlled system. Controller1902illustratively receives feedback from the controlled system indicating its current speed, position, etc., and the controller adjusts the command signal based on the current speed, position, etc. and based on the speed, position, etc. that is intended/desired by a user.

Finally, it is to be understood that even though numerous characteristics and advantages of various embodiments have been set forth in the foregoing description, together with details of the structure and function of various embodiments, this detailed description is illustrative only, and changes may be made in detail, especially in matters of structure and arrangements of parts within the principles of the present disclosure to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. In addition, although certain embodiments described herein are directed to pan and tilt systems, it will be appreciated by those skilled in the art that the teachings of the disclosure can be applied to other types of multichannel control systems, without departing from the scope and spirit of the disclosure.