跳到正文

Wiki

Webots模擬平臺

約 1 分鐘閱讀

本文由簡體中文內容確定性轉換,並受版本化術語表保護。

這個平臺用來測運動學很舒服。

可以SolidWorks轉URDF(ROS官方提供sw2udfo工具),再URDF轉Webots(webots官方提供urdf2webots工具)。

https://github.com/ros/solidworks_urdf_exporter

https://github.com/cyberbotics/urdf2webots

這樣的話,連電機甚至都給你選好了,你只需要寫運動學即可。

運動控制程式可以用C/C++、Python、Java等語言編寫,控制的時候只需要注意一下控制電機角度和速度的方式以及單位即可。

如果你給電機setPosition(INFINITY)的話,那麼這個電機將變成角度電機,而原本設定速度的函式將會變成設定角速度。

如果你沒給電機設定setPosition(INFINITY),那麼這個電機就是個速度電機。

角度單位是rad(存疑)

速度單位是rad/s(存疑)

        for (int i = 0;i < 4;i++)
        {
                //舵电机仿真中默认顺时针为正
                swerve_motor[i] = robot->getMotor("swerve_joint" + std::to_string(i));
                //swerve_motor[i]->setPosition(INFINITY);       // 注释掉:不启用速度控制
                swerve_motor[i]->setPosition(0.0);       // 初始角度为0
                swerve_motor[i]->setVelocity(50.0);       // 设置角速度

                //驱动电机仿真中默认向后滚为正
                drive_motor[i] = robot->getMotor("drive_joint" + std::to_string(i));
                drive_motor[i]->setPosition(INFINITY);   // 启用速度控制
                drive_motor[i]->setVelocity(-0.0);        // 初始速度为0
        }