Hi Koloman, thanks for the advice! I currently have it so the time step is 0.001 in the position controller block, and I’m using the double filter with the 10Hz cut off frequency, and its still quite jerky.
I am wondering if the problem is with how I’m using the trajectory subsystem? Is there an easier way to do this besides using the previous subsystem and substituting in the data values instead of the virtual position coordinates? I was considering just feeding the data directly into the position controller, but I was concerned about the forces on the Kinarm / the position force scaling factor not being computed properly. Do you think that is worth trying out? Thank you again for the advice, Dusty
Sorry for the late response. Hm, tough to say without seeing the code. When I did this, I had a file reading block that worked at 1 kHz and fed that data into the trajectory subsystem with a 1 ms duration for each movement.
I can send you the task – it’s not as user friendly as our official sample tasks but it does show how to read x, y positions from a data file and then move the robot along that trajectory.
Hey Kolomon, thank you so much! It’s been super helpful and I understand it a bit better now.
I was wondering if you had any advice about re-creating multiple reaches? I added a ‘stop reach’ task button so that the experimenter can manually break between trials, but this can be a bit tricky to get the timing right, and it seems like the filtered data cuts off pieces of the reach if the gap between reaches is too long. I wasn’t sure about how to deal with either a) splitting the reaches into different input files, or b) splitting up the reaches once the input data has been read in. Do you have any advice on this on which approach might be easier?
I really appreciate all the help on this you’ve given us! Thanks, Dusty
There’s a max of 5 input files – so if you have 5 or fewer reaches, I’d probably do it as separate files. That way you can use enabled subsystems to start/stop reading the files as you want.
Otherwise, when you make the file, you can maybe insert some value that wouldn’t normally occur (like [0,0] for 50 entries) that tell you the reach 1 data has stopped and another reach is going to start if you keep reading.
Cheers,
Koloman
Please login or Register to submit your answer