chip updates: getting the RIO communicating, in two directions [updates]
So for the past week, we've really not been doing any walking or anything, we've just been getting things to work/talk to each other before we get to actual robotics. We did a lot of mechanical updates and etc, we've done a bunch of ROS integration stuff and getting things to connect to each other. We've gotten the IMU working, the Joystick working, we've gotten the RIO to talk to the Jetson, and now we need to get the Jetson to talk back to the RIO, get the Jetson to ENABLE and DISABLE the RIO, and then we will be ready to do real robotics stuff.
So the first of the three updates I have from yesterday is that we figured out the answer to "how can we enable the robot from the Jetson eliminating the need for another windows computer."
So earlier we had tried LibDS and went like "okay this doesn't work with 2020." That wasn't exactly true. The problem wasn't LibDS, as we later figured out, it was simply the connection and setting a static IP.
Trying LibDS again:
Downloaded LibDS and changed the team number to 2020, added the IP 10.20.20.2 of the RIO. And Voila - the driver station connected.
So now my brother is going to figure out how to enable/disable using the API of LibDS so we can turn it into a ROS node.
So we're in the middle of programming, it's around 8pm. And we just realized how "Strictly-optimal" our setup currently is.
So for today, we need the Jetson (a linux computer) connected to the RIO so we can test sending commands from the Jetson to the RIO right. Now we also need the Mac I'm using connected to the RIO because we need to deploy code. Now the Jetson isn't setup for SSH yet so we also need a monitor and a mouse and a keyboard connected to the Jetson. And even though LibDS works on the Jetson, we can't use that because we need to see Log Output from the RIO in case the code doesn't work to debug, and LibDS doesn't do log output at the moment and since we need to unplug the MAC to use the Jetson we also cannot view the old output on VS Code on the Mac.
Which means we also need a windows computer USB'd to the RIO so we can enable, disable, and view log files.
Yes, according to Ronak, "Strictly optimal." We need all three of the world's operating systems to get this working.
Okay so let's talk about what we actually achieved and how the system works. We decided it is probably best not if the Jetson keeps adding and removing points to a trajectory and the leg follows that because in that case we have a big problem if the robot starts falling over.
If the robot starts falling over and the Jetson adds "correction" foot positions to stop the robot from falling over, they'll be added at the end of the trajectory so the robot will have to finish falling over, before it can correct itself. Which isn't useful.
So instead what we're doing is using the idea of a time-step "set point." At each tilmestep the Jetson calculates the optimal positions for the legs and sends that to the rio as a SETPOINT. And the rio just reads this set point and sends the legs there, there is no trajectory and there's no adding to trajectories.
So what works now? The Jetson can READ info from the RIO such as leg current, foot XYZ position, the THETAS of the joints/etc. The Jetson can also send a foot position to the RIO and it will move the foot there.
The next steps are to put ALL of this together in ROS.