Workspace of Reachy

Hi,

I’m working recently on Reachy and I found Reachy a great and interesting robot. Your site gives a lot of information about Reachy.

However, I’ve read the documentation on the website, but I did not find the information about its workspace. (Maybe I missed something)

Additionally, I am wondering if we will be warned if we ask Reachy to reach a point out of its workspace (or a point that may lead to a collision). I’ve tested with the simulation on your site, it seems that it will report an error but simply with the codes don’t.

Thanks in advance for your response!

Hello @VioletteC!

We do not give further information on Reachy’s workspace, so you couldn’t find it :wink:. You can have a better idea of it using the arms’ specification (https://pollen-robotics.github.io/reachy-docs/docs/technical-specifications/arm/), but you probably already had a look at it. The workspace is in fact a little tricky to give in an easy-to-understand and usable way. We can give you information on the reachable area for an horizontal plane under the robot if it can help you!

If you try to reach a point out of Reachy’s workspace, it will still try to find a solution and return what it found as the closest one. So you won’t have any error telling that the point is not reachable. Nevertheless you can print the distance between your target and the point reached by the robot if needed.
At the moment the robot doesn’t avoid collisions, so its right arm may collide with the left one depending on the target points you give.

Hope this will help!

1 Like

Hi Dear ;

I am a new user to leachy, it is really useful to do research on it.
I read that there is a simulation tool, and I do not know how to get that simulation tool environment.

May guide me please how to start to install the simulation 3d tool,

I would appreciate your cooperation

1 Like

Hi Marwan,

We made a post on the forum which explains everything for the simulation tool. You can find it here.

Cheers

1 Like

Thanks for replying to me!

I got another problem while using the “forward_kinematics” code.

Noticed that each part of the motor has a limit of the degree of rotation, I tested with two matrices 1*8 by changing only the first parameter.

For example:
Test = np.round(reachy.right_arm.forward_kinematics(joints_position=[ 89, 10, -3.84, 0, -16.5, 45, -21.63, 0]),2)

Test = np.round(reachy.right_arm.forward_kinematics(joints_position=[ 150, 10, -3.84, 0, -16.5, 45, -21.63, 0]),2)

And surprisedly, I got two different 4*4 matrices.

I’m wondering why it returned me two different matrices since normally when motors attain their limits, they will stop and remain at the max degree.

Or there’s a problem with my comprehension.

Looking for your reply
Best regards

Hello @VioletteC,

There is a difference between the calculation you can do with the robot model and the real robot.

When you do :

Test = np.round(reachy.right_arm.forward_kinematics(joints_position=[ 150, 10, -3.84, 0, -16.5, 45, -21.63, 0]),2)

It calculates the target as if the first joint had actually a position of 150.
So your two tests give two different results because it returns theoretically what the result should be, without taking into account the robot’s motors limits.

These limits are visible when working with the robot.
If you define your two joints positions:

joints_position=[ 90, 10, -3.84, 0, -16.5, 45, -21.63, 0]
joints_position_2=[ 150, 10, -3.84, 0, -16.5, 45, -21.63, 0]

And make the robot go to these positions:

reachy.goto({
m.name: j
for j, m in zip(joints_position, reachy.right_arm.motors)
}, duration=1, wait=True)

reachy.goto({
m.name: j
for j, m in zip(joints_position_2, reachy.right_arm.motors)
}, duration=1, wait=True)

the results on the robot will be the same as it can in reality not reach your second target, due to its motors limit.

The real targets you reach are the same, but the theoretical targets you calculate with the forward_kinematics are different as they don’t take into account the motors limits.