2. The Field of the Invention
The invention relates to remotely controlling vehicles over a network and, more specifically, to providing centralized communication with a plurality of remotely controlled vehicles over a data network.
3. The Relevant Art
Remotely controlling scaled vehicles has been a popular hobby for many years. Children and adults are fascinated by the opportunity to control vehicles that normally are not available for use, such as military vehicles or trains. Scale replicas of racecars, boats, submarines, dune buggies, monster trucks, and motorcycles are among the vehicles that are widely available for remote control enthusiasts.
Modelers and manufacturers of scaled vehicles put forth considerable time and effort to attain a scaled vehicle with a life-like appearance. For many, great pleasure is derived from controlling a realistically scaled vehicle. Many methods have been developed to control scaled vehicles. Control mechanisms exist that utilize a physical connection, such as a cable, between the vehicle and the controller. This simple control mechanism is relatively inexpensive and easy to implement but requires that the user follow the vehicle. To overcome these limitations, radio control, or R/C, mechanisms have been developed.
Radio controllers facilitate the control of a vehicle through radio transmissions. By breaking the physical link between the vehicle and controller, R/C enthusiasts are able to participate in organized group events such as racing or with friends in what is known as “backyard bashing.” Additionally, R/C controllers have allowed scaled vehicles to travel over and under water, and through the air, which for obvious reasons was not previously possible with a cabled control mechanism.
Racing scaled versions of NASCAR™, Formula 1™, and Indy™ series racecars has become very popular because, unlike other sports, the public generally does not have the opportunity to race these cars. Although scaled racecars give the hobbyist the feeling of racing, for example, a stock car, remotely racing a scaled racecar may lack realism. In order to make a racecar visually interesting to the point of view of the racer, the racecar is normally operated at speeds that if scaled are unrealistic. Additionally R/C is limited by the amount of channels or frequencies available for use. Currently, operators of racing tracks or airplane parks must track each user's frequency and when all of the available channels are being used, no new users are allowed to participate.
A solution to this problem has been to assign a binary address to each vehicle in a system. Command data is then attached to the binary address and transmitted to all vehicles in the system. In an analog R/C environment, commands to multiple vehicles must be placed in a queue and transmitted sequentially; this presents a slight lag between a user control and response by the vehicle. Each vehicle constantly monitors transmitted commands and waits for a command with the assigned binary address. Limitations to this system include the loss of fine control of vehicles due to transmit lag, and ultimately the number of vehicles is limited because the time lag could become too great.
Accordingly, an apparent need exists for a system and method of remotely controlling a plurality of scaled vehicles over a data network. Beneficially, the proposed system and method would allow multiple vehicle operators to utilize the data network for control signal transmissions as well as for storing user profiles particular to each vehicle operator.
The present invention has been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available racing systems. Accordingly, the present invention has been developed to provide a computer controlled racing network that overcomes many or all of the above-discussed shortcomings in the art.
In accordance with the invention as embodied and broadly described herein in the preferred embodiments, an improved racing system is provided and configured to operate over a network. The racing system comprises at least one network interface connection and a server configured to communicate with a central processing unit of a vehicle over the network.
Additionally, the racing system comprises a user profile database residing within the server, and a plurality of user profiles residing within the user profile database. In one embodiment, the user profile comprises a user name, a race history, a skill level based upon the race history, and a vehicle performance profile. The racing system may also comprise a track marshal module operating within the server and configured to adjust vehicle performance dynamically, and override a user and safely control the vehicle.
In one embodiment, the racing system may comprise a behavior module operating within the server and configured to assign the user profile to a vehicle, assign the user to a position in a starting lineup of a race, and adjust the performance of the vehicle according to the skill level of the user.
The racing system may also comprise a vehicle controllable to move in a direction selectable remotely by a user. In one embodiment, the vehicle comprises a chassis configured to move about in response to vehicle control data from a user, a controller residing within the chassis configured to receive network switched packets containing the vehicle control data, and an actuator interface module configured to operate an actuator in response to the vehicle control data received by the controller. The controller may be configured to transmit vehicle data feedback to a user through a wireless network interface connection. Additionally, the controller may be configured to transmit visual data to the user, or transmit a 360° three dimensional view to the user.
In one embodiment, the racing system comprises a station from which a vehicle is remotely controlled. The station may comprise a vehicle control configured to generate vehicle control data in response to input from a user, and a transmission module configured to communicate with the vehicle control and transmit network switched packets containing the vehicle control data over a transmission medium to the vehicle. The transmission module may comprise a central processing unit and a network interface connection, the central processing unit configured to communicate with the network interface connection.
The racing system may also comprise a control apparatus for a vehicle controllable remotely over a network. In one embodiment, the control apparatus comprises a network interface connection configured to transmit and receive vehicle control data, a central processing unit configured to provide vehicle control data to the network interface connection, and an actuator interface module configured to receive vehicle control data from the central processing unit. Preferably, the control apparatus further comprises a video interface module configured to communicate visual data to the central processing unit, and a plurality of video cameras configured to provide visual data to the video interface module.
Additionally, the control apparatus may also comprise a Simple Network Management Protocol (SNMP) interface module residing within the central processing unit configured to operate an actuator.
A method of computer controlled racing over a network is also provided. In one embodiment, the method comprises providing a mobile vehicle configured to transmit and receive vehicle control data over a network, providing a server configured to transmit and receive vehicle control data, checking a user profile, assigning a performance profile to the vehicle, assigning a position to a user within the starting lineup of a plurality of racing vehicles, transmitting vehicle control data, controlling the mobile vehicle in response to the transmitted vehicle control data, receiving vehicle feedback data from the vehicle, recording racing statistics in a database, and updating a user identification card.
In one embodiment, the racing system may also comprise a computer usable medium readable by a computer, tangibly embodying a program of instructions executable by a computer to perform method steps for computer controlled racing over a network.
These features and advantages of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
In order that the manner in which the advantages and objects of the invention are obtained will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof, which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
a is a schematic block diagram illustrating one embodiment of a vehicle control data packet in accordance with the present invention.
b is a schematic block diagram illustrating one embodiment of a vehicle feedback data packet in accordance with the present invention.
a is a schematic block diagram illustrating one embodiment of a two dimensional video camera module in accordance with the present invention.
b is a schematic block diagram illustrating one embodiment of a three dimensional video camera module in accordance with the present invention.
c is a schematic block diagram illustrating one embodiment of a 360° three dimensional video camera module in accordance with the present invention.
a is a schematic block diagram illustrating one embodiment of a racing bracket system in accordance with the present invention.
b is a schematic block diagram illustrating one embodiment of a user identification card in accordance with the present invention.
Many of the functional units described in this specification have been labeled as modules, in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices or the like.
Modules may also be implemented in software for execution by various types of processors. An identified module of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions, which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.
Indeed, a module of executable code could be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network.
In one embodiment the data channel 103 comprises a standard Ethernet network. The configuration of the network 100 given herein is by way of example and other configurations as implemented by one skilled in the art may maintain the intention and functionality of the network 100.
The depicted server 102 includes a behavior module 110, a track marshal module 112, and a user profile database 114. In one embodiment, the behavior module 102 is configured to assign a user's vehicle to a position in a starting lineup of a race. The user's vehicle will be described further with reference to
The behavior module 110 may also be configured to adjust the user's performance level with the vehicle. In one embodiment, the behavior module 110 may assign a performance limit to the vehicle according to the past performance of a user. For example, if a user has a history of damaging or dangerous behavior with the vehicle, the behavior module 110 may limit the top speed and or cornering ability of the vehicle. In one embodiment, the performance limit is stored in the user profile database and transmitted via the corresponding vehicle control module 108 to the vehicle servos that the vehicles performance parameters, such as control speed, effectively tuning down the vehicle. The vehicle control module 108 will be discussed in greater detail with respect to
Initially, the performance of a vehicle may be limited by the behavior module 110 in order to minimize accidents. As a user progresses, the behavior module 110 in one embodiment increases the availability of higher performance levels to the user until a maximum scaled performance level is achieved. Additionally, the behavior module 110 may update a user profile record 116 stored within the user profile database 114.
The track marshal module 112 is configured in one embodiment to dynamically monitor the status of one or more racing vehicles. The track marshal module 112 may be configured to override the user control of a vehicle if erratic driving is detected. For example, an administrator (not shown) may watch the race and in the event that the administrator views abusive or dangerous behavior from a user, the administrator may override communications with the vehicle control module 108 of the identified vehicle.
a illustrates one embodiment of vehicle control data 200. Under a preferred embodiment of the present invention, the vehicle control data 200 may comprise one or more network switchable packets. Preferably, the vehicle control data 200 contains an internet protocol (IP) address 202, an acceleration setting 204, a brake setting 206, a maximum speed setting 208, and a steering setting 210. Of course, not all of this data need be present and additional data may also be transmitted in the described packets. The IP address 202 enables correct routing of the vehicle control data 200 between a user and a vehicle 300 which will be described in greater detail below with respect to
In one embodiment a single packet of vehicle control data 200 may contain various setting data including, for example, the acceleration setting 204, the brake setting 206, the maximum speed setting 208, and the steering setting 210. Alternatively, each vehicle control data 200 packet may contain only one setting to be updated. The manner in which the vehicle control data 200 is utilized will be discussed in greater detail below.
Referring now to
The manner of controlling a vehicle remotely over a network may be implemented collectively, with a plurality of vehicles operating on a single network, or may be implemented in a peer-to-peer configuration, with a single vehicle and a single controller, each communicating with a network protocol. When operating with a plurality of vehicles, a server may be used, as disclosed herein in certain embodiments, but it should be readily recognized that the control of a vehicle remotely over a network need not necessarily involve a server. Likewise, it is preferred that the network communications involve packetized communications as described above, but, of course, any type of networked communications may be involved.
The vehicle 300 is operated by remote control, and in one embodiment an operator need not be able to see the vehicle 300 to operate it. Rather, a video camera module 302 is provided with one or more cameras 306 connected to the vehicle control module 108 for displaying the points of view of the vehicle 300 to an operator. The operator may operate the vehicle 300 from a remote location at which the operator receives vehicle control data and optionally audio and streaming video. In one embodiment, the driver receives the vehicle control data over a local area network. Under a preferred embodiment of the present invention, the video camera module 302 is configured to communicate to the operator using the vehicle control module 108. Alternatively, the video camera module 302 may be configured to transmit streaming visual data directly to an operator station.
An operator station may be provided that simulates the inside of the vehicle being operated remotely. The operator station may, for example, resemble a race car, and a screen or a plurality of screens may be used to display various views from the race car. Controls such as a steering wheel, gear shift, clutch, brakes, etc for controlling the race car may be used within the operator station and translated to digital signals for transmission to the vehicle 300. Feedback may be provided to a user, including temperature, speed, oil pressure, and the like. The feedback may be provided in a single display, or with separate dials.
In one embodiment, the operator station is mounted on a motion simulator. The motion simulator may be coordinated with sensors such as speed and brake sensors and gyros within the vehicle. The operator station may be caused to move forward and back, yaw and roll, in response to the signals from the motion simulators. Other sensors and actuators may also be provided, even including smell dispensers resembling the smell within the vehicle.
a depicts a plan view 410 of a single camera 306 that may be mounted to the vehicle 300 as discussed in conjunction with
b illustrates a plan view 430 of a pair of cameras 306 that may be co-mounted to the vehicle 300. As in the previous figure, each depicted camera 306 has a specific field of view 420. Similarly, the field of view 420 of each camera 306 in the pair may be fixed or dynamically adjustable. According to the mounting configuration, including the relational orientation of the pair of cameras 306, the fields of view 420 may wholly or partially overlap. The video camera module 302 may then process the combination of captured fields of view 420 and create a three dimensional image.
Referring now to
In one embodiment of the present invention, the CPU 504 is configured to communicate with the servo interface module 506, the sensor interface module 508, and the video camera module 302 through a data channel 510. The various controls and sensors may be made to interface through any type of data channel 510 or communication ports, including PCMCIA ports. The CPU 504 may also be configured to select from a plurality of performance levels upon input from an administrator received over the network. Thus, an operator may use the same vehicle 300 and may progress from lower to higher performance levels. The affected vehicle 300 performance may include in one embodiment steering sensitivity, acceleration, and top speed. This is especially efficacious in driver education and training applications. The CPU 504 may also provide a software failsafe with limitations to what an operator is allowed to do in controlling the vehicle 300.
In one embodiment the CPU 504 comprises a Simple Network Management Protocol (SNMP) server module 512. SNMP provides an extensible solution with low computing overhead to managing multiple devices over a network. SNMP is a well known to those skilled in the art. In an alternate embodiment not depicted, the CPU 504 may comprise a web-based protocol server module configured to implement a web-based protocol, such as Java™, for network data communications.
The SNMP server module 512 is configured in one embodiment to communicate vehicle control data 200 to the servo interface module 506. The servo interface module 506 communicates the vehicle control data 200 with the corresponding servo. For example, the network interface card 502 receives vehicle control data 200 that indicates a new position for a throttle servo 514. The network interface card 502 communicates the vehicle control data 200 to the CPU 504 which passes the data 200 to the SNMP server 512. The SNMP server 512 receives the vehicle control data 200 and routes the setting that is to be changed to the servo interface module 506. The servo interface module 506 then communicates a command to, for example, the throttle servo 514 to accelerate or decelerate.
The SNMP server 512 is configured to control a plurality of servos through the servo interface module 506. Examples of servos that may or may not be present in the vehicle 300, depending upon the type of vehicle 300, are a throttle servo 514, a steering servo 516, a camera servo 518, and a brake servo 520. Additionally, the SNMP server 512 may be configured to retrieve data by communicating with the sensor interface module 508. Examples of some desired sensors for a gas vehicle 300 are shown in
Referring now to
The UI controller 602 is preferably configured to convert vehicle control data 200 from the user into data recognizable by the CPU 604 and the UI SNMP module 606. In one embodiment of the present invention, the CPU 604 is configured to communicate with the UI controller 602, the UI SNMP module 606, and the network interface connection 608. The input received from the user through the UI controller 602 is configured by the CPU 604 and the UI SNMP module 606 in order to be transmitted by the network interface 608 to the vehicle 300 through a transmission medium (not shown).
In one embodiment, the transmission medium comprises a standard Ethernet network, which is familiar to one skilled in the art. In a further embodiment, the transmission medium may comprise a wireless peer-to-peer or infrastructure network. As discussed, any network protocol may be used as the transmission medium.
In one embodiment, both audio/video signals and control signals are transmitted over the wireless data channels 103. For example, the audio, video, and control signals may be transmitted using the 802.11 standard or the Bluetooth standard. However, in alternative embodiments, the control signals may be transmitted with one protocol or transmission type and the audio and video signals with another. Alternatively, vehicle control data 200 may be embedded on a monaural channel of a video signal (i.e., in between the upper and lower channels). This signal then may be transmitted as the control signals of the vehicle 300. Control signals may also be transmitted from the vehicle 300 in addition to the audio and video data transmitted by the video camera module 302. Such signals may be used to generate a display, including in one embodiment a heads up display, for the user. Thus, gauges or other displays may show speed, fuel, oil pressure, temperature, etc.
Referring now to
b is a schematic block diagram illustrating one embodiment of a user identification card (UIC) 808. In one embodiment, the UIC 808 illustrates a picture 810 of the user and a copy 812 of the user profile 116. The copy 812 of the user profile 116 may include all or part of the data stored in the user profile record 116 stored on the user profile database 114 and may include personal information 812, statistics/history 814, and an assigned performance level 816. The user profile copy 812 may be deployed on the UIC 808 in any number of manners. For example, in one embodiment the user profile copy 812 may reside within an embedded integrated circuit. In another embodiment, the user profile copy 812 may be visibly printed on the surface of the UIC 808. The statistics/history 814 may include, but is not limited to, win-loss history, laps lead during a race, and fastest speed. These factors may be used in one embodiment to determine the racing bracket 802, 804, 806 in which a user may race, as well as the assigned position within the starting lineup of a race.
Referring now to
As the user begins operating the vehicle 300, the associated vehicle control data 200 is transmitted 916 over the network 100. The vehicle control data 200 may be transmitted 916 wirelessly or through standard network data channels 103. The vehicle 300 receives the vehicle control data and the vehicle is controlled 918. Upon request from the user or an administrator, including an administrator application stored on the network 100, the vehicle 300 transmits feedback data, and the server 102 receives 920 the feedback data over the network 100. At a determined point within the communication sub-process between the server 102 and the vehicle control module 108, the method 900 determines 922 if the race is finished. If the race is not finished, then steps 916, 918, and 920 are continuously performed until the race is finished 922. In an alternate embodiment, the communication steps 916, 918, and 920 may be performed in parallel or in another order, instead of in succession as illustrated.
When the method 900 determines 922 that the race is finished, the server 102 records 924 the race statistics for the target user and the user profile record 116 is updated 926 as required. In one embodiment, updating 926 the user profile record 116 comprises updating the user profile database 114 and the user identification card 808. In a further embodiment, updating the user profile record 116 comprises updating the user's bracket designation 802, 804, 806. The depicted method 900 then ends 928.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
1. Related Applications This application is a Continuation-In-Part of and claims priority to U.S. Provisional Patent Application Ser. No. 60/374,440 filed on Apr. 22, 2002 for Racing Visions, L.L.C.
Number | Name | Date | Kind |
---|---|---|---|
4334221 | Rosenhagen et al. | Jun 1982 | A |
4817948 | Simonelli | Apr 1989 | A |
4857886 | Crews | Aug 1989 | A |
4986187 | Booth et al. | Jan 1991 | A |
5015189 | Wenzinger, Jr. | May 1991 | A |
5016004 | Funk et al. | May 1991 | A |
5044956 | Behensky et al. | Sep 1991 | A |
5338247 | Miles | Aug 1994 | A |
5366376 | Copperman et al. | Nov 1994 | A |
5456604 | Olmsted et al. | Oct 1995 | A |
5481257 | Brubaker et al. | Jan 1996 | A |
5596319 | Spry | Jan 1997 | A |
5707237 | Takemoto et al. | Jan 1998 | A |
5816920 | Hanai | Oct 1998 | A |
5921780 | Myers | Jul 1999 | A |
5989096 | Barton et al. | Nov 1999 | A |
6074271 | Derrah | Jun 2000 | A |
6113459 | Nammoto | Sep 2000 | A |
6141145 | Nalwa | Oct 2000 | A |
6155928 | Burdick | Dec 2000 | A |
6247994 | DeAngelis et al. | Jun 2001 | B1 |
6309306 | Geagley et al. | Oct 2001 | B1 |
6508710 | Paravia et al. | Jan 2003 | B1 |
6632138 | Serizawa et al. | Oct 2003 | B1 |
20010026386 | Yamamoto et al. | Oct 2001 | A1 |
20010045978 | McConnell et al. | Nov 2001 | A1 |
20020107072 | Giobbi | Aug 2002 | A1 |
Number | Date | Country |
---|---|---|
2 128 842 | May 1984 | GB |
Number | Date | Country | |
---|---|---|---|
20030233449 A1 | Dec 2003 | US |
Number | Date | Country | |
---|---|---|---|
60374440 | Apr 2002 | US |