

The rotation origin (anchor) and the rotation axis (axis) are defined by the optional HingeJointParameters child of the HingeJoint node. The initial position of the wheel is defined by the translation and the rotation fields of the Solid node. %figure "High level representation of the 4 wheeled robot" So far, only the direct children nodes of the root Robot node has been implemented. The figure represents all the nodes defining the robot. Use the Shape to define the boundingObject field of the Robot node. Hands on #2: At the end of the scene tree, add a Robot node having four HingeJoint nodes having a Solid node as endPoint.Īdd a Shape node containing a Box geometry to the Robot node. The figure depicts the solid nodes hierarchy of the robot. In our case, the body box is obviously the better choice. This choice is arbitrary, but a solution is often much easier to implement.įor example, in the case of a humanoid robot, the robot node would be typically the robot chest, because the robot symmetry facilitates the computation of the joint parameters.

The second step is to determine which Solid node is the Robot node (the root node). It can be divided in five solid nodes: the body and the four wheels.ĭepending on the expected application of the robot model, reducing the DOF while modelling might be necessary to get an efficient simulation.įor example, when modeling a caster wheel, a realistic approach implies to model 2 DOF.īut if this degree of precision is useless for the simulation, a more efficient approach can be found.įor example, to model the caster wheel as a Sphere having a null friction coefficient with the ground. The robot has 4 DOF corresponding to the wheel motors. In our example, this operation is quite obvious. The first step is to determine which part of the robot should be modeled as a Solid node. Having these rules in mind, we can start designing the node hierarchy used to model the robot. The most used one in robotics, is the HingeJoint allowing to model amongst others rotational motors including wheels.Ī Joint node can be monitored or actuated by adding a PositionSensor node, or a motor node to its device field respectively. The nodes derived from Joint allow creating different kinds of constraints between the linked Solid nodes. The direct parent and child of a Joint node are both Solid nodes. The solids are linked together by Joint nodes.Ī Device node should be the direct child of either a Robot node, a Solid node or a Joint node.Ī Joint node is used to add one (or two) degree(s) of freedom (DOF), between its parent and its child. The root node of this tree should be a Robot node. The main structure of a Robot model is a tree of Solid nodes linked together. Most sensors and actuators are both Solid and Device nodes at the same time. You can get more information about the node hierarchy in the nodes chart diagram. The set containing the Solid node and all its derived nodes are called the solid nodes.Ī similar definition is applied for the Device, Robot, Joint and Motor nodes. Some definitions and rules to create the robot model: The ground, the walls and the lighting are kept.

Remove the nodes defining the e-puck, the ball, the dumbbell and the contact properties. Hands on #1: Save the world of the previous tutorial as 4_wheeled_robot.wbt. The text labels correspond to the name of the device." The grid behind the robot has a dimension of 0.2 x 0.3 meters. %figure "Top view of the 4 wheeled robot. The distance sensors are oriented in a different way, their +x-vector indicates the direction of the sensor." Their +x-vector (in red) defines the left of the robot, their +y-vector (in green) defines the top of the robot, and their +z-vector (in blue) defines the front of the robot. Note that the coordinate system representations of the robot body and of its wheels are oriented the same way. The next figure shows the robot from a top view. The robot will consist of a body, four wheels, and two distance sensors. This tutorial aims at creating your first robot from scratch.
