replaceBody
Reemplazar cuerpo del robot
Descripción
Ejemplos
Especificar propiedades dinámicas a un árbol de cuerpo rígido
Para utilizar funciones dinámicas para calcular los par motores de articulación y las aceleraciones, especifique las propiedades dinámicas del objeto rigidBodyTree
y rigidBody
.
Cree un modelo de árbol de cuerpo rígido. Cree dos cuerpos rígidos para acoplar a este árbol.
robot = rigidBodyTree('DataFormat','row'); body1 = rigidBody('body1'); body2 = rigidBody('body2');
Especifique articulaciones para acoplar a los cuerpos. Establezca la transformación fija de body2
a body1
. Esta transformada es 1 m en la dirección x.
joint1 = rigidBodyJoint('joint1','revolute'); joint2 = rigidBodyJoint('joint2'); setFixedTransform(joint2,trvec2tform([1 0 0])) body1.Joint = joint1; body2.Joint = joint2;
Especifique las propiedades dinámicas de los dos cuerpos. Añada los cuerpos al modelo de robot. Para este ejemplo se proporcionan los valores básicos de una varilla (body1
) con una masa esférica acoplada (body2
).
body1.Mass = 2; body1.CenterOfMass = [0.5 0 0]; body1.Inertia = [0.001 0.67 0.67 0 0 0]; body2.Mass = 1; body2.CenterOfMass = [0 0 0]; body2.Inertia = 0.0001*[4 4 4 0 0 0]; addBody(robot,body1,'base'); addBody(robot,body2,'body1');
Calcule la posición del centro de masa de todo el robot. Represente la posición en el robot. Mueva la vista al plano xy.
comPos = centerOfMass(robot); show(robot); hold on plot(comPos(1),comPos(2),'or') view(2)
Cambie la masa del segundo cuerpo. Observe el cambio en el centro de masa.
body2.Mass = 20; replaceBody(robot,'body2',body2) comPos2 = centerOfMass(robot); plot(comPos2(1),comPos2(2),'*g') hold off
Argumentos de entrada
robot
— Modelo de robot
objeto rigidBodyTree
Modelo de robot, especificado como un objeto rigidBodyTree
. El cuerpo rígido se añade a este objeto y se acopla al cuerpo rígido especificado por bodyname
.
bodyname
— Nombre del cuerpo
escalar de cadena | vector de caracteres
Nombre del cuerpo, especificado como escalar de cadena o vector de caracteres. Este cuerpo debe formar parte del modelo de robot especificado en robot
.
Tipos de datos: char
| string
newbody
— Cuerpo rígido
objeto rigidBody
Cuerpo rígido, especificado como un objeto rigidBody
.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Indicaciones y limitaciones de uso:
Cuando cree el objeto rigidBodyTree
, utilice la sintaxis que especifica MaxNumBodies
como el límite superior para añadir cuerpos al modelo de robot. También debe especificar la propiedad DataFormat
como un par nombre-valor. Por ejemplo:
robot = rigidBodyTree("MaxNumBodies",15,"DataFormat","row")
Para minimizar el uso de datos, restrinja el límite superior a un número aproximado al número de cuerpos previsto del modelo. La generación de código admite todos los formatos de datos. Para usar las funciones de dinámica, el formato de datos debe configurarse en "row"
o "column"
.
Las funciones show
y showdetails
no admiten la generación de código.
Historial de versiones
Introducido en R2016b
Consulte también
rigidBodyJoint
| rigidBody
| replaceJoint
| addBody
| removeBody
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)