Hi, everyone
I am from rookie team 8015.
We want to connect the demoboard directly to the wifi and send the orders from the joystick directly to the demoboard and do the algorithms during the competition. Is it possible to do so in the matches?
Thanks.
What do you mean by demoboard?
I mean like development kit like Jetson Nano.
So you want to control your robot with a development kit? If so this is not legal. You will get a roboRIO at kickoff, which you have to use as your controller.
We also use roborio, but the main program is on the development kit.
Here are the rules from last yearâs competition. 99% of relevant rules to your question should be identical/nearly identical for this year. https://firstfrc.blob.core.windows.net/frc2019/Manual/2019FRCGameSeasonManual.pdf
EDIT: I want to make it very clear, earlier in the post than just at the bottom, that I donât recommend this. That said, I will provide my thoughts and potential solutions with the understanding it is up to the team to make sure they are within compliance to the rules, and when in doubt, the Official FIRST Q&A is the proper place to ask for clarification on rules during the season.
As for my opinion from examining the rules, this is⌠possible. First major caveat though, as per rule R64, the RoboRIO MUST control any and all actuators, that is, anything that interacts with the physical world, so no matter what, all your motor controllers, solenoids and PCM, servos, ect. must be connected to, and solely controlled by, the RoboRIO.
As for connecting it to the network, the Robot side uses a Wifi Router/Access Point, and at least for the last 10 years or so, all models have included at least a 2-port Network Switch, so you could easily connect a co-processor over Ethernet.
If you wanted to use some other co-processor for your main logic though, The main thing you need is the Joystick Data from the Laptop. The DriverStation software, which only runs on the MS Windows OS, is required and will transmit your Joystick Data, and that DriverStation, as well as the Field Management System at competition, will transmit that data to the RoboRIO. Some options I can think of:
- Program the RoboRIO to transmit the data to your co-processor over any protocol of your choice (SPI, TWI/IIC, CAN, USB, TCP/UDP on ports 5800-5810 per rule R67, PWM, ect.).
- From what I can see in the rules, there is also nothing stopping you from transmitting the Joystick Data from another app on the laptop, over the network, again using ports 5800-5810. As long as you are also running the DriverStation.
- Could could reverse engineer the RoboRIO control network protocol and then use a PublicARP-based ARP Poisoning attack to âsniffâ the RoboRIO control traffic. As long as you making sure you donât alter it in any way, but Iâd REALLY advise against trying anything like that, you could potentially get into some arguments or the like with Field Staff at a Competition, especially if it does cause some kind of problem.
Of course, once you have your Joystick Data, and processes your logic, youâd also need to send your control operations back to the RoboRIO to actually manipulate your actuators. Which again could be accomplished over a variety of means, most likely one of the protocols given in option 1 of getting the Controller Data.
In all, this is possible, and probably legal to do within the rules, but I still would highly recommend just learning to program the RoboRIO and using that, since you would need to do so no matter what to possibly transmit the Joystick Input, and definitely to process your outputs. Especially with all the options of programming language available, youâd really be saving yourself a lot of headache. Java and C/C++ with WPILIB, and LabVIEW as officially supported options, as well as community options for Python, Kotlin, and more recently even Rust and GO, possibly more that have slipped by me.
I realize this may confuse the issue somewhat, but thatâs not quite true. From the R64 blue box:
As long as the enable/disable signal comes from the RIO, you can, for example, set a CAN motor controllerâs output from a coprocessor (I think 900 did so this year).
Thank you so much, it really helps
We definitely did and how we did it is outlined in our whitepaper here: ZebROS 1.1
@smLiu, it would be good for your team to get in touch with some established teams in your area to help you get started. The following is a website for one other team in the Shanghai area, 7595. There may be others.
http://www.sz3z.cn/Default.aspx
While it may be possible to do what you are doing, it is a non-standard configuration so it will be difficult to get assistance when you have problems. Also, since this is your first year, it will be difficult for you to ensure that what you do is legal according to the rules. Please understand that if what you are doing is found to be illegal, you will not be allowed to participate in the competitions. This may require rewriting your software to run on the RoboRio.
Thanksďź It helps our team a lot
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.