Sure is quiet up here ( )
I hope everyone is doing well and that you all have a nice (safe) Holidays!
Sure is quiet up here ( )
I hope everyone is doing well and that you all have a nice (safe) Holidays!
@kurte - It is certainly quite here.
Hope you are all safe and with that new Variant aroundā¦ stay safe.
Ditto - happy holidays and stay safe
Hello All,
Hope everyone is keeping safe. Wishing you all a very happy new year!!
Happy Holidays & New Year! @cmackenzie has been advancing with ROS 2 and has/will involve @madmax. The latest firmware update (under Experimental) seems to be working well. Hopefully video updates will be posted soon.
A lot of code changes lately and the walking is looking much smoother! Yes, smooth but slowā¦Iāll turn the speed up soon enough.
Happy New Year all, hope you are all doing well and healthy.
Any updates on this?
Was a guru able to fix the packet reliability issue?
Nice work on the ROS2 stuff.
Are you using any of the timed moves and the like or are you sending out servo packets as fast as possible?
Again happy new year.
@cmackenzie is looking for opinions / ideas about control options using the Radiolink RC remote.
Brainstorming (so feel free to suggest alternatives and give ideas / insights etc.):
Nomenclature
RC
Computer
We donāt need to use all joysticks / switches.
PS2 Reference with Phoenix code (if it helps):
There was a previous idea about using a PS4, which offers additional input (four left and four right buttons), and instead of a three position switch on each side, there are two way switches. A PS5 controller seems very similar to a PS4.
Colin did additional testing with the latest experimental firmware and found no errors. It may be best to proceed using EM0 for the moment while our developers explore improving EM1. Colin can explain what heās doing more.
Are you using any of the timed moves and the like or are you sending out servo packets as fast as possible?
I am not using EM1 at all. I really like how EM0 mode works and I can get the higher level controllers in ros2_controls to plan motion more wholly and since my end goal is robot compliance I need the EM1 motion control disabled. My current control loop is 18 servos at 50Hz and 1Mbps serial and setting position and effort, and reading position, velocity and current (effort). Iāve run it for weeks 24/7 and I donāt see any errors. Iāve run the loop up to 100Hz and verified in the Saleae that itās good. I moved back to 50Hz because I had other bottlenecks in my ros2 code making 100Hz uselessā¦but even those are gone now so buckle up Ms. Daisy! This is a far cry from the previous per-servo request/response but it does mean constraints on how the multi-servo requests are sent.
Maybe give EM0 a try. You might even be able to get extra smoothness by doing your own motion. My motion is smooth atm. Orocos KDL (C++ lib) does all the IK, and most of the motion planning for me.
Weāre starting to brainstorm a new electronics board intended to be a HAT for the Raspberry Pi and would like your input / feedback.
Primary functionality
Components (minimally)
Questions
Other ideas? Considerations? (Examples below)
@cmackenzie @kurte @geraldinebc15 @xan @zenta @scharette @cyberpalin @madmax @dickel
Great to hear @cbenson! I was thinking Iād need to make one myself. Here is what I already had compiled for my wish list.
ā¦and last but not leastā¦a low-cost CPLD based device for signal routing! This would be used to provide logic-level switching between 3v and 5v but primarily be to interface peripherals between the RPI (or teensy), especially the LSS ports. So like the LSS Adapter board it would have about 6 LSS ports but they are not connected together. Instead each of the LSS ports goes to the CPLD. The 4 serial ports of the RPi4 would also go to the CPLD, as would the Teensy. Now the RPi can set a register on the CPLD to determine where each LSS port is connected, you can connect all LSS ports into a single serial port, or connect some LSS ports to dedicated serial ports on the RPI or the Teensy instead. It could also route a dedicated RPi serial to a single LSS port for non-LSS stuff like a serial GPS.
The XC9572 CPLD is one Iāve used a number of times, itās cheap at about $1.70 in quantity and easy to program. I feel like there is probably cheaper and more recent CPLDs out there though. FPGA could work too, but I feel this feature is more suited to simpler CPLDs than a FPGA. I can help here to create the Verilog code to program the device and write the linux driver to configure the routing.
Sorry I thought I responded earlier to this, but probably started message and forgot to send
Again hope everyone is doing well and having some fun (and staying safe)
For now I sort of lost steam and put all of this stuff on hold.
Was curious about the follow on to LSS and your new smart servos. The EM=1 stuff looked interesting as it feels very much like a follow on to the old LSS stuff and the SSC-32.
As mentioned could probably get things to work with EM=1 and have host do the interpolation.
Glad you are coming up with a ROS2 solution. Will continue to follow on to see your progress.
Some reason I have difficulties with the idea that there are no messages which become corrupted when using EM=0 when run at 50hz for days, but I was seeing a significant number of them with EM=1 at low number of messages per seconds (like only a few). But weirder things have happened.
Again it is all going well, and I have continued to monitor this thread.
Again hope everyone is doing well and having some fun (and staying safe)
You too of course! Fingers crossed that the healthcare system will return to something more ānormalā and Omicron will be less virulent so we can return to something more ānormalā.
The EM=1 stuff looked interesting as it feels very much like a follow on to the old LSS stuff and the SSC-32.
Indeed, though the firmware team has been on other priority projects. Hopefully everyoneās servos have been updated to the latest experimental firmware via the LSS Config interface.
When it comes to EM1, weāll need to review how customers expect it to behave (especially if many signals are being received before it reaches the first position which it received).
Colin has been sending videos to update us privately but hope heāll share more of his progress here.
@cbenson Sorry I am late on responding to this one as well:
As for a hat for RPI, to me that really depends on what your goals are:
That it you could go extremely basic. That is if you are wanting the RX/TX pins to drive servos, you can simply add level shifters for those two pins. You could decide if they are bidirectional or unidirectional.
You could put on power management to feed through the power pins. I have done that and did not notice any issues, butā¦
It was not clear to me earlier when I was playing with RPI hats and first ROS stuff, if powering the RPI through the expansion connector was considered safe or not or if it bypassed some of the power circuitry of the RPIā¦
I also hacked it by using an external BEC which converted the 12v to 5v, which I then wired into the power port of a powered USB Hub. This was a real hack, but I then plugged the RPI into the HUB twice, once as the source and once as a output. The output one plugged into itās power port. This worked on cheap hub, but some others not who would not power up the destination ports until it received USB signalā¦ Another option was to have a connector on the hat that you plug in a cable which then plugged into the RPI power port.
Or you could go whole hog and do something like I did maybe 4-5 years ago and add a nice micro-controller to it with lots of features.
This one has a T3.6 and has on it about that many years of dust It was on my desk as using it to do some MTP testing.
This was one I used on RPI and/or Odroid and/or UP boardā¦
This was setup for Bioloid AX servos and it had my normal board building, that you can not leave any square tenth of an inch unused It was setup to convert the 3.3v outputs to 5v for servosā¦
I used a barrel connector which I connected either wallwart or had connector to 3S lipo.
I was using a Pololu DC-DC converter which could fee through to RPI through 20 pin connector. Plus the double row of pins below the RPI connector (at top in this picture) was a set of jumpers to use shunts to decide which pins to connect from the teensy to the RPI, and lots of IO pins with 3 pin headersā¦
The larger transistor toward bottom left was to allow me to be able to switch servo power on and off. Resistor divider circuit to detect battery voltageā¦
Plus a simple sound circuit and one Noepixelā¦ Some of the boards I had setup to be able to extend that Neopixel to more than just one.
Note: I probably still have an earlier t3.2 version sitting around here as well. And I know at one point was working on T4.x versionā¦
For most things this board was probably overkill.
When I was experimenting with this, it was unclear if you were better off with using the
Serial pins on expansion or sticking with USBā¦ Issues with at least earlier RPI boards that only one of the two uarts was really a UART and by default it was assigned to BTā¦
Also unclear how much of the work you are wanting to put on the HAT. For example if EM=0 was the main way to talk to the servos, I would probably have my own higher level communication, that said move all of these servos to this position over time X and I would let the hat take care of all of the outputs and inputs from servos and free up the RPI to do other things. If not doing that than again maybe just go direct from RPI pins to level shifersā¦
Also unclear if your main goal is for something like ROS2 and you are adding reasonable computing power, if you want the board to be tightly coupled/dependent on a host like an RPI or if you wish to make it run independent and for example maybe have ethernet stack which then allows you to directly have this device source and listen to ROS topicsā¦
Not sure if this helps you or not, but good luck!
It does help indeed! Took note of all main points raised. A Pi HAT seems to be the logical solution to use to interface the RPi 3 / 4 to the LSS servos and an external battery. It makes sense to have voltage regulation onboard and power the Pi via the 2x20 header.
{ā¦} tightly coupled/dependent on a host like an RPI or if you wish to make it run independent
That is an interesting question indeed. To run ROS-based code, it will more than likely need to be stacked and make full use of the Pi, but for basic motion, something like the ATMega328 was able to run the Phoenix code. Ultimately weāll need to see just how much added versatility the smart servos can provide for modular robots like a humanoid, quadruped, hexapod.