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.
We do not give further information on Reachy’s workspace, so you couldn’t find it . 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.
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,
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:
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.
Still one question because I can’t find the answer on your website.
Is it possible to obtain positions of each part of arm ?
For example, at first Reachy is in this posture:
[-144.152345 -124.381344 75.650339 -97.08869 32.845588 -24.402332
19.908852 1.130196]
And then it goes to another point with a posture like this:
[-162.49259929 -125.27427109 72.30911795 -93.08019534 25.31561449
-19.99622056 20.03553347 1.00351453]
I want all the positions of each part of arm so that I can draw his first and second posture with just some lines.
I am not sure to understand what you want. Is your goal to record and plot the intermediate positions for all joints during the movement between your two positions?
Hello @VioletteC,
To have the joint positions in cartesian coordinates for each part, you can do partial forward kinematics on the arm.
For example, for your first posture, to have the cartesian coordinates of the elbow, you just have to send the positions of the joints from shoulder_pitch to elbow_pitch:
Hi @VioletteC,
We did not try to install reachy-sdk on a RaspberryPi. reachy-sdk was intended to be used on Linux/Mac/Windows.
If you want, you can try to install from source instead of using pip. To do that:
However, to use reachy-sdk to control Reachy, you need to have reachy-sdk-server and other ROS packages that we developed for Reachy 2021 running on the robot.
So even if you install reachy-sdk, you will not be able to use it on your Reachy 2019.