Skip to content

[components architecture and urdf examples] Add an example of a 12 DO…#24

Merged
bmagyar merged 3 commits intoros-controls:masterfrom
olivier-stasse:master
Oct 22, 2020
Merged

[components architecture and urdf examples] Add an example of a 12 DO…#24
bmagyar merged 3 commits intoros-controls:masterfrom
olivier-stasse:master

Conversation

@olivier-stasse
Copy link
Copy Markdown
Contributor

…Fs legged robot

This example is based on a real life equivalent of Mini Cheetah.
It includes custom made power electronics with messages transmitting informations at 1Khz.

For each actuator
Command:

  • position
  • velocity
  • current (current or equivalent ) as a feedforward term
  • current limit (which can evolve according to the trajectory)
  • Kp
  • Kd
    Sensor:
  • position
  • velocity
  • current
  • contact
  • resistance (to evaluate temperature)
  • contact (with the ground)

IMU:

  • angular velocity
  • acceleration
  • acceleration without gravity
  • orientation (provided by an embedded EKF)

More details at https://open-dynamic-robot-initiative.github.io/

<commandInterfaceType>effort</commandInterfaceType>
<commandInterfaceType>Kp</commandInterfaceType>
<commandInterfaceType>Kd</commandInterfaceType>
<commandInterfaceType>effort_limit</commandInterfaceType>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please follow the guidance on this ticket
#23

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can check #25 for examples

Copy link
Copy Markdown
Member

@destogl destogl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some changes w.r.t #25

* Data for all joints is exchanged in batch (at once)
* Multiple values can be commanded, e.g. goal position and the maximal velocity on the trajectory allowed
* Examples: (humanoid robots?)
* Examples: humanoid robots (TALOS), 4 legged robot [solo](https://github.com/open-dynamic-robot-initiative/master-board/blob/master/documentation/BLMC_%C2%B5Driver_SPI_interface.md)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would propose to add this long example on the end of the file. Can you open a new subsection with a name "Real robot Examples" and than add yours. It would be also good to reference to this example 2.1.

The intention behind this is that user can fast scroll through all different examples and on the end have real-world use-cases to study them.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any you can simply name the example "TALOS" as this is the name of the robot.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to me. To be a bit more precise, TALOS and the 4 legged robot (SOLO) are two different robots. SOLO is mostly to highlight an original way to access the low level power electronics.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then you are free to choose which one you think is more relevant and describe it

<commandInterfaceType>effort</commandInterfaceType>
<commandInterfaceType>Kp</commandInterfaceType>
<commandInterfaceType>Kd</commandInterfaceType>
<commandInterfaceType>effort_limit</commandInterfaceType>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can check #25 for examples

```

```xml
<ros2_control name="12DOF_Legged_System_Robot_MultiInterface" type="system">
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use capitalized CamelCase in the names. We will also change this in #25

e.g. "12DoFLeggedSystemRobotMultiInterface"

```xml
<ros2_control name="12DOF_Legged_System_Robot_MultiInterface" type="system">
<hardware>
<classType>ros2_control_demo_hardware/2DOF_System_Hardware_MultiInterface_MultiWrite</classType>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here also capitalized CamelCase:

"2DoFSystemHardwareMultiInterfaceMultiWrite"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, here we should use different name:

either: "ros2_control_demo_hardware/12DoFSystemHardwareMultiInterfaceMultiWrite"

or event better:

"talos_control/TalosSystemHardware" or "talos_control/TalosRobotHardware" (choose one you prefer)

Of course we should than create talos_control package at some point.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do

<param name="example_param_read_for_sec">0.001</param>
</hardware>
<joint name="front_left_leg_joint1">
<classType>ros2_control_components/MultiInterfaceJoint_MultiWrite</classType>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also capitalized CamelCase:

"MultiInterfaceMultiWriteJoint" (we will rename this in #25)

<commandInterfaceType>position</commandInterfaceType>
<commandInterfaceType>velocity</commandInterfaceType>
<commandInterfaceType>effort</commandInterfaceType>
<commandInterfaceType>Kp</commandInterfaceType>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also add here some min/max values is such exist.

olivier-stasse and others added 3 commits October 22, 2020 11:46
…Fs legged robot

This example is based on a real life equivalent of Mini Cheetah.
It includes custom made power electronics with messages transmitting informations at 1Khz.

For each actuator
Command:
 * position
 * velocity
 * current (current or equivalent ) as a feedforward term
 * current limit (which can evolve according to the trajectory)
 * Kp
 * Kd
Sensor:
 * position
 * velocity
 * current
 * contact
 * resistance (to evaluate temperature)
 * contact (with the ground)

IMU:
 * angular velocity
 * acceleration
 * acceleration without gravity
 * orientation (provided by an embedded EKF)

More details at https://open-dynamic-robot-initiative.github.io/
Put min max parameters for each command interface
Add real robot example
@bmagyar bmagyar merged commit 49a00aa into ros-controls:master Oct 22, 2020
@destogl
Copy link
Copy Markdown
Member

destogl commented Nov 13, 2020

@bmagyar Thanks for merging this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants