[Stevej52] likes to build things you can’t buy, and this Jetson Nano robot falls well within that category. Reading the project details, you might think [Stevej52] drinks too much coffee. But we think he is just excited to have successfully pulled off the Herculean task of integrating over a dozen hardware and software modules. Very briefly, he is running Ubuntu and ROS on the PC and Nano. It is all tied together with Python code, and is using Modbus over IP to solve a problem getting joystick data to the Nano. We like it when existing, standard protocols can be used because it frees the designer to focus more on the application. Modbus has been around for 40 years, has widespread support in many languages and platforms.
This is an ongoing project, and we look forward to seeing more updates and especially more video of it in action like the one found below. With the recent release of a price-reduced Jetson Nano, which we covered last week, this might be an excellent project to take on.
Speaking of Modbus, and standard protocols, do you guys recommand a protocol for serial communication? Modbus? LIN?
In your experience what worked really well and what was a PITA?
I’m in the process of standardizing my workflow and to make it more reusable/easier to interface. Instead of reinventing the wheel everytime or using a protocol that isn’t used by already made modules is just a waste of time.
Or do you just rely everything on something like I2C ? Although it was more intended for short distances (ie on a PCB)
CAN bus is my go to protocol, if it needs to go off board, and any decent length of cable.
I typically use PIC parts which have built-in CAN module(s) and DMA.
So there is almost 0 CPU overhead to send and receive CAN packets.
Also, CAN FD (Flexible Data) mode allows up to 64 byte data payload, and up to 5Mbit/s.
I’ve often used a serial interface based on the concept of a block of memory-mapped I/O registers. These registers are manipulated with real simple ASCII read / write commands. I like this because you can do simple testing by hand. Once it’s up and running, and if you need the efficiency, it’s trivial to switch to binary as opposed to ASCII hex. I don’t like that it’s not standard and each project has to be tweaked.
it’s a cool looking robot :)
can i ask you, how you you hook up a RC controller to the nano? Thats the part i’m stuck on.