Webots PRO Changelog

What's new in Webots PRO R2023a

Mar 27, 2023
  • New Features:
  • Added support for any current and upcoming version of Python for robot controllers (#5297).
  • Added new projection field to Camera, RangeFinder, and Lidar nodes. This field replaces the deprecated spherical field (#5266).
  • Added a non-interactive terminal for web streaming (#5119).
  • Added a customizable window for animations to display graphs or other user defined content (#5265).
  • Enhancements:
  • Added the support of robot windows for MJPEG streaming (#5272).
  • Added additional checks for path validity in wizards and save world dialogs (#5350).
  • Added warning if external mesh used in CadShape node is fully transparent (#5359).
  • Added warning if external mesh used in Mesh node has more than 100'000 vertices (#5359).
  • New Robots:
  • Added a model of the ROSbot robot from Husarion and an obstacle avoidance demo (#5168).
  • New Devices and Objects:
  • Added some static animals (cow, horse, deer, sheep, dog, fox, cat and rabbit) and a barn (#4539).
  • Added a model of the Mpu-9250 IMU (#5168).
  • Added a model of the RPLidarA2 lidar (#5168).
  • Added a model of the Astra RGB-D camera (#5168).
  • New Examples:
  • Added a sample world showing how to compute the attitude of a robot from IMU sensors (#5256).
  • Bug Fixes:
  • Fixed the OpenAI Gym example which was not converging after ENU/FLU conversion (#5581).
  • Fixed wrong warnings due to SFNode empty flag in the controller (#5430).
  • Fixed controller restart after crash (#5284).
  • Fixed the export of Lidar's rotating head to X3D (#5224).
  • Fixed behavior of WbLightSensor::computeLightMeasurement when spotlight is rotated (#5231).
  • Fixed the reset of the viewpoint in animation when the follow is activated (#5237).
  • Fixed a recursion bug in web animation (#5260).
  • Fixed reset of Lidar memory mapped file in an extern controller restarted during the simulation run (#5305).
  • Fixed a crash when trying to connect a remote extern controllers while a world is loading (#5310).
  • Fixed close and resize buttons rendered in black in the RangeFinder overlay if underlying pixel value is inf (#5337).
  • Fixed error message about missing PROTO declaration when copying and pasting a PROTO node that was just added using the Add Node dialog (#5341).
  • Fixed the description of base nodes in the Add Node dialog (#5346).
  • Fixed robot window updates when an extern controller reconnects (#5367).
  • Fixed regeneration of PROTO nodes derived from a procedural PROTO (#5413).
  • Fixed processing concatenated messages in default robot window JS code (#5442).
  • Fixed missing check on required PROTO header (#5453).
  • Fixed a crash when streaming and deleting a subnode (#5457).
  • Fixed a crash when converting certain PROTOs to base node (#5460).
  • Fixed the item selection in the scene tree after a conversion to base node (#5460).
  • Fixed motor sound glitches when motor was stopped (#5488).
  • Cleanup:
  • Removed deprecated windowPosition, pixelSize, type, colorNoise fields of Camera node (#5266).
  • Dependency Updates:
  • Upgraded to Qt6.4 on Windows (#5301).

New in Webots PRO R2021b (Nov 12, 2021)

  • New Robots:
  • Added a model of the Summit-XL Steel robot from Robotnik (#3121).
  • Added a model of the MiR100 robot from Mobile Industrial Robots (#3010).
  • Added a model of the Fabtino robot from REC (#2999).
  • Added a model of the JetBot robot from NVIDIA (#2951).
  • Added a model for the Niryo Ned robot (#2925).
  • New Devices and Objects:
  • Added a new altimeter device contributed by sishamilton (#3241).
  • Added a model of the SickS300 lidar (#3122).
  • Added HingeJointWithBacklash PROTO that extends HingeJoint to model the effect of backlash and a corresponding sample world (#2786).
  • Added Hinge2JointWithBacklash PROTO that extends Hinge2Joint to model the effect of backlash and a corresponding sample world (#2850).
  • Added a generic Gear PROTO and a demo showing it being used in a collision-based transmission (#2805).
  • Added a nice looking FIFA soccer ball PROTO (#2782).
  • New Samples:
  • Added a draft Robocup Virtual Humanoid League 2021 environment (#2783).
  • Add an example that shows an integration of OpenAI Gym with Webots (#2711).
  • Added a simple room with a Nao robot (#2701).
  • New Features:
  • Support http:// and https:// file download and cache for the URL fields of Background, Camera, ContactProperties, ImageTexture, Mesh, and Motor (#2591 and #2787).
  • Reduced installation package size by using online resources for images, meshes, etc. (#2787). The local URLs to textures and meshes in previous worlds files should be updated to point to online resources, e.g., "textures/carpet.jpg" should be changed to "https://raw.githubusercontent.com/cyberbotics/webots/R2021b/projects/default/worlds/textures/carpet.jpg".
  • Added the wb_supervisor_node_set_joint_position function to artificially set the position of active and passive joints (#3160).
  • Added the wb_supervisor_node_export_string function which returns a string from which the node is constructed (#2743).
  • Added the wb_supervisor_node_save/load_state functions that allow partial world reverting to a saved state (#2740).
  • Added coupled motors feature which allows to control multiple logically linked Motors at once (#2939).
  • Added the Billboard node. A Billboard node contains children nodes that translate and rotate automatically to always face the viewpoint (#3023).
  • Added the redColorSensitivity field to DistanceSensor that allows tuning (or even disabling) of the red color sensitivity for an infra-red distance sensor (#3077).
  • Changed the rendering engine of the streaming viewer and of the animations for WREN (#2769).
  • Added JavaScript scripting support for Procedural Proto Nodes (#3087).
  • Enhancements
  • Altered the collision detection logic for Robot.selfCollision to ignore chains of joints if the intermediary joints all share the same anchor point (#2868).
  • Allow the Robot node to be added inside the Group node and other nodes derived from the Group node like Transform and Solid (#2732).
  • Make the external controller check more frequently (and indefinitely) for the simulation (#2442).
  • Added pose and field tracking functions to improve the performance of getting pose and field data (#2279).
  • Added contact point tracking functions to improve the performance of getting contact point data (#3162).
  • Added Supervisor functions to retrieve all the fields of a given node (#3202).
  • Added the wb_supervisor_node_get_pose function that retrieves an absolute or relative pose. Relative pose is expressed in the coordinate system of another node specified as an argument (#2932).
  • Allowed the wb_supervisor_node_reset_physics function to reset the physics of solid descendants of the given node (#2742).
  • Added the dragForceScale and dragTorqueScale fields to WorldInfo which enable to set the order of magnitude of the force/torque to be applied in the interface (#3175).
  • Significantly improved the performance of the wb_camera_get_image, wb_range_finder_get_range_image, and wb_lidar_get_range_image functions (#3032).
  • Added an allowedChannels field in the Emitter and Receiver nodes to restrict the channel usage (#2849).
  • Exposed stopERP and stopCFM parameters in HingeJointParameters that define the local ERP and CFM used by joint limits.
  • Made the static behavior the default for PROTO files and removal of the tag. Non static cases must be labeled as such using the nonDeterministic tag instead (#2903).
  • Display magnitude of linear and rotational velocity vectors in the Field Editor, to help monitoring robot displacement (#3209).
  • Ensure that any node "name" is displayed in the scene tree to help navigation (#3198).
  • Added a script to convert PROTO files to use Mesh nodes instead of IndexedFaceSet nodes to speed-up loading times, improve PROTO readability and maintenance (#2668).
  • Converted several PROTO files to use Mesh nodes (#2668).
  • Added flag to RobotisOp2 that enables the modeling of backlash in the robot (#2881).
  • Added a version of the RobotisOp2 modeled using Hinge2Joint on the ankles, hips, and neck (#2861).
  • Made the TIAGo robot more sturdy by increasing the suspensionSpringConstant value (#2876).
  • Added a stadium_dry background with dry grass to allow Robocup players to distinguish the soccer field from the background (#2874).
  • Added conversion from PROTO to URDF from the Webots command line (#2885).
  • Rework of car meshes to have more realistic rear lights for Mercedes Benz, Lincoln, Citroen, BMW and Range Rover models (#2615).
  • <webots/utils/default_robot_window.h> C include file moved to <webots/plugins/robot_window/default.h> (#2655).
  • Improve generic robot window (#2655).
  • Skip updates when the robot window is hidden to not affect the simulation performance.
  • Add toggle button to choose if the enabling/disabling the graph(s) will also enable/disable the robot device.
  • Add buttons to enable and disable all the devices with the same type at once.
  • Add "Settings" tab to choose the refresh rate, disable all the devices (of any type), and enabling recording data from devices when the corresponding tab is not visible.
  • Improve motor slider visibility by moving it to the left of the graph if the plot is not completely visible.
  • Split the generic robot window code in different libraries and JS files so that it can be easily reused for custom projects.
  • Speed up drawing using WebGL (#2854).
  • Added the HTML robot window for vehicles replacing the deprecated Qt-based robot window (#2602).
  • Support labels in animations (#3019).
  • Modernized and improved the animations' player (#2979).
  • Added support for fonts in the streaming viewer (#2976).
  • Don't display warnings for recent Intel and AMD graphics cards (#2623).
  • Added measurement of the load time and average speed factor when using the --log-performance command (#3002).
  • Simplified the usage of the ros controller (#2822).
  • Integrated ros_control (activated through the --use-ros-control flag) to allow the usage of a diff_drive_controller and joint_state_controller from the ros_controllers package.
  • Added an option (activated through the --auto-publish flag) to automatically enable all devices on startup and create the corresponding topics.
  • Exposed the robot_description ROS parameter (activated through the --robot-description flag) that contains the URDF of the robot.
  • Improved the URDF naming convention (#2875).
  • Bug fixes:
  • Fixed resource leak in simulation server script (#3412, thanks to Luiz Felipe Vecchietti).
  • Sanitized controller name in MATLAB launcher (#3404, thanks to Bartek Lukawski and Juan Victores).
  • Fixed bug in Lidar / RangeFinder measurement when hitting an edge (#3230).
  • Fixed the restart of Webots on Windows after changing the theme or the language from the preferences (#3367).
  • Fixed instabilities in the box-cylinder collision detection (#3105).
  • Fixed wrong computation of the asymmetric friction force direction for Cylinder and Box (#3150).
  • Fixed the return value handling from the webots_physics_collide when the Group node is one of the colliding objects (#2781).
  • Fixed the conversion from quaternions to Euler angles in the InertialUnit for the ENU coordinate system (#2768).
  • Fixed a controller crashing after resetting the simulation and changing the controller field value (#3237).
  • Fixed triangle count for Mesh and IndexedFaceSet when there is a lot of triangles (#3086).
  • Fixed in the interaction between IndexedFaceSets and distance sensor rays that resulted in the wrong contact point being considered for collision (#2610), affecting TexturedBoxes.
  • Fixed crash visualizing node properties in Node Editor for nodes in deeply nested PROTO structures (#3109).
  • Fixed crash when selecting velocities relative to kinematic ancestor Solid node in Node Editor (#3098).
  • Fixed crash due to invalid SFColor values in PROTO fields by clamping the value and printing a warning in the Webots console (#3218).
  • Fixed crash triggered by a kinematic simulation involving a PROTO with template regenerable fields (#3227).
  • Fixed crash occurring when a PROTO having template regeneration fields is used as a Solid.boundingObject (#3226).
  • Fixed incorrect regeneration of the PROTO nodes inserted in a Solid.boundingObject field (#3226).
  • Fixed crash where the deletion of an item in a MF field resulted in an endless regeneration which eventually lead to a crash (#3188).
  • Fixed crash when the top node of a SolidReference was a Transform or a Group (#3039).
  • Fixed the wireframe rendering badly affected by lighting (#2806).
  • Fixed external force/torque logic such that the closest dynamic Solid ancestor is picked if the selected one lacks it (#2635).
  • Fixed a strategy used to find a MATLAB executable in the PATH environment variable (#2624).
  • Fixed various issues when an extern Robot controller exits without disconnecting and reconnects to the same Robot (#3189).
  • Fixed start-up of extern controllers in case a remaining temporary folder resulting from a previous Webots crash was still there (#2800).
  • Fixed broken multithreading in Python controllers due to Python GIL (#3104).
  • Fixed compilation of default controllers using Qt on Windows (#2718).
  • Fixed controllers output printed in the Webots console one step too late when running the simulation step-by-step (#2741).
  • Fixed invalid world loading errors cleared from the console when reverting to the empty world (#2737).
  • Fixed high DPI support on Windows and Linux (#2631).
  • Windows: Fixed double-click opening of a world file located in a path with UTF-8 characters (#2750).
  • Fixed adding textures to a simulation while a streaming-viewer is running (#2704).
  • Fixed crash applying wb_supervisor_node_add_force on kinematic objects (#3036).
  • Fixed Supervisor API operations on nodes defined in multiple nested PROTO fields (#3036).
  • Fixed crash due to Supervisor MF field operations based on negative positions that were not translated into valid indices after resetting the simulation from the same Supervisor controller (#2997).
  • Fixed wb_supervisor_node_reset_physics not working if during the same step the node is also artificially moved with the Supervisor API (#2991).
  • Fixed the wb_supervisor_field_get_count function's returned value not updated after modifying the fields from the GUI or from another Supervisor controller (#2812).
  • Fixed wb_supervisor_node_get_velocity in MATLAB API returning 3 elements instead of 6 (#2764).
  • Fixed simulation reset
  • Fixed synchronization of Supervisor simulation reset that was applied after the step and now it is applied at the very end of the step (#2720).
  • Fixed incorrect position retrieval immediately after resetting nested Transform nodes (#3051).
  • Fixed reset of Charger energy when the recharging Robot battery is full (#2879).
  • Fixed Camera image update in controllers after simulation reset (#2725).
  • Fixed reset of simulations including BallJoint nodes like the Stewart Platform (#2593) and (#3394).
  • Fixed step button status if simulation is reset from UI when the step button is disabled (#2741).
  • Fixed bug in the C++, Python and Java API where the Robot.getDevice() methods were returning different objects when passing the same string argument for the device name (#2957).
  • Fixed the robot_get_urdf function to include leaf nodes in URDF (#2803).
  • Fixed issue where motor position limits in Hinge2Joint and BallJoint were enforced incorrectly (#2825).
  • Fixed issue where the hidden field of a BallJoint is not stored in the world file when saving after the simulation has run (#2964).
  • Fixed Camera.getRecognitionObjects function not available and the return value of CameraRecognitionObject.getPositionOnImage and CameraRecognitionObject.getSizeOnImage in Java API (#2923).
  • Fixed return value type of CameraRecognitionObject.get_size Python function (#2923).
  • Fixed detection of scaled objects in the Camera image using the Recognition functionality (#2921).
  • Fixed Lens distortion (#2961, #3191).
  • Fixed memory leak in Display image (#2663).
  • Fixed Display external window not updated when the attached camera image changes (#2589).
  • Fixed erasing Pen ink on simulation reset (#2796).
  • Fixed the Pen ink mixed with the background and other ink when the inkDensity is lower than 1.0 (#2804).
  • Fixed painting with the Pen device on the bottom face of a Cylinder geometry (#2629).
  • Fixed crash changing the Lidar.type field during the simulation run by requiring to save and reload the world (#2983).
  • Fixed Lidar.getLayerRangeImage Python and Java functions wrongly returning the full image (#2799).
  • Fixed visual bug where the Lidar point cloud disappears when out-of-range points are present (#2666).
  • Fixed update of PointSet subnodes (#2766).
  • Fixed X3D export of USE nodes linking to DEF nodes declared in PROTO exposed fields (#2687).
  • Fixed the robot window example (#2639).
  • Fixed mecanum wheels ContactProperties in YouBot worlds (#3025).
  • Fixed value of the verticalFieldOfView for the Hokuyo UTM-30LX (#2972).
  • Fixed RandomBuilding PROTO where different instances generated the same building (#2897).
  • Fixed PedestrianCrossing PROTO model not correctly displaying the yellow stripes (#2857).
  • Changed ROS message type published by the Camera Recognition Objects node that now sends a single message including all the recognized objects (#3234).
  • Changed ROS data type of /supervisor/node/get_type_name service that now uses webots_ros::node_get_name instead of webots_ros::node_get_type_name (#3202).
  • Fixed incorrect resetting of PointLight nodes (#3345).
  • Fixed incorrect cleaning of Light node (3374).
  • Fixed crash provoked by canceling and switching world in the Guided Tour (#3376).
  • Fixed the path to the python command on macOS (#3402).
  • Fixed HighwaySign PROTO not displaying the texture (#3407).
  • Cleanup:
  • Deleted deprecated DifferentialWheels node (#2749).
  • Changed structure of the projects/samples/howto directory, so each demonstration is in a dedicated directory (#2639).
  • Deprecated wb_supervisor_node_get_contact_point, wb_supervisor_node_get_contact_point_node, and wb_supervisor_node_get_number_of_contact_points functions in favor of wb_supervisor_node_get_contact_points (#3162).
  • Remove the viewpoint_control benchmark that was not working in Webots (#3192).
  • Dependency Updates:
  • Upgraded to Qt 5.15.2 on macOS (#2721).
  • Upgraded to Qt 5.15.2 on Linux (#3089).

New in Webots PRO 7.4.0 (Mar 5, 2014)

  • New Features:
  • Default to High Quality rendering
  • Improved the quality of the X3D export (especially visible in X3Dom)
  • Merged misc floor prototypes (CheckeredFloor.proto, DecimetricFloor.proto and MetricFloor.proto) into one (Floor.proto). The old ones are deprecated
  • Refactored arena prototypes (added RectangleArena.proto and CircleArena.proto, deprecated SquareArena.proto)
  • Added the new generic ros controller in the default controllers
  • Added support for environment variable definitions and languages settings in a runtime.ini file in controller directory, and used this system for the Nao's naoqisim controller
  • Added procedural prototypes support (embedded the lua language in prototypes to create simply and cleanly complex nodes)
  • Added a default manipulator for translating and rotating objects that appears when selecting a top solid
  • Changed font used in 3D View labels that now includes greek letters
  • Mac: Added a retro-compatibility toggle to link easily with the libc++ (default) or the libstdc++ (USE_STD_CXX=true) controller libraries (thanks to Simon)
  • Added 'Details' button in field editor when PROTO nodes are selected that automatically opens the definition file
  • Added 'Cancel' button in Wizards
  • Supported infra-red measurements on Display device's textures
  • Added a new field named 'resolution' for the following nodes: Accelerometer, Compass, DistanceSensor, GPS (previous 'resolution' field has been renamed into 'accuracy'), Gyro, InertialUnit, LightSensor, PositionSensor (and therefore also LinearMotor and RotationalMotor) and TouchSensor
  • Added a new field named 'rangeResolution' to the Camera node
  • Upgrade:
  • Upgraded to Qt 5.2.1
  • Performance:
  • Improved behavior of asynchronous controllers.
  • Improved texture loading time and reduced Webots memory footprint (related with textures)
  • Bug Fixes:
  • Improved the VRML specifications strictness related with the 3D rendering
  • Some of the following modifications can break the 3D rendering setup of your simulations
  • Fixed the textured rendering in which the Material.diffuseColor was wrongly taken into account
  • Fixed the global ambient light which was wrongly divided by the number of lights
  • Clamped the Light.ambientIntensity and Light.intensity fields to the [0, 1] range
  • DARwIn-OP (thanks to Chase)
  • Fixed the behavior of the "Make default controller" check box
  • Fixed link to X11 library of DARwIn-OP with Ubuntu 12.04
  • Added missing Motion.hpp include file
  • Nao
  • Merged the 4 Nao prototypes (Nao_H21_V33, Nao_H21_V40, Nao_H25_V33, Nao_H25_V40) to a single procedural prototype (Nao)
  • Added the Nao.version field to choose between the "4.0" and the "3.3" versions
  • Added the Nao.degreeOfFreedom field to choose between the 25 (arms with articulated fingers) and 21 (arms without articulated fingers)
  • Removed the Nao.cameraFieldOfView from the open fields
  • Set the default value of the Nao.color to the Nao v4.0 orange (the default color of the v3.3 is lost)
  • Simplified the camera code by removing the sampler algorithm probably causing camera issues
  • naoqisim: Increased the nao sleep between the 2 Aldebaran processes starts (thanks to Patrik)
  • e-puck
  • Fixed cross-compilation using multiple files (thanks to Hao Ran Liew)
  • Fixed crash when double clicking on handles in the 3D View
  • Fixed crash related to Hinge2Joint axis setting
  • Default min max position values for linear motors displayed in the robot window are now -1 and 1 (were previously like rotational motors, e.g., -pi and pi)
  • Fixed hidden parameters management of the Hinge2Joint node
  • Fixed restart of controller when resetting the 'controller' field to the same string from a supervisor (thanks to Adil)
  • Added automatic validity checks for ContactProperties node's fields
  • Disabled Add Node dialog box when attempting to insert a device into a 'device' field which is not part of Robot (an info message is now displayed)
  • Fixed crash at load time caused by an invalid IndexedFaceSet placed into a boundingObject
  • Resolved Qt warnings for signals WbNode::massPropertiesChanged() and WbNode::positionChangedArtificially() when deleting nodes
  • Disable manually moving objects in the 3D View if corresponding translation field is not visible in the Scene Tree
  • Fixed crash when quitting Webots, reverting the world or deleting an objects while manually interacting with the selected solid object in the 3D View
  • Fixed insertion of objects lifting action with mouse wheel in undo/redo stack
  • Simulation is paused while showing the save or open world file dialogs to fix graphic update problems and speed up the action
  • Fixed Slider axis orientation: the orientation was reverted so as to conform with the documentation
  • Fixed double-click behavior in Add Node dialog when a container item is selected
  • Fixed content of Webots clipboard when copying text in an external program
  • Fixed python library compilation on Mac OS X systems using MacPorts (thanks to Conrad)
  • Added warning issued when inserting an invalid child node in a Transform node which is contained in a boundingObject
  • Fixed loading errors for PROTO nodes when saving a world in a different project folder
  • Fixed updates of nested USE nodes (thanks to Jessica)
  • Fixed crash caused by device-less Propeller nodes (thanks to David)
  • Fixed spring and damping effects when using small spring and damping constants (thanks to Francesco)
  • Fixed crash caused by wb_motor_enable_torque_feedback() (thanks to Brian)
  • Fixed the computation of motor torque feedback
  • Text editor: Fixed detection of files which are modified by an external application (thanks to Conrad)
  • Show text editor even if hidden before popping up the modified text file message
  • Fixed ray collision of Pen and infra-red DistanceSensor with Joint's 'endPoint'
  • Fixed update of global ODE parameters (e.g., gravity, ERP, CFM) in multi-threaded mode
  • Awake Solids when global ODE parameters change (thanks to Thierry)
  • Fixed contact points rendering synchronization
  • Fixed use of system CLASSPATH when compiling Java controllers from Webots Text Editor
  • Enable "Save" button after inertiaMatrix insertion, 3D scene zoom, objects' lifting with mouse wheel, and when changing followed solid from View menu
  • Mac OS X: the ODE physics engine now uses OpenMP, similarly to Windows and Linux.
  • Fixed distance computation for distance sensors of type 'infra-red' when range is greater than 1 and no obstacle are detected
  • Fixed mouse cursor icon on Mac OS X when leaving the 3D View
  • Fixed delayed update of 3D View when deleting a node in the scene tree
  • Fixed scaling of DistancSensor's frame according to World's lineScale value
  • Fixed default motor target position when using saved hidden position field values
  • Fixed crash related to insertion of a boundingObject in a Propeller helix
  • Fixed python controllers on Mac OS X 10.8 (bug introduced in Webots 7.3.0)
  • Fixed ALT commands in khr-2hv example on Mac OS X
  • Fixed Makefiles for compilation of C++, Java and Python wrappers on Mac OS X 10.8
  • Documentation:
  • Added instructions to solve e-puck cross-compilation issues on linux 64 bit
  • Added a second example about the influence of the 'lookupTable' field on DistanceSensor measured values

New in Webots PRO 7.3.0 (Mar 5, 2014)

  • Added a Propeller node to simulate propulsion of aircraft and ocean vehicles
  • Added hidden linearVelocity and angularVelocity fields to Solid nodes so as to retrieve initial velocities from the world file
  • Added hidden position field to allow Joint nodes without JointParameters to retrieve initial positions
  • Added the hidden prototype parameters translation, rotation and position. This allows you to save and restore a simulation where prototypes have moved from their initial positions and orientations without creating new parameters
  • Added a warning issued when a Solid node has no Physics node but has a non-empty boundingObject and an upper Solid node containing a Physics node: collisions are ignored in this case
  • Matlab
  • Removed the "minimize" argument given to the launcher on other platforms than Windows (thanks to Erik)
  • Mavericks
  • Added support for Mavericks (Mac OS X 10.9)
  • Compiled controllers, libraries and plugins using clang 5.0 and libc++ (rather than libstdc++)
  • Fixed launcher (double-click on the icon from finder) (thanks to Adil)
  • Fixed java which had a conflit between the distributed and the OS libzip library
  • Added semantic tests for project PROTO files when opening the Add Node dialog
  • Don't disable 'Save world' action after the simulation has started, but make it behave like 'Save As'
  • Disabled 'Save world' and 'Save text file' actions if no modification occured
  • Added a single clipboard for the whole application (Scene Tree, Text Editor, and Console) synchronized with the system clipboard
  • Merged Cut, Copy, Paste, Select All, Undo, ans Redo actions so that they work in Scene Tree, Text Editor or Console based on the selected tool
  • e-puck: Fixed cross-compilation issues on windows (thanks to Simon)
  • Add standard keyboard shortcuts for cutting (CTRL+X), copying (CTRL+C), pasting (CTRL+V), and deleting (DELETE) a node in the Scene Tree or 3D View
  • Fixed crash during the computation of default texture mapping of IndexedFaceSet under special circumstances
  • Force and torque representations size increase with the WorldInfo lineScale value
  • Fixed crash related to DistanceSensor (thanks to Pragati)
  • Fixed crash caused by Cylinders in boundingObjects which are located at the same position
  • Fixed documentation page opened using the 'Help' toolbar item for the node model names starting with 'P'
  • Merged toolbars of Scene Tree and View 3D in a single one
  • Moved 'Import Object' toolbar action in the Add Node dialog
  • Moved 'Reset', 'Transform', 'Help' and 'Export Object' toolbar actions in the field editor
  • Extended 'Transform' node functionalities to SFNodes
  • Fixed exploding spring effect in SliderJoint
  • Remove capability to create Servo nodes from the GUI
  • Revisited the IPR controllers in order to have a deterministic behaviour
  • NAO
  • Added slots to the model in order to easily add robot extensions
  • Updated Nao challenge to v1.8
  • Fixed device identification for Devices placed below a BallJoint (thanks to David)
  • Redirected ODE messages to Webots console
  • Refactored the physics plugin' webots_physics_draw() function in order to be able to draw on the 3D view and/or on the robot cameras (thanks to Kevin)
  • Removed the webots_physics_pre_draw function: the same feature is accessible from the arguments of the webots_physics_draw() function (see Reference Manual)
  • Modified the webots_physics_draw() function: added 2 arguments (see Reference Manual)
  • Fixed collision detection of user defined dGeoms in physics plugins
  • Enabled the multithread version of ODE on Mac OS X (thanks to Mustafa)
  • Removed duplicate contact points of IndexedFaceSets (thanks to Jesse)
  • A time step less than 1ms is rounded up to 1ms in the void controller to keep the application responsive
  • Upgraded to Qt 5.1.1
  • Fixed motion editor's "fixed step"
  • Fixed Toggle Line Comment function in Text Editor when the last line of the document is selected (thanks to Andrew)
  • Prohibited insertion from dialog box of a Geometry node in a boundingObject if one dimension is non-positive
  • DARwIn-OP
  • Added slots to the model in order to easily add robot extensions
  • Merged the Makefiles used for cross-compilation into a single Makefile.include
  • Improved robustness of the remote control session startup
  • Improved globally the code indentation
  • Fixed constness of Robot::keyboardGetKey() and Robot::batterySensorGetValue()
  • Fixed fallback values of HingeJointParameters and Hinge2JointParameters axis fields when a zero vector is specified: fallback on default value, i.e., 1 0 0
  • Extended 'Import Object' behaviour in the Scene Tree: allow to import a node in any MFNode fields just after the selected node
  • Restore field edition behaviour: values should not be automatically updated by Webots while the user is editing
  • Improved 'Add Node' and 'Transform' dialogs: allow to select a node model by double-clicking on it
  • Improved the support for ANSI Escape Sequences and CR character in messages printed on the Webots console
  • Improved error messages concerning PROTO nodes so that they match the Scene Tree structure
  • Fixed file's title in text editor when deleted externally
  • Improved the X3D lights export
  • Stored the Webots version in the header of the Webots model files (.wbt, .proto, .wbo and .wbproj) in order to facilitate automatic upgrade
  • Removed the dependency of Java programs on make when compiling using the Webots text editor
  • Fixed viewpoint restoration in orthographic mode (thanks to Andrej)
  • Removed the useless dependency on swig when recompliling languages controllers (thanks to Erik)
  • Fixed robot window dialogs z-order on Windows and Linux (thanks to Chase)
  • Fixed wb_supervisor_field_import_node so that it takes into consideration the insertion position
  • Changed the returned value of wb_supervisor_get_contact_point() and wb_supervisor_get_number_of_contact_points() (see Reference Manual)
  • Fixed crash caused by missing mandatory functions when loading a plugin
  • Fixed crash caused by transformations Robot->Supervisor from the GUI
  • Fixed compilation issues with swinglet's controller and plugin
  • Added warnings when Solid mass settings are invalid or insufficient to define inertia (thanks to David)
  • Implemented integral and derivative gains, in addition to proportional gain, for PID control of motor position
  • Warning: From now on, please use wb_motor_set_control_pid() instead of wb_motor_set_control_p() (removed) and replace 'SFFloat controllerP' fields by new 'SFVec3f controllerPID' fields.
  • Added example of Ziegler-Nichols' PID tuning method
  • Upgraded Java controllers API to Java 1.7

New in Webots PRO 7.2.4 (Mar 5, 2014)

  • Extended Charger node: add Charger node to robots
  • Changed yaw value returned by wb_inertial_unit_get_roll_pitch_yaw() into its opposite to conform to standards
  • Nao
  • Prototized the NAO hands. This is the first step to a modular NAO architecture
  • Upgraded neck and shoulders to Hinge2Joint. This removes 3 ODE constraints to solve (performance bottleneck)
  • Updated Nao challenge to v1.1
  • Windows: Fixed display of NAOqi/HAL messages in the Webots console
  • DARwIn-OP
  • Fixed execution of controllers by running them as root on the real robot (Thanks to Yuhuang Hu and Edwin)
  • Increased stability of the remote control mode by running the remote control server as root on the robot
  • Fixed button tooltips and status text which were not updated after deconnection from the robot
  • Linux: Force the use of python2.7 for controllers to avoid conflicts with python 3 (thanks to Stefano)
  • Fixed issues related to the JointParameters position field in a Hinge2Joint
  • Fixed DEF name updates when several nodes share the same DEF string (Webots warns you about possible side effects)
  • Fixed text editor title updates
  • Fixed text editor shortcuts when auto-completer pop-up window is visible
  • Fixed text editor empty tabs when files have been moved or deleted
  • Added Khepera III's gripper
  • Added Pioneer 3's gripper
  • Fixed bug related to nesting Transforms and Joints (thanks to David)
  • Added support for graphical collision notification when using a physics plugin
  • Fixed Supervisor label deletion

New in Webots PRO 7.2.3 (Mar 5, 2014)

  • Fixed crash occurring while using a Cone node in a PROTO

New in Webots PRO 7.2.2 (Mar 5, 2014)

  • ContactProperties fields softCfm and softErp were renamed softCFM and softERP
  • Fixed GL rendering on Retina display (thanks to Andrew)
  • Reintroduced the multithread version of ODE. The number of threads can be set from the preferences dialog. This feature is still disabled for now on Mac OS X.
  • Removed resize and scale handles acting on protos when dimensions were not specified as proto parameters
  • Fixed behavior of infra-red distance sensors when using texture transforms (thanks to Joshua)
  • Improved support of ANSI Escape Sequences in Webots console
  • Added laptop computer proto (thanks to Guillaume)
  • Improved video recording function
  • Use avconv/ffmpeg on all platforms instead of mencoder (Linux/Mac OS X) and Windows API
  • Use H.264/MPEG-4/AVC encoder and MP4 container on all platforms
  • Automatically set frame rate to match real-time
  • Add possibility to create an accelerated movie and to show the current acceleration value on the movie
  • Add 'acceleration' and 'caption' parameter in wb_supervisor_start_movie function
  • Rename 'type' parameter to 'codec' in wb_supervisor_start_movie function
  • Add basic undo/redo functionality for field editing, objects dragging, rotation and resizing
  • Moved the language source code (C++, Python, Java) from the "projects" to "resources" directories
  • Text editor: detect external file modification
  • Display device: Fixed alpha image pasting
  • Nao
  • Added nao challenge simulation
  • Fixed camera bug introduced in Webots 7.2.0 (thanks to Julien, Dominic and Nikolas)
  • Fixed glitch due to mouse position offset when resizing / rescaling objects by means of manipulators
  • Fixed crash when changing the orientation of a plane placed in a boundingObject
  • Improved the save screenshot dialog by using the native dialog appearance
  • Improved the autonomous vehicle demo by adding traffic lights, traffic signs, cones and textured buildings
  • Added the capability to export a simulation model to HTML/X3D for web publishing
  • Added two new fields to the Receiver node: signalStrengthNoise and directionNoise. These fields allow to add noise on the signal strength and emitter direction.
  • Fixes Java and Python supervisor accessors to contact points
  • Changed supervisor API functions wb_supervisor_node_get_contact_points()
  • Warning: From now on, please use wb_supervisor_node_get_number_of_contact_points() and wb_supervisor_node_get_contact_point().
  • Fixed annoying z-order overlap of some dialog box
  • Improved Webots file parser's robustness
  • Increased the distance sensors performance
  • Replaced advantageously WorldInfo::displayRefresh by WorldInfo::FPS. In most cases, this increase the performance of the run mode
  • Added examples in projects/samples/howto that illustrate the use of wb_supervisor_node_get_contact_points() and wb_supervisor_node_get_center_of_mass()
  • Fixed graphical update of the center of mass
  • Fixed crash related to Geometry insertion in bounding objects (thanks to Guillaume)
  • Allowed static environment to be used as a joint endpoint (thanks to Jesse)
  • Added documentation on joint axis default values (thanks to Jesse)
  • Fixed force control of Hinge2Joint motors (thanks to David)
  • Enhanced cylinder-cylinder collision (thanks to David)
  • Upgraded to Qt 5.1.0
  • Renamed the STOP keyword to PAUSE
  • Improved main GUI (new set of icons, new customizable style sheet)
  • Fixed movie recording on some Linux environment (thanks to Fatma)
  • Fixed syntax highlighing and auto-completion for C API data types in C programs
  • Added Capsule geometry sample world
  • Windows: robot windows are raised on top when opening them
  • Windows: fixed robot window. Minimized them don't decrease the global performance anymore.
  • Windows: Fixed rights to invoke Qt's lupdate (added a manifest file)
  • Mac OS X: Restored the Menu items (Preferences / About / Quit) at the regular place

New in Webots PRO 7.2.1 (Mar 5, 2014)

  • Temporary reverted to ODE single threaded to work around some crashes
  • Fixes update of BallJoint anchor field
  • Allowed BotStudio files with the FREE version
  • Added tab displaying extra mass information for Solids
  • Fixed crashes related to Geometry insertion in bounding objects
  • DARwIn-OP: improved code robustness (cross-compilation, and remote-control)
  • Added the contact points, center of mass and static balance test API in the C++ / python / matlab / java API
  • Upgraded to Qt 5.0.2 (and Qt 5.1.0.rc2 on Mac OS X)
  • Makefile: Replaced "USE_QT = true" by "QT = core widgets" in order to link only with the desired Qt frameworks
  • Mac OS X: Improved the Webots integration into the Moutain Lion spaces (added the maximize button, improved the fullscreen feature)
  • Mac OS X: Fixed bug with the Viewpoint modification after inserting new nodes (thanks to Julien)
  • Simplified the Solid selection from the 3D view
  • Nao
  • Mac OS X: fixed possible mismatch between Qt libraries
  • Added a pedal racer model exemplifying closed mechanical loops in Webots
  • Added support for spring and damping effects around a ball joint (thanks to Jesse)
  • Increased stability of all joint spring and damping forces
  • Mac OS X: Display a useful warning message in case of Python version mismatch before launching Python controller
  • Added documentation on sonar ray reflection (thanks to Fikret)
  • Added documentation on solid merging
  • Fixed issue with artificial moves of a statically based solid
  • Fixed visibility problems of the expand sign in the Scene Tree just after inserting a new node
  • Added support for Hinge2Joint minStop and maxStop
  • Fixed controller compilation failure on some Windows 8 configurations caused by setting mingw bin folder first in the Path environment variable
  • Improved model of the sensors noise, noise follows now a gaussian distribution
  • Matlab: support the Inertial Unit API

New in Webots PRO 7.2.0 (Mar 5, 2014)

  • Windows: added a webots.bat batch file to ease the startup of Webots from a DOS console
  • Fixed rescaling issues
  • Fixed issues related to solid merging
  • Fixed crash related to Geometry insertion in bounding objects (thanks to Victor)
  • Windows: fixed the print out from Python controllers which was not displayed in the Webots console
  • Add selection shortcut for solid subparts of an object in the 3D window: (Ctrl key) + Alt key + mouse click
  • Added the model of the human-sized hexapod Mantis robot (thanks to Matt)
  • Added the model of the Atlas robot (human-sized humanoid)
  • Introduced new nodes replacing and extending the now deprecated Servo node (please open a support ticket from the Help menu of Webots if you need assistance to convert your simulation models to the new system)
  • RotationalMotor, LinearMotor, PositionSensor
  • HingeJoint, SliderJoint, Hinge2Joint, BallJoint
  • JointParameters, HingeJointParameters, Hinge2JointParameters, BallJointParameters
  • SolidReference
  • DARwIn-OP
  • Refactored the SSH protocol to dialog with the robot (safer, and more robust)
  • Implemented the servo alarm management
  • Fixed compilation of controller plugins on Windows (thanks to Chase)
  • Added a ROS tutorial with detailed build instructions
  • The ROS joystick example (see projects/languages/ros) has been updated in accordance with the ROS groovy version and catkin, the official ROS build system
  • Webots build editor can now compile edited source files located below the root of a controller directory
  • Users can now simply click on touch sensors of bumper type to activate or desactivate them
  • Exposed the soft ERP and soft CFM parameters in the ContactProperties node. Reducing the soft CFM value will limit the penetration of heavy objects in the ground (see webots/projects/samples/demos/worlds/autonomous_vehicle.wbt example)
  • Use a multi-threaded version of ODE (thanks to Mustafa)
  • Multi-robot simulations should run significantly faster on multi-core CPUs
  • Physics plugins may need to be adapted to handle multi-threading (see documentation in the reference manual)
  • Added a generic robot window widget for the Inertial Unit device
  • Nao
  • Reduced the camera refresh rate to increase the simulation speed
  • Fixed foot contact loss in some motions (thanks to Ethem)
  • Added a warning if the simulation is not running in real-time
  • Improved the behavior of the Choregraph's moveTo box
  • Fixed hip and ankle roll maximal torques of the Nao V40
  • Naoqi: Added low-pass filters (InertialUnit and FSR) to smooth stimulis
  • Reduced the WorldInfo::basicTimeStep to 20 of each simulation using the Nao in order to improve the physics quality
  • Updated Aldebaran's Naoqi runtime and simulator SDK libraries to 1.14.3.4 (thanks to Julien)
  • Improved field edition: values are no longer automatically updated by Webots while the user is editing
  • Use the ODE shared library (rather than static) on Mac OS X
  • Added 240p, 360p and 480p 16:9 youtube friendly resolutions for making movies
  • Fixed node indexes in the Node class (in the C++, Java and Python API)
  • Restored the Motion Editor (accessible from the generic robot window)
  • Fixed the console automatic scroll down in case of escape characters (thanks to Andrea)
  • Repaired broken shaders in the high quality rendering mode
  • PROTO nodes revision
  • Added support for SFNode and MFNode parameters in PROTO nodes
  • Added support for nested parameters in PROTO files
  • e-puck
  • Robot Window, Remote Control and Uploader
  • Added possibility to cancel the operation when uploading files
  • Fixed list of available ports in 'Upload..' dialog after pressing 'Refresh ports' (thanks to Stefan)
  • Fixed disconnection problems causing subsequent connection failures
  • automatically stop the remote control and free the port before uploading a file (thanks to Stefan)
  • Fixed the display of the acclerometer values (thanks to Stefan)
  • Cross-Compilation
  • Fixed cross-compilation errors on Windows if Webots installation path contains white space
  • Model
  • Updated EPuck.proto model: added two MFNode parameters to equip the robot with additional devices
  • WARNING: removed floor sensors from the standard EPuck.proto file and modeled in the separate EPuck_GroundSensorsModule.proto file
  • WARNING: name of ground sensor devices of e-puck robot is changed from 'fs0', 'fs1', 'fs2' to 'gs0', 'gs1', 'gs2'.
  • Substituted local ratslife EPuck proto with global Webots EPuck proto
  • Added Pioneer3DX PROTO model
  • Added a model of the Elisa-3 robot from GCTronic

New in Webots PRO 7.1.2 (Mar 5, 2014)

  • DARwIn-OP
  • Added the possibility to use MotionManager step-by-step
  • Cross-Compilation
  • Minors debug when cross-compiling from the robot window on Windows (checkbox 'make default controller' now toogle correctly, message windows are not hidden behind the robot window anymore)
  • Remote-control
  • Fixed problem of crash of the remote-server when sending command to servos who doesn't exist
  • Fixed problem of crash of the robot window when aborting start of remote-control
  • Fixed problem of led switching off when stopping the controller
  • Fixed execution of signed world files with naoqisim controller in Webots FREE (thanks to Christophe)
  • Fixed warning and ticking associated to the "Show Support Polygon" action (thanks to Jesse) and allowed display of the center of mass of any solid
  • Fixed mass settings for Solids without boundingObject
  • Fixed crashes related to the Solid node and the DEF-USE mechanism
  • Fixed huge oval drawing of the Display device on Windows (thanks to Angelos)
  • Added missing symbolic links to libode.so and libzzip.so on Linux causing errors when linking physics plugins

New in Webots PRO 7.1.1 (Mar 5, 2014)

  • Added Pioneer3AT proto
  • DARwIn-OP (thanks to David)
  • DARwIn-OP robot window, remote-control and cross-compilation are now available (precompiled, working out-of-the-box)
  • Simulation
  • Corrected wrong link between the LEDS: BackLedRed, BackLedGreen and BackLedBlue
  • Set default basicTimeStep to 16ms for each example
  • Increase camera refresh time to 32ms in example "Soccer" and "Visual_tracking"
  • Manager static library split into two dynamics libraries, now located in /libraries/darwin and /libraries/managers instead of /lib
  • Cross-Compilation
  • Added text-to-speech functions in Speaker module
  • Improved the string and int field edition (the modification is applied when leaving the editor focus)
  • Improved the rotation field edition (the vector normalization is no more visible during the edition)
  • Fixed behavior of 'Add Node' button: new objects are automatically selected and expanded
  • Added default extension in save screenshot dialog
  • Adjusted default position of Webots PROTO objects so that they don't half sink in the floor
  • Added new sample simulation in projects/samples/howto/worlds/sick_terrain_scanning.wbt (thanks to Angelos)
  • Revision of Find and Replace dialog of the text editor
  • Fixed problems when searching words with different cases
  • Fixed problems when both Find dialog and Replace dialog are visibile
  • Fixed replacing of selected text that doesn't match the searched string
  • Changed default button activated when pressing the ENTER key on Linux: 'Next' button in Find dialog and 'Replace' button in Replace dialog
  • Changed 'Replace' button behavior to automatically select the next occurrence of the searched string
  • Improved availability of old strings used in Find and Replace dialogs
  • Improved dialogs and feedback messages of the e-puck file uploader
  • Fixed huge oval drawing of the Display device (thanks to Angelos)
  • Changed the license registration dialog box to make it clearer (thanks to Christophe)
  • Fixed the opening of .wbt files from Finder on Mac OS X (thanks to Jimmy)
  • Revision of Distance Sensor device
  • Added a generic distance sensor
  • WARNING: Default type changed from 'infra-red' to 'generic'. The 'infra-red' type of all existing infra-red sensors have to be explicitely set.
  • Changed behaviour of infra-red distance sensor: now it considers the appearance of the graphic object rather than the appearance defined in the bounding object.
  • WARNING: Simulations containing infra-red distance sensors may now behave differently. Please contact Cyberbotics support team if you cannot restore them.
  • Changed the orientation of infra-red distance sensors in e-puck proto
  • Improved the custom libraries search algorithm (recursive search into the webots/resources directory) (thanks to David)
  • Refactored the main Makefile.include: CPP_SOURCES and CC_SOURCES have been deprecated. Please use CXX_SOURCES instead
  • Improved the supervisor API to set fields in order to be applied immediatly rather than on the next physics step
  • Added an OpenGL tab in the Preferences dialog box (auto setup on the first Webots launch) allowing to reduce some rendering features
  • Improved the search algorithm of the Robot::robotWindow and Robot::remoteControl fields
  • Added the support of the servos and of the keyboard into the remote-control API (thanks to David)
  • Improved the main Makefile.include in order to compile standard targets (release, debug, profile, clean)
  • Improved the main Makefile.include in order to move all the building files into a 'build' folder

New in Webots PRO 7.1.0 (Mar 5, 2014)

  • Changed the texture of can object from a beer can to a soda can
  • Fixed bug with missing physics plugins in the selection window of the scene tree
  • Fixed bug displaying robot controllers twice for PROTO robots in the controller selection window of the scene tree (thanks to Krzysztof)
  • Allow users to recompile robot controllers from the Webots IDE for any robot programming contest (thanks to Krzysztof)
  • Revision of the Physics node setup
  • The 'centerOfMass' field is now of type MFVec3f (but the GUI allows you to edit at most one row)
  • If 'inertiaMatrix' is NULL, the inertia matrix of the Solid is the inertia matrix of the bounding object computed around its natural center of mass with respect to the Solid's frame axes
  • A dialog box allows you to set the 'inertiaMatrix', 'centerOfMass' and the 'mass' as the corresponding values obtained from bounding object based computations.
  • WARNING: Simulations may now behave differently. Please contact Cyberbotics support team if you need to restore inertial properties of your models.
  • Fixed the movie creation on Mac OS X when the Webots installation path contains white spaces (e.g. Webots for NAO) (thanks to Chrisantha)
  • DARwIn-OP (thanks to David)
  • Simulation
  • Added Vision Manager in order to use the main image processing tools of the Framework in simulation
  • Added example Visual Tracking
  • Updated example Sample to use Manager Vision
  • Corrected wrong link between Head and Eye LED
  • Added the two backLED representations of Head and Eye LED (these backLED are not controllable)
  • Replaced motion 57 by motion 24 in the example 'sample' at the beginning
  • Improved Gait manager to wait the end of the step before to stop walking
  • Modified example Sample to be compatible with cross-compilation
  • Renamed example 'Sample' in example 'Soccer'.
  • Added showRobotWindow field
  • Added example Walk
  • Cross-Compilation
  • Vision Manager is also available on the real robot
  • Improved start of the controller, servo movements smoother at startup
  • Added LED indications (red : robot is initializing / green : robot is ready, controller will start)
  • Added keyboard functions (a small window appears now on the real robot to catch keyboard inputs when enabling it)
  • Added 'maxDistance' field to Pen node
  • Fixed Pen device: the painted point is displayed only on the intersected face of the primitive
  • Added the wb_robot_get_controller_name() function allowing to get the Robot::controller field content
  • Added the wb_robot_get_controller_arguments() function allowing to get the Robot::controllerArgs field content
  • Improved shared libraries management
  • Removed the arguments of the wbw_init() function (main entry function of the robot window dynamic library)
  • Added the project/libraries/* directories in the [[DY]LD_LIBRARY_]PATH environment variable to facilitate the use of shared libraries
  • Build the shared libraries thanks to the controller Makefile (resources/Makefile.include)
  • Moved the robot window shared libraries into project/plugins/robot_windows
  • Moved the remote control shared libraries into project/plugins/remote_controls
  • Updated the e-puck cross-compiler for Mac OS X (now compiled for x86_64 instead of ppc)
  • Fixed infra-red distance sensor behaviour discarding the color painted on a Shape
  • Fixed textures not displayed in blimp_lis.wbt and darwin-op.wbt simulation
  • Improved compatibility with IndexedFaceSet node syntax of VRML 2.0
  • Added default texture mapping
  • Used 'coordIndex' as texture coordinate indexes if 'texCoord' is specified but 'texCoordIndex' field is empty
  • Automatically link the dynamic libraries in project 'lib' folder at run-time
  • Fixed problem taking screenshots when the simulation is running
  • Fixed: crash when wb_servo_enable_motor_force_feedback() is invoked on objects (Solid) without Physics node (Thanks to Tim)
  • Improved the robustness and error messages of the Internet floating license server
  • Fixed crashed while linking DEF and USE nodes inside nested protos (Thanks to Nico)
  • Fixed distance sensor issue with the detection of cylinder's caps (Thanks to Krzysztof)
  • Upgraded mingw gcc to version 4.7.2 on Windows