How to make my Nao move?

Hi again kenji, I runned this branch of nao_lola

and now it seems to be fixed the issue that resets the previous joint stiffnesses when i change an other one, so good job for that!

I also tryed to execute the .pos files in the package naosoccer_pos_action and they work perfectly fine,even if some of them are a little bit too quick (like the action.pos that makes it sit with the arms between its legs). I suggest to extend the time of that action to avoid corrateral damage to the robot. Can I do it by incrementing the value of the last number in the .pos files?(the DUR one).

On launching the new nao_lola branch the leds of the nao turns off for some reason;they didn’t do that with the previous release.

Finally, the first time I set the stiffness of a joint to 1.0, that joint goes to his default 0 position.
In fact, setting all of that to 1.0 the first time results in the robot standing like in the simulation when I spawn a new nao_agent. It is suppose to do that?

I also tryed to execute the .pos files in the package naosoccer_pos_action and they work perfectly fine,even if some of them are a little bit too quick (like the action.pos that makes it sit with the arms between its legs). I suggest to extend the time of that action to avoid corrateral damage to the robot. Can I do it by incrementing the value of the last number in the .pos files?(the DUR one).

I agree, this pos file has a harsh movement that shouldn’t be the default one at least. The action.pos is identical to rUNSWift’s goalie centre pos file, which is used for the goalie to block the ball quickly.
I will open a gh issue to track this valid concern.
(tip: there are a bunch of other pos file you can try it out in rUNSWift’s code release)

On launching the new nao_lola branch the leds of the nao turns off for some reason;they didn’t do that with the previous release.

This change of behavior is expected on that branch, but I hope that having the leds off when starting nao_lola is a sensible default behavior.

Finally, the first time I set the stiffness of a joint to 1.0, that joint goes to his default 0 position.
In fact, setting all of that to 1.0 the first time results in the robot standing like in the simulation when I spawn a new nao_agent. It is suppose to do that?

Short answer is yes. Here’s the reason:

nao_lola sends zero positions for each joint at 82Hz, unless you override a joint position by publishing to /effectors/joint_positions.

Same goes for joint stiffnesses - nao_lola sends zero stiffnesses for each joint at 82Hz, unless you override a joint stiffness by publishing to /effectors/joint_stiffnesses.

This means that the first time you publish a non-zero stiffness to a joint, it will immediately try and move it to the position it is being commanded (which is zero).

In practice, you wouldn’t be using the “ros2 topic pub” to move the robot. You’d have a c++ or python node publishing to /effectors/joint_positions. In that node, you should subscribe to /sensors/joint_positions to get the current joint position and interpolate the joint angles to the position where you want them to be. For example, you’ll see this happening in naosoccer_pos_action.

I fixed that by incrementing the value of DUR and now it goes down more gently.

I also created my personal .pos file to move just the right shoulder , so the only not 0 value is the RSP ,which is set to 45. I execute this .pos file with the right shoulder starting from 2 different positions, noticing that the 45 refers to the final position that the joint should go rather than how much that joint should move(the first time went from 0 to 45, the second from -45 to 45).

Finally I tryed to execute from this package

the sit.pos file to try some other position(the starting position was the default one with all positions to 0);
as far as I’m understanding the lines that starts with ! modify the joint_position and the lines that starts with $ modify the stiffnesses.The action goes well but at the end of it all joints should have all the stiffnesses set to 0 but when I echoed the topic sensors/joint_stiffnesses were all still set to 1.0.This resulted into the joint motors overheating for a bit.Do you have any ideas of why this happened?As always you can find the logs below for more clarifications.

I also created my personal .pos file to move just the right shoulder , so the only not 0 value is the RSP ,which is set to 45. I execute this .pos file with the right shoulder starting from 2 different positions, noticing that the 45 refers to the final position that the joint should go rather than how much that joint should move(the first time went from 0 to 45, the second from -45 to 45).

This is correct, and expected behavior. The naosoccer_pos_action takes into account the current position of the arm, and interpolates to the desired joint position using the duration provided by (DUR).

Do you have any ideas of why this happened?As always you can find the logs below for more clarifications.

This is simply because I did not get around to implementing the joint stiffness syntax of pos files in naosoccer_pos_action. You’ll see that in naosoccer_pos_action, there is no code to publish to /effectors/joint_stiffnesses. This would be a great addition to naosoccer_pos_action, so I would appreciate it if you could open a Github issue requesting this feature, or even submit a PR to add this functionality if you have the time to do that!

Actually, I might give it a try now.

@ijnek

Hi there,

We had a conversations in GitHub issues section about making the Nao walk packages work on the simulator. Now I was wondering what I need to do in relation to deploying it on a real Nao Robot. How do I go about it?

Hi @m4n1c22, please post in a new topic. Also, please describe what you have tried already.