#robotics Logs

Apr 07 2020

#robotics Calendar

03:16 AM yCrazyEdd is now known as CrazyEddy
03:22 AM juanonymous_ is now known as juanonymous
05:45 AM weyland|yutani: https://xbpeng.github.io/projects/Robotic_Imitation/index.html
05:45 AM weyland|yutani: ^ for veverak
06:01 AM veverak: yaeh
06:01 AM veverak: aware of such reserach
06:02 AM veverak: weyland|yutani: I don't like reinforced learning for the movement itself
06:02 AM veverak: hard to prove that it is somehow correct
06:02 AM veverak: :)
06:02 AM * veverak got state space search based motion planning
06:02 AM weyland|yutani: yea well its from 2020 so i guessed it might help you
06:02 AM veverak: I know the definition of state space -> I can argue about it's validity
07:15 AM weyland|yutani: veverak, did you see the video of what i posted
07:16 AM veverak: watching now
07:18 AM veverak: weyland|yutani: why?
07:18 AM mumptai: du you have access to such qudruped platforms? i would have some questions
07:18 AM weyland|yutani: looks impressive
07:18 AM mumptai: s/du/do/
07:19 AM veverak: I made mine
07:19 AM veverak: small, not as capable, but much cheaper
07:19 AM veverak: ;)
07:20 AM veverak: https://twitter.com/SquirrelCZE/status/1206697062684938241?s=20
07:21 AM mumptai: nice
07:22 AM veverak: mumptai: so, your questions are? :)
07:22 AM mumptai: do these system acutally use some kind of central force coupling, or is it still postion control?
07:22 AM veverak: central force coupling?
07:23 AM mumptai: i was thinking about some distributed control systems stuff lately, and tried to find out the real requirements for different applications
07:24 AM mumptai: for example if you want to control the force of an endeffector, you'll need to comand the joint forces wrt. the systems (collective) joint state
07:25 AM mumptai: in contrast to a system the follows a pattern, and does force and position control per joint (locally)
07:26 AM mumptai: also the requirements for the systems bandwidth (data bus / communication wise) increases, as force an change way quicker than position
07:27 AM veverak: depends on the robot I suppose
07:27 AM veverak: and I do not know these details about latest stuff
07:27 AM veverak: but at least my robot is designed as distributed system
07:27 AM veverak: mumptai: but, hmmm
07:27 AM veverak: mumptai: it's not "we are all equal"
07:28 AM veverak: mumptai: it's more like each leg has it's job to do and master makes sure it resutls in proper cooperation
07:28 AM mumptai: its some rc-servo in the joints?
07:28 AM veverak: but legs should not communicate with each other
07:28 AM veverak: mumptai: nope, smart servos - serial communication line
07:28 AM veverak: lewansoul LX-15D
07:29 AM veverak: mumptai: hiearhcyh!
07:29 AM veverak: *hearchy, yeah I want hiearchical control
07:31 AM mumptai: those get a position command?
07:31 AM mumptai: with torque and speed limit?
07:33 AM veverak: not decide yet
07:33 AM veverak: I have one chip per leg
07:33 AM veverak: (stm32g4)
07:34 AM veverak: actuall command set is: goto/spin/spin_until
07:34 AM veverak: but I am inclined to make more of them
07:34 AM veverak: (goto is positional command)
07:34 AM veverak: 'move until load is 'x''
07:35 AM mumptai: and probably also a mode in which the servos can be postioned freely and their position being captured, for some kind of key frame animation?
07:35 AM veverak: not really
07:36 AM veverak: I do not intent to record animations :)
07:36 AM mumptai: i meant the servos themself
07:36 AM mumptai: for all the users not yet interested in walking control systems
07:37 AM veverak: I think yes
07:37 AM mumptai: ohh, those are actually affordable
07:37 AM veverak: https://www.youtube.com/watch?v=6W8NDMkd9zk&feature=youtu.be
07:37 AM mumptai: nice
07:37 AM veverak: yup
07:37 AM veverak: I've got them for 14$/piece
07:38 AM veverak: anyay
07:38 AM veverak: now I want to implement IK-based commands
07:38 AM veverak: will make the animation much better :)
07:39 AM mumptai: certainly
07:39 AM mumptai: is that some ros simulator?
07:39 AM veverak: and will amke it possible to move the center of body when one leg is folding/unfolding
07:39 AM veverak: mumptai: just rviz as visualizer
07:39 AM mumptai: okay
07:40 AM veverak: btw:
07:40 AM veverak: https://paste.vpsfree.cz/C4JBpx+D/
07:40 AM veverak: this is input for unfold sequence
07:40 AM veverak: the motion plans are actually lua code
07:41 AM veverak: so far this seems as wise choice :)
07:41 AM mumptai: lua also runs well on stm32
07:42 AM veverak: yes, but this is supposed to run on the 'master' ndoe whichc will be raspberry or something
07:44 AM mumptai: why so many CPUs?
08:06 AM veverak: self-educational purposes partly
08:06 AM veverak: partly because it's easier to code one chip to control one leg
08:06 AM veverak: than to code one chip controlling multiple legs
08:06 AM veverak: and if I managed to do it correctly
08:07 AM veverak: adding more legs should be just a task of adding more hardware :)
08:07 AM mumptai: i like distributed systems, but i'm painfully aware that it also adds problems ;)
08:08 AM veverak: hence the "self-education" part :)
08:09 AM veverak: mumptai: btw: I want to use CAN as backbone between the chips and raspberry
08:13 AM mumptai: isnt that a non-native interface for the rpi?
08:16 AM veverak: yes
08:16 AM veverak: but it's doable
08:16 AM veverak: and I have people around me using it
08:16 AM mumptai: i would imaginge a different architechture, one MCU for realtime things, two uarts to rpi (one for cmd/sensor, one for logging) and the rpi does all the slow stuff
08:17 AM mumptai: or cmd/sensors stuff over CAN
08:18 AM veverak: that's also doable
08:20 AM mumptai: in the past collecting logging with uart/usb adapters and hubs was way easier than integrating it in a reasonable way ... kinda sad, but not unreasonable in the end
08:24 AM mumptai: also linux with the preempt patches worked okay, on the rpi. but i found out that the UART on the SoC is pointless, no fifo and at some point the kernel cuts the ISR due to too many interrupts
08:48 AM rue_mohr: so question
08:48 AM rue_mohr: if your throwing data at your uart faster than it can send it
08:49 AM rue_mohr: what goods a fifo?
08:49 AM rue_mohr: its gonna end up a half hour behind
08:49 AM rue_mohr: in a few minutes
08:49 AM rue_mohr: you have to pace your data
08:49 AM rue_mohr: or you get LOTS of lag
08:49 AM rue_mohr: fifo = lag
08:49 AM rue_mohr: just like cheese is made of milk
08:53 AM mumptai: with a fifo the isr can handle multiple bytes at once, thus drastically reducing the interrupt-rate
09:10 AM rue_mohr: how many mips is your proessor?
09:10 AM mumptai: was a rpi3
11:49 AM veverak: rue_mohr: fifo is good if you have 'phases'
11:49 AM veverak: like high spike of load on the CPU and than calm phase
11:50 AM veverak: which actually does happen in robotics
01:34 PM veverak: so, got the arducam
01:35 PM veverak: I mean: the quality of the video is AWESOME
01:35 PM veverak: clear ufllhd video in bad light conditions
01:35 PM veverak: I am impressed
01:35 PM veverak: (only thing I posses that is better is DSLR)
01:35 PM veverak: but
01:35 PM veverak: it has arond 400ms in VLC
01:35 PM veverak: (delay)
01:35 PM veverak: and around 200ms in properly setup ffmpeg
01:35 PM veverak: (both times fullhd)
04:04 PM veverak: also, turned out that compting jacobian for generic leg is simpler than I expected
04:04 PM veverak: leg is generic, but I have defiend shep of one leg segment
04:04 PM veverak: (which is always joint around one axis, combined with offset for next segment)
04:05 PM rue_mohr: hi
04:05 PM veverak: this can be defined by one function with parameters
04:06 PM veverak: combined together for any le, it should be just: f(f(f(x))) where f() is applied to it's results multiple times
04:06 PM veverak: where, DOF-times, that is :)
04:06 PM veverak: and jacobian of f(f(f(x))) is f'(f(f(x)))f'(f(x))f'(x)
04:07 PM veverak: that can be algorithmically solved if I write f'(x) manually
04:07 PM veverak: ]o/
04:07 PM veverak: ]o/
04:07 PM veverak: \o/
04:11 PM veverak: waiiiit
04:11 PM veverak: oh, screw me
04:12 PM veverak: I fucked up
04:12 PM veverak: it's more like
04:12 PM veverak: f(x.alpha,f(x.beta,f(x.gama, [0,0,0])))
04:12 PM veverak: that's correct forward kinematics for 3DOF
04:12 PM veverak: :/
07:12 PM SpeedEvil is now known as Guest54317
07:19 PM BitEvil is now known as SpeedEvil
08:31 PM SpeedEvil is now known as Guest76227